You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/05/20 06:26:29 UTC
svn commit: r407953 [1/2] - in /incubator/tuscany/sandbox/jboynes/sca:
containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/
containers/container.java/src/test/java/org/apache/tuscany/container/java/context/
containers/cont...
Author: jmarino
Date: Fri May 19 21:26:25 2006
New Revision: 407953
URL: http://svn.apache.org/viewvc?rev=407953&view=rev
Log:
wire refactors; more to come
Added:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemBindingBuilder.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireReferenceContextImpl.java
- copied, changed from r407909, incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireSystemReferenceContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemReferenceContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/model/SystemBinding.java
Removed:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireSystemReferenceContext.java
Modified:
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentBuilderTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/DifferentInterfaceWireTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/ReferenceInjectionTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/context/ScopeReferenceTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockContextFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractCompositeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoAtomicContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/IntraCompositeResolver.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemComponentBuilder.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContextImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemSingletonAtomicContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemSourceWire.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemTargetWire.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWire.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/WireServiceImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToAtomicContextTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToReferenceContextTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockContextFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockCompositeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/MockReferenceContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/scope/MockScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/SystemAtomicContextTestCase.java
incubator/tuscany/sandbox/jboynes/sca/model/src/main/java/org/apache/tuscany/model/Scope.java
incubator/tuscany/sandbox/jboynes/sca/model/src/main/java/org/apache/tuscany/model/ServiceContract.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/AtomicContext.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/Context.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicContextExtension.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeContextExtension.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceContextExtension.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceContextExtension.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWire.java
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentBuilderTestCase.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentBuilderTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentBuilderTestCase.java Fri May 19 21:26:25 2006
@@ -44,7 +44,7 @@
sourceType.setReferenceMember("target", SourceImpl.class.getMethod("setTarget", Target.class));
ServiceContract sourceContract = new JavaServiceContract();
- sourceContract.setIntefaze(Source.class);
+ sourceContract.setInterfaze(Source.class);
Service sourceService = new Service();
sourceService.setName("Source");
sourceService.setServiceContract(sourceContract);
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/DifferentInterfaceWireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/DifferentInterfaceWireTestCase.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/DifferentInterfaceWireTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/DifferentInterfaceWireTestCase.java Fri May 19 21:26:25 2006
@@ -48,7 +48,7 @@
Method m = SourceImpl.class.getMethod("setTarget", Target.class);
members.put("target", m);
WorkContext ctx = new WorkContextImpl();
- ScopeContext<AtomicContext> scope = new ModuleScopeContext(ctx);
+ ScopeContext scope = new ModuleScopeContext(ctx);
scope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredContexts("source", SourceImpl.class, Target.class, scope,
members, "target", OtherTarget.class, OtherTargetImpl.class, scope);
@@ -65,7 +65,7 @@
Method m = SourceImpl.class.getMethod("setTargets", List.class);
members.put("target", m);
WorkContext ctx = new WorkContextImpl();
- ScopeContext<AtomicContext> scope = new ModuleScopeContext(ctx);
+ ScopeContext scope = new ModuleScopeContext(ctx);
scope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredMultiplicity("source", SourceImpl.class, Target.class, scope,
"target", OtherTarget.class, OtherTargetImpl.class, members, scope);
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/ReferenceInjectionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/ReferenceInjectionTestCase.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/ReferenceInjectionTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/ReferenceInjectionTestCase.java Fri May 19 21:26:25 2006
@@ -27,7 +27,7 @@
public void testProxiedReferenceInjection() throws Exception {
WorkContext ctx = new WorkContextImpl();
- ScopeContext<AtomicContext> scope = new ModuleScopeContext(ctx);
+ ScopeContext scope = new ModuleScopeContext(ctx);
scope.start();
Map<String,AtomicContext> contexts = MockContextFactory.createWiredContexts("source",SourceImpl.class, scope,
members, "target",Target.class,TargetImpl.class, scope);
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/context/ScopeReferenceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/context/ScopeReferenceTestCase.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/context/ScopeReferenceTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/context/ScopeReferenceTestCase.java Fri May 19 21:26:25 2006
@@ -59,7 +59,7 @@
@SuppressWarnings("unchecked")
public void testModuleToModule() throws Exception {
WorkContext ctx = new WorkContextImpl();
- ScopeContext<AtomicContext> scope = new ModuleScopeContext(ctx);
+ ScopeContext scope = new ModuleScopeContext(ctx);
scope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredContexts("source", SourceImpl.class, scope, members, "target", Target.class, TargetImpl.class, scope);
@@ -83,9 +83,9 @@
@SuppressWarnings("unchecked")
public void testModuleToSession() throws Exception {
WorkContext ctx = new WorkContextImpl();
- ScopeContext<AtomicContext> moduleScope = new ModuleScopeContext(ctx);
+ ScopeContext moduleScope = new ModuleScopeContext(ctx);
moduleScope.start();
- ScopeContext<AtomicContext> sessionScope = new HttpSessionScopeContext(ctx);
+ ScopeContext sessionScope = new HttpSessionScopeContext(ctx);
sessionScope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredContexts("source", SourceImpl.class,
@@ -132,9 +132,9 @@
@SuppressWarnings("unchecked")
public void testModuleToRequest() throws Exception {
WorkContext ctx = new WorkContextImpl();
- ScopeContext<AtomicContext> moduleScope = new ModuleScopeContext(ctx);
+ ScopeContext moduleScope = new ModuleScopeContext(ctx);
moduleScope.start();
- final ScopeContext<AtomicContext> requestScope = new RequestScopeContext(ctx);
+ final ScopeContext requestScope = new RequestScopeContext(ctx);
requestScope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredContexts("source", SourceImpl.class,
@@ -181,9 +181,9 @@
@SuppressWarnings("unchecked")
public void testModuleToStateless() throws Exception {
WorkContext ctx = new WorkContextImpl();
- ScopeContext<AtomicContext> moduleScope = new ModuleScopeContext(ctx);
+ ScopeContext moduleScope = new ModuleScopeContext(ctx);
moduleScope.start();
- ScopeContext<AtomicContext> statelessScope = new StatelessScopeContext(ctx);
+ ScopeContext statelessScope = new StatelessScopeContext(ctx);
statelessScope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredContexts("source", SourceImpl.class,
@@ -215,7 +215,7 @@
@SuppressWarnings("unchecked")
public void testSessionToSession() throws Exception {
WorkContext ctx = new WorkContextImpl();
- ScopeContext<AtomicContext> sessionScope = new HttpSessionScopeContext(ctx);
+ ScopeContext sessionScope = new HttpSessionScopeContext(ctx);
sessionScope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredContexts("source", SourceImpl.class,
@@ -262,9 +262,9 @@
@SuppressWarnings("unchecked")
public void testSessionToModule() throws Exception {
WorkContext ctx = new WorkContextImpl();
- ScopeContext<AtomicContext> moduleScope = new ModuleScopeContext(ctx);
+ ScopeContext moduleScope = new ModuleScopeContext(ctx);
moduleScope.start();
- ScopeContext<AtomicContext> sessionScope = new HttpSessionScopeContext(ctx);
+ ScopeContext sessionScope = new HttpSessionScopeContext(ctx);
sessionScope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredContexts("source", SourceImpl.class,
@@ -310,9 +310,9 @@
@SuppressWarnings("unchecked")
public void testSessionToRequest() throws Exception {
WorkContext ctx = new WorkContextImpl();
- final ScopeContext<AtomicContext> requestScope = new RequestScopeContext(ctx);
+ final ScopeContext requestScope = new RequestScopeContext(ctx);
requestScope.start();
- ScopeContext<AtomicContext> sessionScope = new HttpSessionScopeContext(ctx);
+ ScopeContext sessionScope = new HttpSessionScopeContext(ctx);
sessionScope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredContexts("source", SourceImpl.class,
@@ -362,9 +362,9 @@
@SuppressWarnings("unchecked")
public void testSessionToStateless() throws Exception {
WorkContext ctx = new WorkContextImpl();
- ScopeContext<AtomicContext> sessionScope = new HttpSessionScopeContext(ctx);
+ ScopeContext sessionScope = new HttpSessionScopeContext(ctx);
sessionScope.start();
- ScopeContext<AtomicContext> statelessScope = new StatelessScopeContext(ctx);
+ ScopeContext statelessScope = new StatelessScopeContext(ctx);
statelessScope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredContexts("source", SourceImpl.class,
@@ -400,7 +400,7 @@
@SuppressWarnings("unchecked")
public void testRequestToRequest() throws Exception {
WorkContext ctx = new WorkContextImpl();
- final ScopeContext<AtomicContext> requestScope = new RequestScopeContext(ctx);
+ final ScopeContext requestScope = new RequestScopeContext(ctx);
requestScope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredContexts("source", SourceImpl.class,
@@ -444,8 +444,8 @@
@SuppressWarnings("unchecked")
public void testRequestToModule() throws Exception {
WorkContext ctx = new WorkContextImpl();
- final ScopeContext<AtomicContext> requestScope = new RequestScopeContext(ctx);
- final ScopeContext<AtomicContext> moduleScope = new ModuleScopeContext(ctx);
+ final ScopeContext requestScope = new RequestScopeContext(ctx);
+ final ScopeContext moduleScope = new ModuleScopeContext(ctx);
requestScope.start();
moduleScope.start();
moduleScope.onEvent(new ModuleStart(this, null));
@@ -495,8 +495,8 @@
@SuppressWarnings("unchecked")
public void testRequestToSession() throws Exception {
WorkContext ctx = new WorkContextImpl();
- final ScopeContext<AtomicContext> requestScope = new RequestScopeContext(ctx);
- final ScopeContext<AtomicContext> sessionScope = new HttpSessionScopeContext(ctx);
+ final ScopeContext requestScope = new RequestScopeContext(ctx);
+ final ScopeContext sessionScope = new HttpSessionScopeContext(ctx);
requestScope.start();
sessionScope.start();
@@ -550,9 +550,9 @@
@SuppressWarnings("unchecked")
public void testRequestToStateless() throws Exception {
WorkContext ctx = new WorkContextImpl();
- ScopeContext<AtomicContext> requestScope = new RequestScopeContext(ctx);
+ ScopeContext requestScope = new RequestScopeContext(ctx);
requestScope.start();
- ScopeContext<AtomicContext> statelessScope = new StatelessScopeContext(ctx);
+ ScopeContext statelessScope = new StatelessScopeContext(ctx);
statelessScope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredContexts("source", SourceImpl.class,
@@ -584,7 +584,7 @@
@SuppressWarnings("unchecked")
public void testStatelessToStateless() throws Exception {
WorkContext ctx = new WorkContextImpl();
- ScopeContext<AtomicContext> statelessScope = new StatelessScopeContext(ctx);
+ ScopeContext statelessScope = new StatelessScopeContext(ctx);
statelessScope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredContexts("source", SourceImpl.class,
@@ -612,9 +612,9 @@
@SuppressWarnings("unchecked")
public void testStatelessToRequest() throws Exception {
WorkContext ctx = new WorkContextImpl();
- final ScopeContext<AtomicContext> requestScope = new RequestScopeContext(ctx);
+ final ScopeContext requestScope = new RequestScopeContext(ctx);
requestScope.start();
- ScopeContext<AtomicContext> statelessScope = new StatelessScopeContext(ctx);
+ ScopeContext statelessScope = new StatelessScopeContext(ctx);
statelessScope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredContexts("source", SourceImpl.class,
@@ -656,9 +656,9 @@
@SuppressWarnings("unchecked")
public void testStatelessToSession() throws Exception {
WorkContext ctx = new WorkContextImpl();
- ScopeContext<AtomicContext> statelessScope = new StatelessScopeContext(ctx);
+ ScopeContext statelessScope = new StatelessScopeContext(ctx);
statelessScope.start();
- ScopeContext<AtomicContext> sessionScope = new HttpSessionScopeContext(ctx);
+ ScopeContext sessionScope = new HttpSessionScopeContext(ctx);
sessionScope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredContexts("source", SourceImpl.class,
@@ -704,9 +704,9 @@
@SuppressWarnings("unchecked")
public void testStatelessToModule() throws Exception {
WorkContext ctx = new WorkContextImpl();
- ScopeContext<AtomicContext> statelessScope = new StatelessScopeContext(ctx);
+ ScopeContext statelessScope = new StatelessScopeContext(ctx);
statelessScope.start();
- ScopeContext<AtomicContext> moduleScope = new ModuleScopeContext(ctx);
+ ScopeContext moduleScope = new ModuleScopeContext(ctx);
moduleScope.start();
Map<String, AtomicContext> contexts = MockContextFactory.createWiredContexts("source", SourceImpl.class,
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/invocation/ScopedPojoInvokerTestCase.java Fri May 19 21:26:25 2006
@@ -50,7 +50,7 @@
public void testScopedInvoke() throws Exception {
WorkContext ctx = new WorkContextImpl();
- ScopeContext<AtomicContext> scope = new ModuleScopeContext(ctx);
+ ScopeContext scope = new ModuleScopeContext(ctx);
scope.start();
JavaAtomicContext context = MockContextFactory.createJavaAtomicContext("foo", SimpleTargetImpl.class, Scope.MODULE);
scope.register(context);
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockContextFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockContextFactory.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockContextFactory.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockContextFactory.java Fri May 19 21:26:25 2006
@@ -65,9 +65,9 @@
* @throws Exception
*/
public static Map<String, AtomicContext> createWiredContexts(String sourceName, Class<?> sourceClass,
- ScopeContext<AtomicContext> sourceScope,
+ ScopeContext sourceScope,
Map<String, Member> members, String targetName, Class<?> targetService, Class<?> targetClass,
- ScopeContext<AtomicContext> targetScope) throws Exception {
+ ScopeContext targetScope) throws Exception {
return createWiredContexts(sourceName, sourceClass, targetService, sourceScope, members, targetName, targetService, targetClass, targetScope);
}
@@ -88,22 +88,22 @@
* @throws Exception
*/
public static Map<String, AtomicContext> createWiredContexts(String sourceName, Class<?> sourceClass, Class<?> sourceReferenceClass,
- ScopeContext<AtomicContext> sourceScope,
+ ScopeContext sourceScope,
Map<String, Member> members, String targetName,
Class<?> targetService, Class<?> targetClass,
- ScopeContext<AtomicContext> targetScope) throws Exception {
+ ScopeContext targetScope) throws Exception {
return createWiredContexts(sourceName, sourceClass, sourceReferenceClass, sourceScope, null, null, null, members, targetName, targetService,
targetClass, targetScope, null, null, null);
}
public static Map<String, AtomicContext> createWiredContexts(String sourceName, Class<?> sourceClass, Class<?> sourceReferenceClass,
- ScopeContext<AtomicContext> sourceScope,
+ ScopeContext sourceScope,
Interceptor sourceHeadInterceptor,
MessageHandler sourceHeadRequestHandler,
MessageHandler sourceHeadResponseHandler,
Map<String, Member> members,
String targetName, Class<?> targetService, Class<?> targetClass,
- ScopeContext<AtomicContext> targetScope,
+ ScopeContext targetScope,
Interceptor targetHeadInterceptor,
MessageHandler targetRequestHeadHandler,
MessageHandler targetResponseHeadHandler) throws Exception {
@@ -143,9 +143,9 @@
* @throws Exception
*/
public static Map<String, AtomicContext> createWiredMultiplicity(String sourceName, Class<?> sourceClass, Class<?> sourceReferenceClass,
- ScopeContext<AtomicContext> sourceScope,
+ ScopeContext sourceScope,
String targetName, Class<?> targetService, Class<?> targetClass,
- Map<String, Member> members, ScopeContext<AtomicContext> targetScope) throws Exception {
+ Map<String, Member> members, ScopeContext targetScope) throws Exception {
JavaAtomicContext targetContext = createJavaAtomicContext(targetName, targetClass,targetScope.getScope());
TargetWire targetWire = createTargetWire(targetService.getName().substring(
targetService.getName().lastIndexOf('.') + 1), targetService, null, null, null);
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java Fri May 19 21:26:25 2006
@@ -164,9 +164,9 @@
public <T extends Class> void connect(Context<T> source, CompositeContext parent) {
if (source instanceof ComponentContext) {
ComponentContext<T> sourceContext = (ComponentContext<T>) source;
- for (SourceWire<?> sourceWire : sourceContext.getSourceWires()) {
+ for (SourceWire<T> sourceWire : sourceContext.getSourceWires()) {
try {
- connect(sourceWire, parent);
+ connect(sourceWire, parent, sourceContext.getScope());
} catch (BuilderConfigException e) {
e.addContextName(sourceContext.getName());
e.addContextName(parent.getName());
@@ -177,7 +177,7 @@
ServiceContext<T> sourceContext = (ServiceContext<T>) source;
SourceWire<T> sourceWire = sourceContext.getSourceWire();
try {
- connect(sourceWire, parent);
+ connect(sourceWire, parent, sourceContext.getScope());
} catch (BuilderConfigException e) {
e.addContextName(sourceContext.getName());
e.addContextName(parent.getName());
@@ -191,7 +191,7 @@
}
}
- private void connect(SourceWire sourceWire, CompositeContext parent) throws BuilderConfigException {
+ private <T extends Class> void connect(SourceWire<T> sourceWire, CompositeContext parent, Scope sourceScope) throws BuilderConfigException {
QualifiedName targetName = sourceWire.getTargetName();
Context<?> target = parent.getContext(targetName.getPartName());
if (target == null) {
@@ -199,19 +199,20 @@
e.setIdentifier(targetName.getQualifiedName());
throw e;
}
- TargetWire<?> targetWire;
+ TargetWire<T> targetWire;
if (target instanceof ComponentContext) {
- targetWire = ((ComponentContext<?>) target).getTargetWires().get(targetName.getPortName());
+ ComponentContext<?> targetContext = (ComponentContext<?>) target;
+ targetWire = targetContext.getTargetWires().get(targetName.getPortName());
if (targetWire == null) {
BuilderConfigException e = new BuilderConfigException("Target service not found for reference" + sourceWire.getReferenceName());
e.setIdentifier(targetName.getPortName());
throw e;
}
- connect(sourceWire, targetWire, target);
+ connect(sourceWire, targetWire, target, isOptimizable(sourceScope, targetContext.getScope()));
} else if (target instanceof ReferenceContext) {
- targetWire = ((ReferenceContext<?>) target).getTargetWire();
+ targetWire = ((ReferenceContext<T>) target).getTargetWire();
assert(targetWire != null);
- connect(sourceWire, targetWire, target);
+ connect(sourceWire, targetWire, target, isOptimizable(sourceScope, target.getScope()));
} else {
BuilderConfigException e = new BuilderConfigException("Invalid wire target type for reference " + sourceWire.getReferenceName());
e.setIdentifier(targetName.getQualifiedName());
@@ -220,9 +221,13 @@
}
- private void connect(SourceWire<?> source, TargetWire<?> targetWire, Context<?> target) {
- // if null, the targetWire side has no interceptors or handlers
+ private <T extends Class> void connect(SourceWire<T> source, TargetWire<T> targetWire, Context<?> target, boolean optimizable) {
Map<Method, TargetInvocationChain> targetInvocationConfigs = targetWire.getInvocationChains();
+ // perform optimization, if possible
+ if (optimizable && source.getInvocationChains().isEmpty() && targetInvocationConfigs.isEmpty()) {
+ source.setTargetWire(targetWire);
+ return;
+ }
for (SourceInvocationChain sourceInvocationConfig : source.getInvocationChains().values()) {
// match wire chains
TargetInvocationChain targetInvocationConfig = targetInvocationConfigs.get(sourceInvocationConfig.getMethod());
@@ -260,6 +265,33 @@
chain.setTargetInvoker(invoker);
}
+ }
+
+ private boolean isOptimizable(Scope pReferrer, Scope pReferee) {
+ if (pReferrer == Scope.UNDEFINED || pReferee == Scope.UNDEFINED) {
+ return false;
+ }
+ if (pReferee == pReferrer) {
+ return true;
+ } else if (pReferrer == Scope.STATELESS) {
+ return true;
+ } else if (pReferee == Scope.STATELESS) {
+ return true;
+ } else if (pReferrer == Scope.REQUEST && pReferee == Scope.SESSION) {
+ return true;
+ } else if (pReferrer == Scope.REQUEST && pReferee == Scope.MODULE) {
+ return true;
+ } else if (pReferrer == Scope.REQUEST && pReferee == Scope.COMPOSITE) {
+ return true;
+ } else if (pReferrer == Scope.SESSION && pReferee == Scope.MODULE) {
+ return true;
+ } else if (pReferrer == Scope.SESSION && pReferee == Scope.COMPOSITE) {
+ return true;
+ } else if (pReferrer == Scope.MODULE && pReferee == Scope.COMPOSITE) {
+ return true;
+ } else {
+ return false;
+ }
}
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractCompositeContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractCompositeContext.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractCompositeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractCompositeContext.java Fri May 19 21:26:25 2006
@@ -25,6 +25,7 @@
import org.apache.tuscany.spi.event.Event;
import org.apache.tuscany.spi.wire.SourceWire;
import org.apache.tuscany.spi.wire.TargetWire;
+import org.apache.tuscany.model.Scope;
/**
* The base implementation of a composite context
@@ -70,6 +71,10 @@
@Autowire
public void setAutowireContext(AutowireContext context) {
autowireContext = context;
+ }
+
+ public Scope getScope() {
+ return Scope.COMPOSITE;
}
public void start() {
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoAtomicContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoAtomicContext.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoAtomicContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoAtomicContext.java Fri May 19 21:26:25 2006
@@ -40,7 +40,6 @@
protected List<Injector> injectors;
protected Map<String, Member> members;
-
public PojoAtomicContext(String name, Class<?> serviceInterface, ObjectFactory<?> objectFactory, boolean eagerInit, EventInvoker<Object> initInvoker,
EventInvoker<Object> destroyInvoker, List<Injector> injectors, Map<String, Member> members) {
assert (objectFactory != null) : "Object factory was null";
@@ -50,11 +49,11 @@
this.name = name;
List<Class<?>> serviceInterfaces = new ArrayList<Class<?>>();
serviceInterfaces.add(serviceInterface);
+ this.serviceInterfaces = serviceInterfaces;
this.objectFactory = objectFactory;
this.eagerInit = eagerInit;
this.initInvoker = initInvoker;
this.destroyInvoker = destroyInvoker;
- this.serviceInterfaces = serviceInterfaces;
this.injectors = (injectors == null) ? new ArrayList<Injector>() : injectors;
this.members = members != null ? members : new HashMap<String, Member>();
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeContext.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/AbstractScopeContext.java Fri May 19 21:26:25 2006
@@ -7,8 +7,7 @@
import java.util.concurrent.CopyOnWriteArrayList;
import org.apache.tuscany.spi.AbstractLifecycle;
-import org.apache.tuscany.spi.event.TrueFilter;
-import org.apache.tuscany.spi.context.Context;
+import org.apache.tuscany.spi.context.AtomicContext;
import org.apache.tuscany.spi.context.InstanceWrapper;
import org.apache.tuscany.spi.context.ScopeContext;
import org.apache.tuscany.spi.context.TargetException;
@@ -16,13 +15,14 @@
import org.apache.tuscany.spi.event.Event;
import org.apache.tuscany.spi.event.EventFilter;
import org.apache.tuscany.spi.event.RuntimeEventListener;
+import org.apache.tuscany.spi.event.TrueFilter;
/**
* Implements functionality common to scope contexts.
*
* @version $Rev: 399161 $ $Date: 2006-05-02 23:09:37 -0700 (Tue, 02 May 2006) $
*/
-public abstract class AbstractScopeContext<T extends Context> extends AbstractLifecycle implements ScopeContext<T> {
+public abstract class AbstractScopeContext extends AbstractLifecycle implements ScopeContext {
// The event context the scope container is associated with
protected WorkContext workContext;
@@ -79,7 +79,7 @@
}
}
- public Object getInstance(T context) throws TargetException {
+ public Object getInstance(AtomicContext context) throws TargetException {
InstanceWrapper ctx = getInstanceContext(context);
if (ctx != null) {
if (ctx.getLifecycleState() == UNINITIALIZED) {
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java Fri May 19 21:26:25 2006
@@ -20,7 +20,7 @@
*
* @version $Rev: 399161 $ $Date: 2006-05-02 23:09:37 -0700 (Tue, 02 May 2006) $
*/
-public class HttpSessionScopeContext extends AbstractScopeContext<AtomicContext> {
+public class HttpSessionScopeContext extends AbstractScopeContext {
public static final Object HTTP_IDENTIFIER = new Object();
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/ModuleScopeContext.java Fri May 19 21:26:25 2006
@@ -22,7 +22,7 @@
*
* @version $Rev: 399161 $ $Date: 2006-05-02 23:09:37 -0700 (Tue, 02 May 2006) $
*/
-public class ModuleScopeContext extends AbstractScopeContext<AtomicContext> {
+public class ModuleScopeContext extends AbstractScopeContext {
private final Map<AtomicContext, InstanceWrapper> instanceContexts;
// the queue of instanceContexts to destroy, in the order that their instances were created
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/RequestScopeContext.java Fri May 19 21:26:25 2006
@@ -20,7 +20,7 @@
*
* @version $Rev: 399161 $ $Date: 2006-05-02 23:09:37 -0700 (Tue, 02 May 2006) $
*/
-public class RequestScopeContext extends AbstractScopeContext<AtomicContext> {
+public class RequestScopeContext extends AbstractScopeContext {
private final Map<AtomicContext, Map<Thread, InstanceWrapper>> contexts;
private final Map<Thread, List<InstanceWrapper>> destroyQueues;
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/StatelessScopeContext.java Fri May 19 21:26:25 2006
@@ -25,7 +25,7 @@
*
* @version $Rev: 399161 $ $Date: 2006-05-02 23:09:37 -0700 (Tue, 02 May 2006) $
*/
-public class StatelessScopeContext extends AbstractScopeContext<AtomicContext> {
+public class StatelessScopeContext extends AbstractScopeContext {
public StatelessScopeContext(){
this(null);
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/IntraCompositeResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/IntraCompositeResolver.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/IntraCompositeResolver.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/IntraCompositeResolver.java Fri May 19 21:26:25 2006
@@ -8,6 +8,9 @@
import org.apache.tuscany.spi.context.ReferenceContext;
/**
+ * Resolves a target within the same composite as a source. The target may be an atomic context, a service
+ * offered by a child composite, or a reference.
+ *
* @version $$Rev$$ $$Date$$
*/
public class IntraCompositeResolver<T> implements ObjectFactory<T> {
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemBindingBuilder.java?rev=407953&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemBindingBuilder.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemBindingBuilder.java Fri May 19 21:26:25 2006
@@ -0,0 +1,37 @@
+package org.apache.tuscany.core.system.builder;
+
+import org.apache.tuscany.core.system.context.AutowireReferenceContextImpl;
+import org.apache.tuscany.core.system.context.SystemServiceContext;
+import org.apache.tuscany.core.system.context.SystemServiceContextImpl;
+import org.apache.tuscany.core.system.model.SystemBinding;
+import org.apache.tuscany.core.system.wire.SystemTargetWire;
+import org.apache.tuscany.model.BoundReference;
+import org.apache.tuscany.model.BoundService;
+import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.builder.BindingBuilder;
+import org.apache.tuscany.spi.context.CompositeContext;
+import org.apache.tuscany.spi.context.Context;
+import org.apache.tuscany.spi.wire.TargetWire;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class SystemBindingBuilder implements BindingBuilder<SystemBinding> {
+
+ public Context build(CompositeContext parent, BoundService<SystemBinding> boundService) {
+ Class<?> interfaze = boundService.getServiceContract().getInterface();
+ String targetName = boundService.getTarget().getPath();
+// SystemServiceContext context = new SystemServiceContextImpl(boundService.getName(),interfaze,
+// targetName,parent);
+
+ return null;
+ }
+
+ public Context build(CompositeContext parent, BoundReference<SystemBinding> boundReference) {
+ Class<?> interfaze = boundReference.getServiceContract().getInterface();
+ AutowireReferenceContextImpl ctx = new AutowireReferenceContextImpl(boundReference.getName(), interfaze, parent);
+ TargetWire<?> wire = new SystemTargetWire(interfaze, ctx);
+ ctx.setTargetWire(wire);
+ return ctx;
+ }
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemComponentBuilder.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemComponentBuilder.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemComponentBuilder.java Fri May 19 21:26:25 2006
@@ -9,7 +9,6 @@
import org.apache.tuscany.common.ObjectFactory;
import org.apache.tuscany.core.injection.ContextInjector;
import org.apache.tuscany.core.injection.Injector;
-import org.apache.tuscany.core.injection.IntraCompositeResolver;
import org.apache.tuscany.core.injection.PojoObjectFactory;
import org.apache.tuscany.core.model.PojoComponentType;
import org.apache.tuscany.core.system.context.SystemAtomicContext;
@@ -25,19 +24,17 @@
import org.apache.tuscany.spi.builder.ComponentBuilder;
import org.apache.tuscany.spi.context.ComponentContext;
import org.apache.tuscany.spi.context.CompositeContext;
-import org.apache.tuscany.spi.context.Context;
/**
* @version $$Rev$$ $$Date$$
*/
-//@SuppressWarnings("unchecked")
public class SystemComponentBuilder implements ComponentBuilder<SystemImplementation> {
public ComponentContext build(CompositeContext parent, Component<SystemImplementation> component) throws BuilderConfigException {
PojoComponentType componentType = component.getImplementation().getComponentType();
List<Class<?>> serviceInterfaces = new ArrayList<Class<?>>();
for (Service service : componentType.getServices().values()) {
- serviceInterfaces.add(service.getServiceContract().getInteface());
+ serviceInterfaces.add(service.getServiceContract().getInterface());
}
Constructor<?> constr;
try {
@@ -72,7 +69,7 @@
for (ReferenceTarget target : component.getReferenceTargets().values()) {
String referenceName = target.getReferenceName();
- Class interfaze = target.getReference().getServiceContract().getInteface();
+ Class interfaze = target.getReference().getServiceContract().getInterface();
Member member = componentType.getReferenceMember(referenceName);
if (member == null) {
BuilderConfigException e = new BuilderConfigException("Reference not found");
@@ -84,9 +81,7 @@
//FIXME support multiplicity!
assert(target.getTargets().size() == 1): "Multiplicity not yet implemented";
QualifiedName targetName = new QualifiedName(target.getTargets().get(0).getPath());
- Context targetContext = parent.getContext(targetName.getPartName());
- IntraCompositeResolver resolver = new IntraCompositeResolver(targetContext, targetName.getPortName());
- SystemSourceWire wire = new SystemSourceWire(referenceName, targetName, interfaze, resolver);
+ SystemSourceWire<?> wire = new SystemSourceWire(referenceName, targetName, interfaze);
systemContext.addSourceWire(wire);
}
return systemContext;
Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireReferenceContextImpl.java (from r407909, incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireSystemReferenceContext.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireReferenceContextImpl.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireReferenceContextImpl.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireSystemReferenceContext.java&r1=407909&r2=407953&rev=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireSystemReferenceContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireReferenceContextImpl.java Fri May 19 21:26:25 2006
@@ -2,37 +2,36 @@
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
-import java.util.Map;
-import org.apache.tuscany.spi.context.AbstractContext;
import org.apache.tuscany.core.context.AutowireContext;
import org.apache.tuscany.spi.context.CompositeContext;
-import org.apache.tuscany.spi.context.ReferenceContext;
import org.apache.tuscany.spi.context.TargetException;
+import org.apache.tuscany.spi.extension.ReferenceContextExtension;
import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.spi.wire.TargetWire;
+import org.apache.tuscany.model.Scope;
/**
- * The default implementation of an external service context
- *
* @version $Rev: 399991 $ $Date: 2006-05-04 23:44:07 -0700 (Thu, 04 May 2006) $
*/
-public class AutowireSystemReferenceContext<T> extends AbstractContext<T> implements ReferenceContext<T> {
+public class AutowireReferenceContextImpl<T> extends ReferenceContextExtension<T> implements SystemReferenceContext<T> {
- private Class<T> referenceInterface;
private AutowireContext<?> autowireContext;
- public AutowireSystemReferenceContext(String name, Class<T> referenceInterface, CompositeContext parent) {
- super(name);
+ public AutowireReferenceContextImpl(String name, Class<T> referenceInterface, CompositeContext parent) {
assert (referenceInterface != null) : "Reference interface was null";
assert (parent instanceof AutowireContext) : "Parent must implement " + AutowireContext.class.getName();
+ this.name = name;
this.referenceInterface = referenceInterface;
autowireContext = (AutowireContext) parent;
setParent(parent);
}
+ public Scope getScope() {
+ return Scope.COMPOSITE;
+ }
+
public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
- return null;
+ throw new UnsupportedOperationException();
}
public T getService() throws TargetException {
@@ -43,24 +42,5 @@
throw new UnsupportedOperationException();
}
- public Class<T> getInterface() {
- return referenceInterface;
- }
-
- public TargetWire<T> getTargetWire() {
- throw new UnsupportedOperationException();
- }
-
- public void addTargetWire(TargetWire wire) {
- throw new UnsupportedOperationException();
- }
-
- public TargetWire getTargetWire(String serviceName) {
- throw new UnsupportedOperationException();
- }
-
- public Map<String, TargetWire> getTargetWires() {
- throw new UnsupportedOperationException();
- }
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContextImpl.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContextImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContextImpl.java Fri May 19 21:26:25 2006
@@ -33,9 +33,6 @@
return (T) scopeContext.getInstance(this);
}
- public void prepare() {
- }
-
public Object getService(String name) throws TargetException {
return getTargetInstance();
}
@@ -47,5 +44,10 @@
public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
throw new UnsupportedOperationException();
}
+
+ public void prepare() {
+ // overrid and do nothing since system services do not proxy
+ }
+
}
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemReferenceContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemReferenceContext.java?rev=407953&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemReferenceContext.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemReferenceContext.java Fri May 19 21:26:25 2006
@@ -0,0 +1,9 @@
+package org.apache.tuscany.core.system.context;
+
+import org.apache.tuscany.spi.context.ReferenceContext;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public interface SystemReferenceContext<T> extends ReferenceContext<T> {
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java Fri May 19 21:26:25 2006
@@ -3,15 +3,12 @@
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
+import org.apache.tuscany.model.Scope;
import org.apache.tuscany.spi.CoreRuntimeException;
-import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.context.AbstractContext;
-import org.apache.tuscany.spi.context.AtomicContext;
import org.apache.tuscany.spi.context.CompositeContext;
-import org.apache.tuscany.spi.context.Context;
-import org.apache.tuscany.spi.context.IllegalTargetException;
-import org.apache.tuscany.spi.context.ReferenceContext;
-import org.apache.tuscany.spi.context.TargetNotFoundException;
+import org.apache.tuscany.spi.context.TargetException;
+import org.apache.tuscany.spi.wire.ProxyCreationException;
import org.apache.tuscany.spi.wire.SourceWire;
import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -20,38 +17,45 @@
*/
public class SystemServiceContextImpl<T> extends AbstractContext<T> implements SystemServiceContext<T> {
- // a reference to the component's implementation instance exposed by the entry point
- private T cachedInstance;
private Class<T> interfaze;
- private QualifiedName target;
+ private SourceWire<T> wire;
- public SystemServiceContextImpl(String name, Class<T> interfaze, String targetName, CompositeContext parent) throws CoreRuntimeException {
+ public SystemServiceContextImpl(String name, Class<T> interfaze, SourceWire<T> wire, CompositeContext parent) throws CoreRuntimeException {
super(name);
this.interfaze = interfaze;
- target = new QualifiedName(targetName);
- setParent(parent);
+ this.parentContext = parent;
+ this.wire = wire;
+ }
+
+ public Scope getScope() {
+ return Scope.COMPOSITE;
}
@SuppressWarnings("unchecked")
public T getService() {
- if (cachedInstance == null) {
- Context ctx = getParent().getContext(target.getPartName());
- if ((ctx instanceof AtomicContext)) {
- cachedInstance = (T) ((AtomicContext) ctx).getService(target.getPortName());
- } else if ((ctx instanceof ReferenceContext)) {
- cachedInstance = (T) ctx.getService();
- } else if (ctx == null) {
- TargetNotFoundException e = new TargetNotFoundException(name);
- e.addContextName(getName());
- throw e;
- } else {
- IllegalTargetException e = new IllegalTargetException("Reference target must be a component or reference context");
- e.setIdentifier(name);
- e.addContextName(getName());
- throw e;
- }
+ try {
+ return wire.createProxy();
+ } catch (ProxyCreationException e) {
+ throw new TargetException(e);
}
- return cachedInstance;
+// if (cachedInstance == null) {
+// Context ctx = getParent().getContext(target.getPartName());
+// if ((ctx instanceof AtomicContext)) {
+// cachedInstance = (T) ((AtomicContext) ctx).getService(target.getPortName());
+// } else if ((ctx instanceof ReferenceContext)) {
+// cachedInstance = (T) ctx.getService();
+// } else if (ctx == null) {
+// TargetNotFoundException e = new TargetNotFoundException(name);
+// e.addContextName(getName());
+// throw e;
+// } else {
+// IllegalTargetException e = new IllegalTargetException("Reference target must be a component or reference context");
+// e.setIdentifier(name);
+// e.addContextName(getName());
+// throw e;
+// }
+// }
+// return cachedInstance;
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemSingletonAtomicContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemSingletonAtomicContext.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemSingletonAtomicContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemSingletonAtomicContext.java Fri May 19 21:26:25 2006
@@ -1,20 +1,19 @@
package org.apache.tuscany.core.system.context;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.lang.reflect.Method;
import org.apache.tuscany.common.ObjectCreationException;
-import org.apache.tuscany.spi.context.AbstractContext;
import org.apache.tuscany.model.Scope;
-import org.apache.tuscany.spi.context.AtomicContext;
+import org.apache.tuscany.spi.context.AbstractContext;
import org.apache.tuscany.spi.context.InstanceWrapper;
import org.apache.tuscany.spi.context.ScopeContext;
import org.apache.tuscany.spi.context.TargetException;
import org.apache.tuscany.spi.wire.SourceWire;
-import org.apache.tuscany.spi.wire.TargetWire;
import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.wire.TargetWire;
/**
* An {@link org.apache.tuscany.spi.context.AtomicContext} used when registering objects directly into a
@@ -42,7 +41,7 @@
return Scope.MODULE;
}
- public void setScopeContext(ScopeContext<AtomicContext> context) {
+ public void setScopeContext(ScopeContext context) {
// do nothing
}
@@ -102,7 +101,7 @@
}
- public TargetInvoker createTargetInvoker(String serviceName, Method operation){
+ public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
throw new UnsupportedOperationException();
}
}
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/model/SystemBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/model/SystemBinding.java?rev=407953&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/model/SystemBinding.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/model/SystemBinding.java Fri May 19 21:26:25 2006
@@ -0,0 +1,9 @@
+package org.apache.tuscany.core.system.model;
+
+import org.apache.tuscany.model.Binding;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class SystemBinding extends Binding {
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemSourceWire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemSourceWire.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemSourceWire.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemSourceWire.java Fri May 19 21:26:25 2006
@@ -4,26 +4,25 @@
import java.util.Collections;
import java.util.Map;
-import org.apache.tuscany.common.ObjectFactory;
import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.wire.ProxyCreationException;
import org.apache.tuscany.spi.wire.SourceInvocationChain;
import org.apache.tuscany.spi.wire.SourceWire;
+import org.apache.tuscany.spi.wire.TargetWire;
/**
* @version $$Rev$$ $$Date$$
*/
-public class SystemSourceWire implements SourceWire {
+public class SystemSourceWire<T> implements SourceWire<T> {
private String referenceName;
private QualifiedName targetName;
- private Class businessInterface;
- private ObjectFactory factory;
+ private Class<T> businessInterface;
+ private TargetWire<T> targetWire;
- public SystemSourceWire(String referenceName, QualifiedName targetName, Class businessInterface, ObjectFactory factory) {
+ public SystemSourceWire(String referenceName, QualifiedName targetName, Class<T> businessInterface) {
this.referenceName = referenceName;
this.targetName = targetName;
this.businessInterface = businessInterface;
- this.factory = factory;
}
public String getReferenceName() {
@@ -42,15 +41,18 @@
this.targetName = targetName;
}
- public Object createProxy() throws ProxyCreationException {
- return factory.getInstance();
+ public T createProxy() throws ProxyCreationException {
+ if (targetWire == null) {
+ throw new ProxyCreationException("Target wire not set on source wire");
+ }
+ return targetWire.createProxy();
}
- public Class getBusinessInterface() {
+ public Class<T> getBusinessInterface() {
return businessInterface;
}
- public void setBusinessInterface(Class businessInterface) {
+ public void setBusinessInterface(Class<T> businessInterface) {
this.businessInterface = businessInterface;
}
@@ -58,7 +60,7 @@
return new Class[0];
}
- public Map getInvocationChains() {
+ public Map<Method, SourceInvocationChain> getInvocationChains() {
return Collections.emptyMap();
}
@@ -72,6 +74,10 @@
public void addInterface(Class claz) {
throw new UnsupportedOperationException();
+ }
+
+ public void setTargetWire(TargetWire<T> wire) {
+ targetWire = wire;
}
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemTargetWire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemTargetWire.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemTargetWire.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemTargetWire.java Fri May 19 21:26:25 2006
@@ -1,27 +1,39 @@
package org.apache.tuscany.core.system.wire;
-import java.util.Map;
-import java.util.Collections;
import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.Map;
-import org.apache.tuscany.spi.wire.TargetWire;
+import org.apache.tuscany.spi.context.ComponentContext;
+import org.apache.tuscany.spi.context.ReferenceContext;
import org.apache.tuscany.spi.wire.ProxyCreationException;
-import org.apache.tuscany.spi.wire.TargetInvocationChain;
import org.apache.tuscany.spi.wire.SourceInvocationChain;
-import org.apache.tuscany.common.ObjectFactory;
+import org.apache.tuscany.spi.wire.TargetInvocationChain;
+import org.apache.tuscany.spi.wire.TargetWire;
/**
* @version $$Rev$$ $$Date$$
*/
-public class SystemTargetWire implements TargetWire {
+public class SystemTargetWire<T> implements TargetWire<T> {
private String serviceName;
- private Class businessInterface;
- private ObjectFactory factory;
+ private Class<T> businessInterface;
+ private ReferenceContext<T> referenceContext;
+ private ComponentContext<?> componentContext;
- public SystemTargetWire(String serviceName, Class businessInterface, ObjectFactory factory) {
+ public SystemTargetWire(Class<T> businessInterface, ReferenceContext<T> target) {
+ this.businessInterface = businessInterface;
+ this.referenceContext = target;
+ }
+
+ public SystemTargetWire(String serviceName, Class<T> businessInterface, ComponentContext<?> target) {
this.serviceName = serviceName;
this.businessInterface = businessInterface;
- this.factory = factory;
+ this.componentContext = target;
+ }
+
+ public SystemTargetWire(Class<T> businessInterface, ComponentContext<?> target) {
+ this.businessInterface = businessInterface;
+ this.componentContext = target;
}
public String getServiceName() {
@@ -32,16 +44,20 @@
this.serviceName = serviceName;
}
- public Object createProxy() throws ProxyCreationException {
- return factory.getInstance();
+ @SuppressWarnings("unchecked")
+ public T createProxy() throws ProxyCreationException {
+ if (referenceContext != null) {
+ return referenceContext.getService();
+ } else {
+ return (T)componentContext.getService(serviceName);
+ }
}
- public Class getBusinessInterface() {
+ public Class<T> getBusinessInterface() {
return businessInterface;
}
-
- public void setBusinessInterface(Class businessInterface) {
+ public void setBusinessInterface(Class<T> businessInterface) {
this.businessInterface = businessInterface;
}
@@ -49,7 +65,7 @@
return new Class[0];
}
- public Map getInvocationChains() {
+ public Map<Method, TargetInvocationChain> getInvocationChains() {
return Collections.emptyMap();
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWire.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWire.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWire.java Fri May 19 21:26:25 2006
@@ -18,10 +18,12 @@
import java.util.Map;
import org.apache.tuscany.core.util.MethodHashMap;
+import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.wire.ProxyCreationException;
import org.apache.tuscany.spi.wire.SourceInvocationChain;
import org.apache.tuscany.spi.wire.SourceWire;
+import org.apache.tuscany.spi.wire.TargetWire;
import org.apache.tuscany.spi.wire.WireInvocationHandler;
-import org.apache.tuscany.spi.QualifiedName;
/**
* Creates proxies that are injected on references using JDK dynamic proxy facilities and front a wire. The
@@ -35,9 +37,14 @@
private Map<Method, SourceInvocationChain> invocationChains = new MethodHashMap<SourceInvocationChain>();
private String referenceName;
private QualifiedName targetName;
+ private TargetWire<T> targetWire;
@SuppressWarnings("unchecked")
- public T createProxy() {
+ public T createProxy() throws ProxyCreationException {
+ if (targetWire != null) {
+ // optimized, no interceptors or handlers on either end
+ return targetWire.createProxy();
+ }
WireInvocationHandler handler = new JDKInvocationHandler();
handler.setConfiguration(invocationChains);
return (T) Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), businessInterfaces, handler);
@@ -88,4 +95,7 @@
this.targetName = targetName;
}
+ public void setTargetWire(TargetWire<T> wire) {
+ targetWire = wire;
+ }
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/WireServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/WireServiceImpl.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/WireServiceImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/WireServiceImpl.java Fri May 19 21:26:25 2006
@@ -63,7 +63,7 @@
public SourceWire createSourceWire(Reference reference) throws BuilderConfigException {
String name = reference.getName();
- Class interfaze = reference.getServiceContract().getInteface();
+ Class interfaze = reference.getServiceContract().getInterface();
SourceWire<?> wire = wireFactoryService.createSourceWire();
wire.setBusinessInterface(interfaze);
wire.setReferenceName(name);
@@ -82,7 +82,7 @@
public TargetWire createTargetWire(Service service) {
String name = service.getName();
- Class interfaze = service.getServiceContract().getInteface();
+ Class interfaze = service.getServiceContract().getInterface();
TargetWire<?> wire = wireFactoryService.createTargetWire();
wire.setBusinessInterface(interfaze);
wire.setServiceName(name);
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java Fri May 19 21:26:25 2006
@@ -1,18 +1,14 @@
package org.apache.tuscany.core.integration.system;
+import java.lang.reflect.Member;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.HashMap;
-import java.lang.reflect.Member;
import junit.framework.TestCase;
import org.apache.tuscany.core.context.WorkContextImpl;
import org.apache.tuscany.core.context.scope.ModuleScopeContext;
-import org.apache.tuscany.core.injection.Injector;
-import org.apache.tuscany.core.injection.MethodInjector;
-import org.apache.tuscany.core.injection.TargetInstanceResolver;
-import org.apache.tuscany.core.injection.IntraCompositeResolver;
import org.apache.tuscany.core.mock.MockContextFactory;
import org.apache.tuscany.core.mock.component.Source;
import org.apache.tuscany.core.mock.component.SourceImpl;
@@ -23,28 +19,34 @@
import org.apache.tuscany.core.system.context.SystemCompositeContext;
import org.apache.tuscany.core.system.context.SystemCompositeContextImpl;
import org.apache.tuscany.core.system.wire.SystemSourceWire;
+import org.apache.tuscany.core.system.wire.SystemTargetWire;
+import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.context.ReferenceContext;
import org.apache.tuscany.spi.context.WorkContext;
-import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.wire.SourceWire;
+import org.apache.tuscany.spi.wire.TargetWire;
/**
* @version $$Rev$$ $$Date$$
*/
public class AtomicContextToReferenceContextTestCase extends TestCase {
- public void testWireResolution() throws NoSuchMethodException{
+ public void testWireResolution() throws NoSuchMethodException {
WorkContext ctx = new WorkContextImpl();
ModuleScopeContext scope = new ModuleScopeContext(ctx);
SystemCompositeContext context = new SystemCompositeContextImpl();
scope.start();
ReferenceContext<Target> serviceContext = new MockReferenceContext<Target>("service", Target.class, new TargetImpl());
context.registerContext(serviceContext);
- Map<String, Member> members = new HashMap<String,Member>();
- members.put("setTarget",SourceImpl.class.getMethod("setTarget", Target.class));
+ Map<String, Member> members = new HashMap<String, Member>();
+ members.put("setTarget", SourceImpl.class.getMethod("setTarget", Target.class));
List<Class<?>> interfaces = new ArrayList<Class<?>>();
interfaces.add(Source.class);
- SystemAtomicContext sourceContext = MockContextFactory.createSystemAtomicContext("source", interfaces, SourceImpl.class, null,members);
- sourceContext.addSourceWire(new SystemSourceWire("setTarget",new QualifiedName("service"),Target.class, new IntraCompositeResolver(serviceContext,"")));
+ SystemAtomicContext sourceContext = MockContextFactory.createSystemAtomicContext("source", interfaces, SourceImpl.class, null, members);
+ SourceWire<Target> sourceWire = new SystemSourceWire<Target>("setTarget", new QualifiedName("service"), Target.class);
+ TargetWire<Target> targetWire = new SystemTargetWire<Target>(Target.class, serviceContext);
+ sourceWire.setTargetWire(targetWire);
+ sourceContext.addSourceWire(sourceWire);
context.registerContext(sourceContext);
sourceContext.setScopeContext(scope);
context.start();
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToAtomicContextTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToAtomicContextTestCase.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToAtomicContextTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToAtomicContextTestCase.java Fri May 19 21:26:25 2006
@@ -11,7 +11,12 @@
import org.apache.tuscany.core.system.context.SystemCompositeContextImpl;
import org.apache.tuscany.core.system.context.SystemServiceContext;
import org.apache.tuscany.core.system.context.SystemServiceContextImpl;
+import org.apache.tuscany.core.system.wire.SystemSourceWire;
+import org.apache.tuscany.core.system.wire.SystemTargetWire;
import org.apache.tuscany.spi.context.WorkContext;
+import org.apache.tuscany.spi.wire.SourceWire;
+import org.apache.tuscany.spi.wire.TargetWire;
+import org.apache.tuscany.spi.QualifiedName;
/**
* @version $$Rev$$ $$Date$$
@@ -26,7 +31,10 @@
SystemAtomicContext targetContext = MockContextFactory.createSystemAtomicContext("target", TargetImpl.class);
context.registerContext(targetContext);
targetContext.setScopeContext(scope);
- SystemServiceContext<Target> serviceContext = new SystemServiceContextImpl<Target>("service", Target.class, "target", context);
+ TargetWire<Target> targetWire = new SystemTargetWire<Target>(Target.class,targetContext);
+ SourceWire<Target> wire = new SystemSourceWire<Target>("service",new QualifiedName("target"),Target.class); //String referenceName, QualifiedName targetName, Class<T> businessInterface
+ wire.setTargetWire(targetWire);
+ SystemServiceContext<Target> serviceContext = new SystemServiceContextImpl<Target>("service", Target.class, wire, context);
context.registerContext(serviceContext);
context.start();
SystemServiceContext serviceContext2 = (SystemServiceContext) context.getContext("service");
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToReferenceContextTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToReferenceContextTestCase.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToReferenceContextTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToReferenceContextTestCase.java Fri May 19 21:26:25 2006
@@ -10,8 +10,13 @@
import org.apache.tuscany.core.system.context.SystemCompositeContextImpl;
import org.apache.tuscany.core.system.context.SystemServiceContext;
import org.apache.tuscany.core.system.context.SystemServiceContextImpl;
+import org.apache.tuscany.core.system.wire.SystemTargetWire;
+import org.apache.tuscany.core.system.wire.SystemSourceWire;
import org.apache.tuscany.spi.context.ReferenceContext;
import org.apache.tuscany.spi.context.WorkContext;
+import org.apache.tuscany.spi.wire.TargetWire;
+import org.apache.tuscany.spi.wire.SourceWire;
+import org.apache.tuscany.spi.QualifiedName;
/**
* @version $$Rev$$ $$Date$$
@@ -25,7 +30,10 @@
scope.start();
ReferenceContext<Target> referenceContext = new MockReferenceContext<Target>("reference", Target.class, new TargetImpl());
context.registerContext(referenceContext);
- SystemServiceContext<Target> serviceContext = new SystemServiceContextImpl<Target>("service", Target.class, "reference", context);
+ TargetWire<Target> targetWire = new SystemTargetWire<Target>(Target.class,referenceContext);
+ SourceWire<Target> wire = new SystemSourceWire<Target>("service",new QualifiedName("reference"),Target.class); //String referenceName, QualifiedName targetName, Class<T> businessInterface
+ wire.setTargetWire(targetWire);
+ SystemServiceContext<Target> serviceContext = new SystemServiceContextImpl<Target>("service", Target.class, wire, context);
context.registerContext(serviceContext);
context.start();
SystemServiceContext serviceContext2 = (SystemServiceContext) context.getContext("service");
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockContextFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockContextFactory.java?rev=407953&r1=407952&r2=407953&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockContextFactory.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockContextFactory.java Fri May 19 21:26:25 2006
@@ -11,12 +11,12 @@
import org.apache.tuscany.common.ObjectFactory;
import org.apache.tuscany.core.injection.EventInvoker;
import org.apache.tuscany.core.injection.Injector;
-import org.apache.tuscany.core.injection.IntraCompositeResolver;
import org.apache.tuscany.core.injection.MethodEventInvoker;
import org.apache.tuscany.core.injection.PojoObjectFactory;
import org.apache.tuscany.core.system.context.SystemAtomicContext;
import org.apache.tuscany.core.system.context.SystemAtomicContextImpl;
import org.apache.tuscany.core.system.wire.SystemSourceWire;
+import org.apache.tuscany.core.system.wire.SystemTargetWire;
import org.apache.tuscany.core.util.MethodHashMap;
import org.apache.tuscany.core.wire.InvokerInterceptor;
import org.apache.tuscany.core.wire.TargetInvocationChainImpl;
@@ -34,8 +34,8 @@
*/
public class MockContextFactory {
- public static Map<String, AtomicContext> createWiredContexts(String source, Class<?> sourceClass, ScopeContext<AtomicContext> sourceScopeCtx,
- String target, Class<?> targetClass, ScopeContext<AtomicContext> targetScopeCtx) throws NoSuchMethodException {
+ public static Map<String, AtomicContext> createWiredContexts(String source, Class<?> sourceClass, ScopeContext sourceScopeCtx,
+ String target, Class<?> targetClass, ScopeContext targetScopeCtx) throws NoSuchMethodException {
List<Class<?>> sourceClasses = new ArrayList<Class<?>>();
sourceClasses.add(sourceClass);
return createWiredContexts(source, sourceClasses, sourceClass, sourceScopeCtx, target, targetClass, targetScopeCtx);
@@ -48,8 +48,8 @@
*
* @throws NoSuchMethodException
*/
- public static Map<String, AtomicContext> createWiredContexts(String source, List<Class<?>> sourceInterfaces, Class<?> sourceClass, ScopeContext<AtomicContext> sourceScopeCtx,
- String target, Class<?> targetClass, ScopeContext<AtomicContext> targetScopeCtx) throws NoSuchMethodException {
+ public static Map<String, AtomicContext> createWiredContexts(String source, List<Class<?>> sourceInterfaces, Class<?> sourceClass, ScopeContext sourceScopeCtx,
+ String target, Class<?> targetClass, ScopeContext targetScopeCtx) throws NoSuchMethodException {
Map<String, AtomicContext> contexts = new HashMap<String, AtomicContext>();
SystemAtomicContext targetCtx = createSystemAtomicContext(target, targetClass);//, targetEager, targetInitInvoker, targetDestroyInvoker, null);
@@ -76,14 +76,14 @@
throw new IllegalArgumentException("No setter found on source for target");
}
-// MethodInjector injector = new MethodInjector(setter, new AtomicContextInstanceFactory(targetCtx));
-// List<Injector> injectors = new ArrayList<Injector>();
-// injectors.add(injector);
Map<String, Member> members = new HashMap<String, Member>();
members.put(setter.getName(), setter);
SystemAtomicContext sourceCtx = createSystemAtomicContext(source, sourceInterfaces, sourceClass, null, members);//, sourceEager, sourceInitInvoker, sourceDestroyInvoker, injectors);
QualifiedName targetName = new QualifiedName(target);
- SystemSourceWire wire = new SystemSourceWire(setter.getName(), targetName, targetClass, new IntraCompositeResolver(targetCtx, targetName.getPortName()));
+ SystemSourceWire wire = new SystemSourceWire(setter.getName(), targetName, targetClass);
+ TargetWire targetWire = new SystemTargetWire(targetName.getPortName(), targetClass, targetCtx);
+ wire.setTargetWire(targetWire);
+
sourceCtx.addSourceWire(wire);
sourceCtx.setScopeContext(sourceScopeCtx);
contexts.put(source, sourceCtx);
@@ -91,11 +91,14 @@
return contexts;
}
-
public static SystemAtomicContext createSystemAtomicContext(String name, Class<?> clazz) throws NoSuchMethodException {
List<Class<?>> serviceInterfaces = new ArrayList<Class<?>>();
serviceInterfaces.add(clazz);
- return createSystemAtomicContext(name, serviceInterfaces, clazz, null, null);
+ return createSystemAtomicContext(name, serviceInterfaces, clazz);
+ }
+
+ public static SystemAtomicContext createSystemAtomicContext(String name, List<Class<?>> interfaces, Class<?> clazz) throws NoSuchMethodException {
+ return createSystemAtomicContext(name, interfaces, clazz, null, null);
}
public static SystemAtomicContext createSystemAtomicContext(String name, List<Class<?>> serviceInterfaces,
@@ -158,20 +161,5 @@
Constructor<T> ctr = clazz.getConstructor((Class<T>[]) null);
return new PojoObjectFactory<T>(ctr);
}
-
-// /**
-// * Used for injecting references
-// */
-// private static class AtomicContextInstanceFactory implements ObjectFactory {
-// private SystemAtomicContext ctx;
-//
-// public AtomicContextInstanceFactory(SystemAtomicContext ctx) {
-// this.ctx = ctx;
-// }
-//
-// public Object getInstance() throws ObjectCreationException {
-// return ctx.getTargetInstance();
-// }
-// }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org