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/22 08:45:13 UTC
svn commit: r408583 - in /incubator/tuscany/sandbox/jboynes/sca:
containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/
core2/src/main/java/org/apache/tuscany/core/policy/
core2/src/main/java/org/apache/tuscany/core/policy/a...
Author: jmarino
Date: Sun May 21 23:45:12 2006
New Revision: 408583
URL: http://svn.apache.org/viewvc?rev=408583&view=rev
Log:
async cleanup; extension and policy work
Added:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/policy/PolicyBuilderRegistryImpl.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java
Modified:
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentBuilder.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/policy/async/AsyncInterceptor.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/policy/async/AsyncPolicyBuilder.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/services/workmanager/DefaultWorkManagerTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/services/workmanager/GeronimoWorkManagerTestCase.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentBuilder.java?rev=408583&r1=408582&r2=408583&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentBuilder.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/builder/JavaComponentBuilder.java Sun May 21 23:45:12 2006
@@ -4,7 +4,6 @@
import java.util.ArrayList;
import java.util.List;
-import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.container.java.context.JavaAtomicContext;
import org.apache.tuscany.container.java.model.JavaImplementation;
import org.apache.tuscany.core.injection.ContextInjector;
@@ -15,6 +14,7 @@
import org.apache.tuscany.model.Component;
import org.apache.tuscany.model.JavaServiceContract;
import org.apache.tuscany.model.Service;
+import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.builder.BuilderConfigException;
import org.apache.tuscany.spi.context.CompositeContext;
import org.apache.tuscany.spi.extension.ComponentBuilderExtension;
@@ -65,4 +65,7 @@
}
+ protected Class<JavaImplementation> getImplementationType() {
+ return JavaImplementation.class;
+ }
}
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/policy/PolicyBuilderRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/policy/PolicyBuilderRegistryImpl.java?rev=408583&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/policy/PolicyBuilderRegistryImpl.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/policy/PolicyBuilderRegistryImpl.java Sun May 21 23:45:12 2006
@@ -0,0 +1,59 @@
+package org.apache.tuscany.core.policy;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.tuscany.model.Reference;
+import org.apache.tuscany.model.Service;
+import org.apache.tuscany.spi.builder.BuilderException;
+import org.apache.tuscany.spi.policy.PolicyBuilderRegistry;
+import org.apache.tuscany.spi.policy.SourcePolicyBuilder;
+import org.apache.tuscany.spi.policy.TargetPolicyBuilder;
+import org.apache.tuscany.spi.wire.SourceWire;
+import org.apache.tuscany.spi.wire.TargetWire;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class PolicyBuilderRegistryImpl implements PolicyBuilderRegistry {
+
+ private final List<List<SourcePolicyBuilder>> sourceBuilders;
+ private final List<List<TargetPolicyBuilder>> targetBuilders;
+
+ public PolicyBuilderRegistryImpl() {
+ sourceBuilders = new ArrayList<List<SourcePolicyBuilder>>();
+ targetBuilders = new ArrayList<List<TargetPolicyBuilder>>();
+ for (int i = 0; i <= FINAL; i++) {
+ sourceBuilders.add(new ArrayList<SourcePolicyBuilder>());
+ targetBuilders.add(new ArrayList<TargetPolicyBuilder>());
+ }
+ }
+
+ public void registerTargetBuilder(int phase, TargetPolicyBuilder builder) {
+ assert(phase >= FINAL): "Illegal phase";
+ targetBuilders.get(phase).add(builder);
+ }
+
+ public void registerSourceBuilder(int phase, SourcePolicyBuilder builder) {
+ assert(phase >= FINAL): "Illegal phase";
+ sourceBuilders.get(phase).add(builder);
+ }
+
+
+ public void buildSource(Reference reference, SourceWire wire) throws BuilderException {
+ for (List<SourcePolicyBuilder> builders : sourceBuilders) {
+ for (SourcePolicyBuilder builder : builders) {
+ builder.build(reference,wire);
+ }
+ }
+ }
+
+ public void buildTarget(Service service, TargetWire wire) throws BuilderException {
+ for (List<TargetPolicyBuilder> builders : targetBuilders) {
+ for (TargetPolicyBuilder builder : builders) {
+ builder.build(service,wire);
+ }
+ }
+ }
+
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/policy/async/AsyncInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/policy/async/AsyncInterceptor.java?rev=408583&r1=408582&r2=408583&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/policy/async/AsyncInterceptor.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/policy/async/AsyncInterceptor.java Sun May 21 23:45:12 2006
@@ -14,8 +14,9 @@
import org.osoa.sca.ServiceRuntimeException;
/**
- * A wire interceptor that uses a WorkManager to schedule asynchronous execution of invocations in Work
- * instances.
+ * Uses a WorkManager to schedule asynchronous execution of invocations
+ *
+ * @version $$Rev$$ $$Date$$
*/
public class AsyncInterceptor implements Interceptor {
@@ -76,6 +77,9 @@
}
}
+ /**
+ * A dummy message passed back on an invocation
+ */
private static class ImmutableMessage implements Message {
public Object getBody() {
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/policy/async/AsyncPolicyBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/policy/async/AsyncPolicyBuilder.java?rev=408583&r1=408582&r2=408583&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/policy/async/AsyncPolicyBuilder.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/policy/async/AsyncPolicyBuilder.java Sun May 21 23:45:12 2006
@@ -2,14 +2,15 @@
import javax.resource.spi.work.WorkManager;
+import org.apache.tuscany.core.monitor.NullMonitorFactory;
import org.apache.tuscany.model.Service;
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.policy.PolicyBuilderRegistry;
+import static org.apache.tuscany.spi.policy.PolicyBuilderRegistry.INITIAL;
import org.apache.tuscany.spi.policy.TargetPolicyBuilder;
import org.apache.tuscany.spi.wire.TargetInvocationChain;
import org.apache.tuscany.spi.wire.TargetWire;
-import org.apache.tuscany.core.monitor.NullMonitorFactory;
import org.osoa.sca.annotations.Init;
import org.osoa.sca.annotations.OneWay;
@@ -28,8 +29,8 @@
@Init(eager = true)
public void init() {
- builderRegistry.registerTargetBuilder(this);
- if(monitor == null){
+ builderRegistry.registerTargetBuilder(INITIAL, this);
+ if (monitor == null) {
monitor = new NullMonitorFactory().getMonitor(AsyncMonitor.class);
}
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/services/workmanager/DefaultWorkManagerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/services/workmanager/DefaultWorkManagerTestCase.java?rev=408583&r1=408582&r2=408583&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/services/workmanager/DefaultWorkManagerTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/services/workmanager/DefaultWorkManagerTestCase.java Sun May 21 23:45:12 2006
@@ -9,7 +9,7 @@
import junit.framework.TestCase;
/**
- * Test the PooledWorkManager.
+ * @version $$Rev$$ $$Date$$
*/
public class DefaultWorkManagerTestCase extends TestCase {
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/services/workmanager/GeronimoWorkManagerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/services/workmanager/GeronimoWorkManagerTestCase.java?rev=408583&r1=408582&r2=408583&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/services/workmanager/GeronimoWorkManagerTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/services/workmanager/GeronimoWorkManagerTestCase.java Sun May 21 23:45:12 2006
@@ -9,7 +9,7 @@
import org.apache.geronimo.transaction.context.TransactionContextManager;
/**
- * Tests the Geronimo work manager
+ * Tests integration of the Geronimo work manager
*
* @version $Rev$ $Date$
*/
Added: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java?rev=408583&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java Sun May 21 23:45:12 2006
@@ -0,0 +1,47 @@
+package org.apache.tuscany.spi.extension;
+
+import org.apache.tuscany.model.Binding;
+import org.apache.tuscany.model.BoundReference;
+import org.apache.tuscany.model.BoundService;
+import org.apache.tuscany.spi.annotation.Autowire;
+import org.apache.tuscany.spi.builder.BindingBuilder;
+import org.apache.tuscany.spi.builder.BuilderRegistry;
+import org.apache.tuscany.spi.context.CompositeContext;
+import org.apache.tuscany.spi.context.Context;
+import org.apache.tuscany.spi.policy.PolicyBuilderRegistry;
+import org.osoa.sca.annotations.Init;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+@org.osoa.sca.annotations.Scope("MODULE")
+public abstract class BindingBuilderExtension<B extends Binding> implements BindingBuilder<B> {
+
+ protected BuilderRegistry builderRegistry;
+ protected PolicyBuilderRegistry policyBuilderRegistry;
+
+ @Autowire
+ public void setBuilderRegistry(BuilderRegistry registry) {
+ this.builderRegistry = registry;
+ }
+
+ @Autowire
+ public void setPolicyBuilderRegistry(PolicyBuilderRegistry registry) {
+ this.policyBuilderRegistry = registry;
+ }
+
+ @Init(eager = true)
+ public void init() {
+ builderRegistry.register(getBindingType(), this);
+ }
+
+ public Context build(CompositeContext parent, BoundService<B> boundService) {
+ return null;
+ }
+
+ public Context build(CompositeContext parent, BoundReference<B> boundReference) {
+ return null;
+ }
+
+ protected abstract Class<B> getBindingType();
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java?rev=408583&r1=408582&r2=408583&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java Sun May 21 23:45:12 2006
@@ -4,6 +4,7 @@
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.builder.BuilderRegistry;
import org.apache.tuscany.spi.builder.ComponentBuilder;
+import org.apache.tuscany.spi.policy.PolicyBuilderRegistry;
import org.osoa.sca.annotations.Init;
/**
@@ -13,15 +14,22 @@
public abstract class ComponentBuilderExtension<I extends Implementation<?>> implements ComponentBuilder<I> {
protected BuilderRegistry builderRegistry;
+ protected PolicyBuilderRegistry policyBuilderRegistry;
@Autowire
public void setBuilderRegistry(BuilderRegistry registry) {
this.builderRegistry = registry;
}
+ @Autowire
+ public void setPolicyBuilderRegistry(PolicyBuilderRegistry registry) {
+ this.policyBuilderRegistry = registry;
+ }
+
@Init(eager = true)
public void init() {
- builderRegistry.register(this);
+ builderRegistry.register(getImplementationType(),this);
}
+ protected abstract Class<I> getImplementationType();
}
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java?rev=408583&r1=408582&r2=408583&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/policy/PolicyBuilderRegistry.java Sun May 21 23:45:12 2006
@@ -1,7 +1,5 @@
package org.apache.tuscany.spi.policy;
-import java.util.List;
-
import org.apache.tuscany.model.Reference;
import org.apache.tuscany.model.Service;
import org.apache.tuscany.spi.builder.BuilderException;
@@ -18,43 +16,23 @@
*/
public interface PolicyBuilderRegistry {
- /**
- * Registers a target-side policy builder. Called by extensions to register their builders.
- *
- * @param builder the builder to register
- */
- public void registerTargetBuilder(TargetPolicyBuilder builder);
+ public static final int INITIAL = 0;
+ public static final int EXTENSION = 1;
+ public static final int FINAL = 2;
/**
- * De-registers a target-side builder. Called by extensions to register their builders.
- *
+ * Registers a target-side policy builder. Called by extensions to register their builders.
+ * @param phase the phase hwne the builder must be run
* @param builder the builder to register
*/
- public void unregisterTargetBuilder(TargetPolicyBuilder builder);
+ public void registerTargetBuilder(int phase, TargetPolicyBuilder builder);
/**
* Registers a source-side policy builder. Called by extensions to register their builders.
- *
- * @param builder the builder to register
- */
- public void registerSourceBuilder(SourcePolicyBuilder builder);
-
- /**
- * De-registers a source-side builder. Called by extensions to register their builders.
- *
+ * @param phase the phase hwne the builder must be run
* @param builder the builder to register
*/
- public void unregisterSourceBuilder(SourcePolicyBuilder builder);
-
- /**
- * Returns the list of registered target-side builders
- */
- public List<TargetPolicyBuilder> getTargetBuilders();
-
- /**
- * Returns the list of registered source-side builders
- */
- public List<SourcePolicyBuilder> getSourceBuilders();
+ public void registerSourceBuilder(int phase, SourcePolicyBuilder builder);
/**
* Evaluates source-side policy metadata for reference and updates the curresponding collection of wire
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org