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/02/24 09:42:45 UTC
svn commit: r380621 - in /incubator/tuscany/java/sca:
container.java/src/main/java/org/apache/tuscany/container/java/builder/
container.java/src/main/resources/
core/src/main/java/org/apache/tuscany/core/builder/impl/
core/src/main/java/org/apache/tusc...
Author: jmarino
Date: Fri Feb 24 00:42:35 2006
New Revision: 380621
URL: http://svn.apache.org/viewcvs?rev=380621&view=rev
Log:
integration of wire builders into bootstrap configuration; removal of empty package dirs
Added:
incubator/tuscany/java/sca/core/src/test/resources/system.fragment
Removed:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/message/channel/impl/
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/message/handler/
Modified:
incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilder.java
incubator/tuscany/java/sca/container.java/src/main/resources/system.fragment
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/DefaultWireBuilder.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContext.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContextImpl.java
Modified: incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilder.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilder.java?rev=380621&r1=380620&r2=380621&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilder.java (original)
+++ incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaTargetWireBuilder.java Fri Feb 24 00:42:35 2006
@@ -20,6 +20,7 @@
import org.apache.tuscany.core.context.ScopeContext;
import org.apache.tuscany.core.invocation.InvocationConfiguration;
import org.apache.tuscany.core.invocation.spi.ProxyFactory;
+import org.osoa.sca.annotations.Init;
import org.osoa.sca.annotations.Scope;
/**
@@ -33,6 +34,10 @@
public JavaTargetWireBuilder() {
}
+ @Init(eager = true)
+ public void init() {
+ }
+
public void connect(ProxyFactory sourceFactory, ProxyFactory targetFactory, Class targetType, boolean downScope,
ScopeContext targetScopeContext) throws BuilderConfigException {
if (!(JavaComponentRuntimeConfiguration.class.isAssignableFrom(targetType))) {
@@ -40,8 +45,8 @@
}
for (InvocationConfiguration sourceInvocationConfig : sourceFactory.getProxyConfiguration().getInvocationConfigurations()
.values()) {
- ScopedJavaComponentInvoker invoker = new ScopedJavaComponentInvoker(sourceFactory.getProxyConfiguration().getTargetName(), sourceInvocationConfig.getMethod(),
- targetScopeContext);
+ ScopedJavaComponentInvoker invoker = new ScopedJavaComponentInvoker(sourceFactory.getProxyConfiguration()
+ .getTargetName(), sourceInvocationConfig.getMethod(), targetScopeContext);
if (downScope) {
// the source scope is shorter than the target, so the invoker can cache the target instance
invoker.setCacheable(true);
@@ -52,17 +57,19 @@
}
}
- public void completeTargetChain(ProxyFactory targetFactory, Class targetType, ScopeContext targetScopeContext) throws BuilderConfigException {
- //TODO implement.
-// if (!(JavaComponentRuntimeConfiguration.class.isAssignableFrom(targetType))) {
-// return;
-// }
-// for (InvocationConfiguration targetInvocationConfig : targetFactory.getProxyConfiguration().getInvocationConfigurations()
-// .values()) {
-// ScopedJavaComponentInvoker invoker = new ScopedJavaComponentInvoker(targetFactory.getProxyConfiguration()
-// .getTargetName(), ((JavaOperationType) targetInvocationConfig.getOperationType()).getJavaMethod(),
-// targetScopeContext);
-// targetInvocationConfig.setTargetInvoker(invoker);
-// }
+ public void completeTargetChain(ProxyFactory targetFactory, Class targetType, ScopeContext targetScopeContext)
+ throws BuilderConfigException {
+ // TODO implement.
+ // if (!(JavaComponentRuntimeConfiguration.class.isAssignableFrom(targetType))) {
+ // return;
+ // }
+ // for (InvocationConfiguration targetInvocationConfig :
+ // targetFactory.getProxyConfiguration().getInvocationConfigurations()
+ // .values()) {
+ // ScopedJavaComponentInvoker invoker = new ScopedJavaComponentInvoker(targetFactory.getProxyConfiguration()
+ // .getTargetName(), ((JavaOperationType) targetInvocationConfig.getOperationType()).getJavaMethod(),
+ // targetScopeContext);
+ // targetInvocationConfig.setTargetInvoker(invoker);
+ // }
}
}
Modified: incubator/tuscany/java/sca/container.java/src/main/resources/system.fragment
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/main/resources/system.fragment?rev=380621&r1=380620&r2=380621&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/main/resources/system.fragment (original)
+++ incubator/tuscany/java/sca/container.java/src/main/resources/system.fragment Fri Feb 24 00:42:35 2006
@@ -22,8 +22,20 @@
<system:implementation.system class="org.apache.tuscany.container.java.builder.JavaComponentContextBuilder"/>
</component>
+ <component name="org.apache.tuscany.container.java.builder.JavaTargetWireBuilder">
+ <system:implementation.system class="org.apache.tuscany.container.java.builder.JavaTargetWireBuilder"/>
+ </component>
+ <!-- this needs to be wired to the defailt wire builder in the core system.fragment
+ <wire>
+ <source.uri>org.apache.tuscany.core.builder.impl.DefaultWireBuilder/wireBuilders</source.uri>
+ <target.uri>org.apache.tuscany.container.java.builder.JavaTargetWireBuilder</target.uri>
+ </wire>
+ -->
<component name="org.apache.tuscany.container.java.loader.JavaSCDLModelLoader">
<system:implementation.system class="org.apache.tuscany.container.java.loader.JavaSCDLModelLoader"/>
- </component>
+ </component>
+
+
+
</moduleFragment>
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/DefaultWireBuilder.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/DefaultWireBuilder.java?rev=380621&r1=380620&r2=380621&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/DefaultWireBuilder.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/DefaultWireBuilder.java Fri Feb 24 00:42:35 2006
@@ -25,6 +25,9 @@
import org.apache.tuscany.core.invocation.InvocationConfiguration;
import org.apache.tuscany.core.invocation.impl.MessageChannelImpl;
import org.apache.tuscany.core.invocation.spi.ProxyFactory;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.system.annotation.Autowire;
+import org.osoa.sca.annotations.Init;
import org.osoa.sca.annotations.Scope;
/**
@@ -36,11 +39,23 @@
@Scope("MODULE")
public class DefaultWireBuilder implements WireBuilder {
+ // collection configured wire builders
+ private List<WireBuilder> builders = new ArrayList();
+
+ private RuntimeContext runtimeContext;
+
+ @Autowire
+ public void setRuntimeContext(RuntimeContext ctx) {
+ runtimeContext = ctx;
+ }
+
public DefaultWireBuilder() {
}
- // other configured wire builders
- private List<WireBuilder> builders = new ArrayList();
+ @Init(eager = true)
+ public void init() {
+ runtimeContext.addBuilder(this);
+ }
/**
* Adds a wire builder to delegate to
@@ -49,24 +64,31 @@
builders.add(builder);
}
+ public void setWireBuilders(List<WireBuilder> builders) {
+ builders.addAll(builders);
+ }
+
public void connect(ProxyFactory sourceFactory, ProxyFactory targetFactory, Class targetType, boolean downScope,
ScopeContext targetScopeContext) {
QualifiedName targetName = sourceFactory.getProxyConfiguration().getTargetName();
// get the proxy chain for the target
if (targetFactory != null) {
// if null, the target side has no interceptors or handlers
- Map<Method, InvocationConfiguration> targetInvocationConfigs = targetFactory.getProxyConfiguration().getInvocationConfigurations();
+ Map<Method, InvocationConfiguration> targetInvocationConfigs = targetFactory.getProxyConfiguration()
+ .getInvocationConfigurations();
for (InvocationConfiguration sourceInvocationConfig : sourceFactory.getProxyConfiguration()
.getInvocationConfigurations().values()) {
// match invocation chains
InvocationConfiguration targetInvocationConfig = targetInvocationConfigs.get(sourceInvocationConfig.getMethod());
// if handler is configured, add that
if (targetInvocationConfig.getRequestHandlers() != null) {
- sourceInvocationConfig.setTargetRequestChannel(new MessageChannelImpl(targetInvocationConfig.getRequestHandlers()));
- sourceInvocationConfig.setTargetResponseChannel(new MessageChannelImpl(targetInvocationConfig.getResponseHandlers()));
+ sourceInvocationConfig.setTargetRequestChannel(new MessageChannelImpl(targetInvocationConfig
+ .getRequestHandlers()));
+ sourceInvocationConfig.setTargetResponseChannel(new MessageChannelImpl(targetInvocationConfig
+ .getResponseHandlers()));
} else {
// no handlers, just connect interceptors
- if (targetInvocationConfig.getTargetInterceptor() == null){
+ if (targetInvocationConfig.getTargetInterceptor() == null) {
BuilderConfigException e = new BuilderConfigException("No target handler or interceptor for operation");
e.setIdentifier(targetInvocationConfig.getMethod().getName());
throw e;
@@ -87,8 +109,9 @@
// TODO optimize if no proxy needed using NullProxyFactory
}
}
-
- public void completeTargetChain(ProxyFactory targetFactory, Class targetType,ScopeContext targetScopeContext) throws BuilderConfigException {
+
+ public void completeTargetChain(ProxyFactory targetFactory, Class targetType, ScopeContext targetScopeContext)
+ throws BuilderConfigException {
// delegate to other wire builders
for (WireBuilder builder : builders) {
builder.completeTargetChain(targetFactory, targetType, targetScopeContext);
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContext.java?rev=380621&r1=380620&r2=380621&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContext.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContext.java Fri Feb 24 00:42:35 2006
@@ -15,6 +15,7 @@
import org.apache.tuscany.common.monitor.MonitorFactory;
import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
+import org.apache.tuscany.core.builder.WireBuilder;
import org.apache.tuscany.core.context.AggregateContext;
import org.apache.tuscany.core.context.AutowireContext;
import org.apache.tuscany.core.context.ConfigurationContext;
@@ -59,6 +60,11 @@
* Adds a configuration builder to the runtime
*/
public void addBuilder(RuntimeConfigurationBuilder builder);
+
+ /**
+ * Adds a wire builder to the runtime
+ */
+ public void addBuilder(WireBuilder builder);
/**
* Adds an SCDL model loader to the runtime
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContextImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContextImpl.java?rev=380621&r1=380620&r2=380621&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContextImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeContextImpl.java Fri Feb 24 00:42:35 2006
@@ -135,7 +135,12 @@
assert (builder != null) : "Builder was null";
builders.add(builder);
}
-
+
+ public void addBuilder(WireBuilder builder) {
+ assert (builder != null) : "Builder was null";
+ wireBuilders.add(builder);
+ }
+
public void addLoader(SCDLModelLoader loader) {
assert (loader != null) : "Loader was null";
loaders.add(loader);
Added: incubator/tuscany/java/sca/core/src/test/resources/system.fragment
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/test/resources/system.fragment?rev=380621&view=auto
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/resources/system.fragment (added)
+++ incubator/tuscany/java/sca/core/src/test/resources/system.fragment Fri Feb 24 00:42:35 2006
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ Copyright (c) 2005 The Apache Software Foundation or its licensors, as applicable.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<moduleFragment xmlns="http://www.osoa.org/xmlns/sca/0.9" xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
+ xmlns:system="http://org.apache.tuscany/xmlns/system/0.9"
+ name="org.apache.tuscany.container.java">
+
+ <component name="org.apache.tuscany.core.builder.impl.DefaultWireBuilder">
+ <system:implementation.system class="org.apache.tuscany.core.builder.impl.DefaultWireBuilder"/>
+ </component>
+
+
+</moduleFragment>