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()));
}