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