You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ti...@apache.org on 2012/02/07 13:45:35 UTC

svn commit: r1241448 - in /aries/trunk: blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/ blueprint/blueprint-core/src/test/resources/ proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/

Author: timothyjward
Date: Tue Feb  7 12:45:35 2012
New Revision: 1241448

URL: http://svn.apache.org/viewvc?rev=1241448&view=rev
Log:
ARIES-767: Validate that references injected as service-properties are correctly converted

Modified:
    aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/TestBlueprintContainer.java
    aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/WiringTest.java
    aries/trunk/blueprint/blueprint-core/src/test/resources/test-wiring.xml
    aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AbstractProxyManager.java

Modified: aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/TestBlueprintContainer.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/TestBlueprintContainer.java?rev=1241448&r1=1241447&r2=1241448&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/TestBlueprintContainer.java (original)
+++ aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/TestBlueprintContainer.java Tue Feb  7 12:45:35 2012
@@ -28,6 +28,7 @@ import org.apache.aries.blueprint.parser
 import org.apache.aries.blueprint.proxy.ProxyUtils;
 import org.apache.aries.blueprint.reflect.PassThroughMetadataImpl;
 import org.apache.aries.proxy.ProxyManager;
+import org.apache.aries.proxy.impl.JdkProxyManager;
 import org.osgi.service.blueprint.container.ComponentDefinitionException;
 import org.osgi.service.blueprint.container.Converter;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
@@ -39,7 +40,7 @@ public class TestBlueprintContainer exte
     private ComponentDefinitionRegistryImpl registry;
     
     public TestBlueprintContainer(ComponentDefinitionRegistryImpl registry) throws Exception {
-        this(registry, null);
+        this(registry, new JdkProxyManager());
     }
 
     public TestBlueprintContainer(ComponentDefinitionRegistryImpl registry, ProxyManager proxyManager) throws Exception {

Modified: aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/WiringTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/WiringTest.java?rev=1241448&r1=1241447&r2=1241448&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/WiringTest.java (original)
+++ aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/WiringTest.java Tue Feb  7 12:45:35 2012
@@ -32,7 +32,11 @@ import junit.framework.Assert;
 
 import org.apache.aries.blueprint.CallbackTracker.Callback;
 import org.apache.aries.blueprint.container.BlueprintRepository;
+import org.apache.aries.blueprint.container.ServiceRecipe;
 import org.apache.aries.blueprint.di.CircularDependencyException;
+import org.apache.aries.blueprint.di.ExecutionContext;
+import org.apache.aries.blueprint.di.MapRecipe;
+import org.apache.aries.blueprint.di.Recipe;
 import org.apache.aries.blueprint.di.Repository;
 import org.apache.aries.blueprint.parser.ComponentDefinitionRegistryImpl;
 import org.apache.aries.blueprint.pojos.AmbiguousPojo;
@@ -47,7 +51,6 @@ import org.apache.aries.blueprint.pojos.
 import org.apache.aries.blueprint.pojos.PojoRecursive;
 import org.apache.aries.blueprint.pojos.Primavera;
 import org.apache.aries.blueprint.proxy.ProxyUtils;
-import org.apache.aries.proxy.impl.JdkProxyManager;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.blueprint.container.ComponentDefinitionException;
 
@@ -128,6 +131,17 @@ public class WiringTest extends Abstract
         Object obj3 = repository.create("service1");
         assertNotNull(obj3);
         assertTrue(obj3 instanceof ServiceRegistration);    
+
+        ExecutionContext.Holder.setContext((ExecutionContext) repository);
+        for(Recipe r : ((ServiceRecipe)repository.getRecipe("service1")).getDependencies()) {
+        	if(r instanceof MapRecipe) {
+        		Map m = (Map) r.create();
+        		assertEquals("value1", m.get("key1"));
+        		assertEquals("value2", m.get("key2"));
+        		assertTrue(m.get("key3") instanceof List);
+        	}
+        }
+        ExecutionContext.Holder.setContext(null);
         
         // tests 'prototype' scope
         Object obj4 = repository.create("pojoC");

Modified: aries/trunk/blueprint/blueprint-core/src/test/resources/test-wiring.xml
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/test/resources/test-wiring.xml?rev=1241448&r1=1241447&r2=1241448&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-core/src/test/resources/test-wiring.xml (original)
+++ aries/trunk/blueprint/blueprint-core/src/test/resources/test-wiring.xml Tue Feb  7 12:45:35 2012
@@ -23,10 +23,15 @@
             <bean id="converter1" class="org.apache.aries.blueprint.pojos.ConverterA"/>
     </type-converters>
 
+    <reference id="aReference" interface="java.util.List"/>
+    
     <service id="service1" ref="pojoB" interface="org.apache.aries.blueprint.pojos.PojoB">
         <service-properties>
             <entry key="key1" value="value1"/>
             <entry key="key2" value="value2"/>
+            <entry key="key3">
+                <ref component-id="aReference"/>
+            </entry>
         </service-properties>    
     </service>
 

Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AbstractProxyManager.java
URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AbstractProxyManager.java?rev=1241448&r1=1241447&r2=1241448&view=diff
==============================================================================
--- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AbstractProxyManager.java (original)
+++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AbstractProxyManager.java Tue Feb  7 12:45:35 2012
@@ -117,7 +117,7 @@ public abstract class AbstractProxyManag
 
   protected synchronized ClassLoader getClassLoader(final Bundle clientBundle, Collection<Class<?>> classes) 
   {
-    if (clientBundle.getState() == Bundle.UNINSTALLED) {
+    if (clientBundle != null && clientBundle.getState() == Bundle.UNINSTALLED) {
       throw new IllegalStateException(NLS.MESSAGES.getMessage("bundle.uninstalled", clientBundle.getSymbolicName(), clientBundle.getVersion(), clientBundle.getBundleId()));
     }