You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2006/09/06 21:12:24 UTC
svn commit: r440838 -
/incubator/felix/trunk/scr/src/main/java/org/apache/felix/scr/ComponentMetadata.java
Author: rickhall
Date: Wed Sep 6 12:12:23 2006
New Revision: 440838
URL: http://svn.apache.org/viewvc?view=rev&rev=440838
Log:
Applied patch (FELIX-109) to fix a class cast exception.
Modified:
incubator/felix/trunk/scr/src/main/java/org/apache/felix/scr/ComponentMetadata.java
Modified: incubator/felix/trunk/scr/src/main/java/org/apache/felix/scr/ComponentMetadata.java
URL: http://svn.apache.org/viewvc/incubator/felix/trunk/scr/src/main/java/org/apache/felix/scr/ComponentMetadata.java?view=diff&rev=440838&r1=440837&r2=440838
==============================================================================
--- incubator/felix/trunk/scr/src/main/java/org/apache/felix/scr/ComponentMetadata.java (original)
+++ incubator/felix/trunk/scr/src/main/java/org/apache/felix/scr/ComponentMetadata.java Wed Sep 6 12:12:23 2006
@@ -16,10 +16,7 @@
*/
package org.apache.felix.scr;
-import java.util.Iterator;
-import java.util.Properties;
-import java.util.List;
-import java.util.ArrayList;
+import java.util.*;
import org.osgi.service.component.ComponentException;
@@ -43,7 +40,13 @@
private String m_implementationClassName = null;
// Associated properties (0..*)
- private Properties m_properties = new Properties();
+ private Dictionary m_properties = new Hashtable();
+
+ // List of Property metadata - used while building the meta data
+ // while validating the properties contained in the PropertyMetadata
+ // instances are copied to the m_properties Dictionary while this
+ // list will be cleared
+ private List m_propertyMetaData = new ArrayList();
// Provided services (0..1)
private ServiceMetadata m_service = null;
@@ -128,9 +131,7 @@
if(newProperty == null) {
throw new IllegalArgumentException ("Cannot add a null property");
}
- String key = newProperty.getName();
- Object value = newProperty.getValue();
- m_properties.put(key,value);
+ m_propertyMetaData.add(newProperty);
}
/**
@@ -215,11 +216,11 @@
}
/**
- * Returns the property descriptors
+ * Returns the properties.
*
- * @return the property descriptors as a Collection
+ * @return the properties as a Dictionary
*/
- public Properties getProperties() {
+ public Dictionary getProperties() {
return m_properties;
}
@@ -246,11 +247,14 @@
*/
void validate() {
- // First check if the properties are valid
- Iterator propertyIterator = m_properties.keySet().iterator();
+ // First check if the properties are valid (and extract property values)
+ Iterator propertyIterator = m_propertyMetaData.iterator();
while ( propertyIterator.hasNext() ) {
- ((PropertyMetadata)propertyIterator.next()).validate();
- }
+ PropertyMetadata propMeta = (PropertyMetadata) propertyIterator.next();
+ propMeta.validate();
+ m_properties.put(propMeta.getName(), propMeta.getValue());
+ }
+ m_propertyMetaData.clear();
// Check that the provided services are valid too
if(m_service != null) {