You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cl...@apache.org on 2013/10/01 16:33:34 UTC

svn commit: r1528105 - in /felix/trunk/ipojo/runtime: core-it/ipojo-core-configuration-processor-test/src/main/java/org/apache/felix/ipojo/runtime/core/components/ core-it/ipojo-core-configuration-processor-test/src/test/java/org/apache/felix/ipojo/run...

Author: clement
Date: Tue Oct  1 14:33:34 2013
New Revision: 1528105

URL: http://svn.apache.org/r1528105
Log:
Fix FELIX-4261 NPE when an instance is declared without a configuration using the @ConfigurationTracker

Added:
    felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/main/java/org/apache/felix/ipojo/runtime/core/components/SimpleConfiguration.java
      - copied, changed from r1527507, felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/main/java/org/apache/felix/ipojo/runtime/core/components/ConfigureOneInstance.java
    felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/test/java/org/apache/felix/ipojo/runtime/core/TestSimpleConfiguration.java
      - copied, changed from r1527507, felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/test/java/org/apache/felix/ipojo/runtime/core/TestEmptyConfiguration.java
Modified:
    felix/trunk/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/configuration/Instance.java

Copied: felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/main/java/org/apache/felix/ipojo/runtime/core/components/SimpleConfiguration.java (from r1527507, felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/main/java/org/apache/felix/ipojo/runtime/core/components/ConfigureOneInstance.java)
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/main/java/org/apache/felix/ipojo/runtime/core/components/SimpleConfiguration.java?p2=felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/main/java/org/apache/felix/ipojo/runtime/core/components/SimpleConfiguration.java&p1=felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/main/java/org/apache/felix/ipojo/runtime/core/components/ConfigureOneInstance.java&r1=1527507&r2=1528105&rev=1528105&view=diff
==============================================================================
--- felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/main/java/org/apache/felix/ipojo/runtime/core/components/ConfigureOneInstance.java (original)
+++ felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/main/java/org/apache/felix/ipojo/runtime/core/components/SimpleConfiguration.java Tue Oct  1 14:33:34 2013
@@ -7,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -30,14 +30,9 @@ import static org.apache.felix.ipojo.con
  * Simple configuration
  */
 @Configuration
-public class ConfigureOneInstance {
+public class SimpleConfiguration {
 
     // Declare an instance of MyComponent named myInstance
     Instance myInstance = instance().of(MyComponent.class)
-            .with("floating").setto("1.0")
-            .with("message").setto("foo")
-            .with("bool").setto(true)
-            .with("number").setto(1l)
-            .with("integer").setto(1)
-            .with("props").setto(new Properties());
+            .named("foo");
 }

Copied: felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/test/java/org/apache/felix/ipojo/runtime/core/TestSimpleConfiguration.java (from r1527507, felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/test/java/org/apache/felix/ipojo/runtime/core/TestEmptyConfiguration.java)
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/test/java/org/apache/felix/ipojo/runtime/core/TestSimpleConfiguration.java?p2=felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/test/java/org/apache/felix/ipojo/runtime/core/TestSimpleConfiguration.java&p1=felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/test/java/org/apache/felix/ipojo/runtime/core/TestEmptyConfiguration.java&r1=1527507&r2=1528105&rev=1528105&view=diff
==============================================================================
--- felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/test/java/org/apache/felix/ipojo/runtime/core/TestEmptyConfiguration.java (original)
+++ felix/trunk/ipojo/runtime/core-it/ipojo-core-configuration-processor-test/src/test/java/org/apache/felix/ipojo/runtime/core/TestSimpleConfiguration.java Tue Oct  1 14:33:34 2013
@@ -7,7 +7,7 @@
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -20,8 +20,8 @@
 package org.apache.felix.ipojo.runtime.core;
 
 import junit.framework.Assert;
-import org.apache.felix.ipojo.runtime.core.components.ConfigureNothing;
 import org.apache.felix.ipojo.runtime.core.components.MyComponent;
+import org.apache.felix.ipojo.runtime.core.components.SimpleConfiguration;
 import org.apache.felix.ipojo.runtime.core.services.FooService;
 import org.junit.Test;
 import org.ops4j.pax.exam.Configuration;
@@ -38,9 +38,9 @@ import static org.ops4j.pax.exam.CoreOpt
 import static org.ops4j.pax.tinybundles.core.TinyBundles.withBnd;
 
 /**
- * Check an empty @Configuration
+ * Check a simple @Configuration
  */
-public class TestEmptyConfiguration extends Common {
+public class TestSimpleConfiguration extends Common {
 
     @Configuration
     public Option[] config() throws IOException {
@@ -59,7 +59,7 @@ public class TestEmptyConfiguration exte
                 streamBundle(
                         TinyBundles.bundle()
                                 .add(MyComponent.class)
-                                .add(ConfigureNothing.class)
+                                .add(SimpleConfiguration.class)
                                 .set(Constants.BUNDLE_SYMBOLICNAME, "MyComponent")
                                 .build(IPOJOStrategy.withiPOJO())
                 )
@@ -70,7 +70,7 @@ public class TestEmptyConfiguration exte
     public void testConfiguration() throws InterruptedException {
         TimeUtils.grace(1000);
         // Check configuration
-        Assert.assertNull(osgiHelper.getServiceReference(FooService.class));
+        Assert.assertNotNull(osgiHelper.getServiceReference(FooService.class));
     }
 
 

Modified: felix/trunk/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/configuration/Instance.java
URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/configuration/Instance.java?rev=1528105&r1=1528104&r2=1528105&view=diff
==============================================================================
--- felix/trunk/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/configuration/Instance.java (original)
+++ felix/trunk/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/configuration/Instance.java Tue Oct  1 14:33:34 2013
@@ -62,8 +62,10 @@ public class Instance {
 
     public Dictionary<String, Object> configuration() {
         Hashtable<String, Object> configuration = new Hashtable<String, Object>();
-        for (Property property : this.configuration) {
-            configuration.put(property.name, property.value);
+        if (this.configuration != null) {
+            for (Property property : this.configuration) {
+                configuration.put(property.name, property.value);
+            }
         }
 
         if (name != null) {