summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/assembly
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-10-16 05:42:26 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-10-16 05:42:26 +0000
commit4ae4002366ded3f4b19cd96f403d8b418fcf00a1 (patch)
tree9179891f11c9add734a777713cabf7e39a980908 /java/sca/modules/assembly
parentd4cc9a0bdd43477858b8ac67b69a4cdd615ec741 (diff)
This is to change the Monitor to be request scoped for most of the cases:
Refactor the ArtifactProcessor/ModelResolver to take a ProcessorContext that holds context such as Monitor, Contribution for the contribution/artifact processing methods Refactor the Builder to take a BuilderContext that holds context such as Monitor, Definitions, Base binding mapping for the building methods Change the processor/resolver/builder implementation classes to not cache the Monitor git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@825773 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/assembly')
-rw-r--r--java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BindingBuilder.java4
-rw-r--r--java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BuilderContext.java95
-rw-r--r--java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilder.java7
-rw-r--r--java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultBuilderExtensionPoint.java37
-rw-r--r--java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DeployedCompositeBuilder.java58
-rw-r--r--java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/ImplementationBuilder.java4
-rw-r--r--java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/PolicyBuilder.java11
7 files changed, 117 insertions, 99 deletions
diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BindingBuilder.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BindingBuilder.java
index 4b875d9b34..5f10af6510 100644
--- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BindingBuilder.java
+++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BindingBuilder.java
@@ -24,7 +24,6 @@ import javax.xml.namespace.QName;
import org.apache.tuscany.sca.assembly.Binding;
import org.apache.tuscany.sca.assembly.Component;
import org.apache.tuscany.sca.assembly.Contract;
-import org.apache.tuscany.sca.monitor.Monitor;
/**
* A builder that handles any build-time configuration needed by bindings.
@@ -38,8 +37,9 @@ public interface BindingBuilder<B extends Binding> {
*
* @param component The component for the binding's service or reference
* @param contract The binding's service or reference
+ * @param context TODO
*/
- void build(Component component, Contract contract, B binding, Monitor monitor);
+ void build(Component component, Contract contract, B binding, BuilderContext context);
/**
* Get QName of the binding type
diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BuilderContext.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BuilderContext.java
new file mode 100644
index 0000000000..8a16fac9e4
--- /dev/null
+++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/BuilderContext.java
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.tuscany.sca.assembly.builder;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
+import org.apache.tuscany.sca.definitions.Definitions;
+import org.apache.tuscany.sca.monitor.DefaultMonitorFactory;
+import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.monitor.MonitorFactory;
+
+/**
+ *
+ */
+public class BuilderContext {
+ protected Definitions definitions;
+ protected Map<QName, List<String>> bindingBaseURIs = Collections.emptyMap();
+ protected Monitor monitor;
+
+ /**
+ * @param definitions
+ * @param bindingBaseURIs
+ * @param monitor
+ */
+ public BuilderContext(Definitions definitions, Map<QName, List<String>> bindingBaseURIs, Monitor monitor) {
+ super();
+ this.definitions = definitions;
+ if (bindingBaseURIs != null) {
+ this.bindingBaseURIs = bindingBaseURIs;
+ }
+ this.monitor = monitor;
+ }
+
+ public BuilderContext(Monitor monitor) {
+ super();
+ this.monitor = monitor;
+ }
+
+ public BuilderContext(ExtensionPointRegistry registry) {
+ super();
+ MonitorFactory monitorFactory =
+ registry.getExtensionPoint(UtilityExtensionPoint.class).getUtility(MonitorFactory.class);
+ this.monitor = monitorFactory.createMonitor();
+ }
+
+ public BuilderContext() {
+ super();
+ this.monitor = new DefaultMonitorFactory().createMonitor();
+ }
+
+ public Monitor getMonitor() {
+ return monitor;
+ }
+
+ public Monitor setMonitor(Monitor monitor) {
+ Monitor old = this.monitor;
+ this.monitor = monitor;
+ return old;
+ }
+
+ public Definitions getDefinitions() {
+ return definitions;
+ }
+
+ public Map<QName, List<String>> getBindingBaseURIs() {
+ return bindingBaseURIs;
+ }
+
+ public void setDefinitions(Definitions definitions) {
+ this.definitions = definitions;
+ }
+}
diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilder.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilder.java
index e6aaa2d4bb..50bf10f54a 100644
--- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilder.java
+++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilder.java
@@ -20,8 +20,6 @@
package org.apache.tuscany.sca.assembly.builder;
import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.definitions.Definitions;
-import org.apache.tuscany.sca.monitor.Monitor;
/**
* A builder that handles the configuration of the components inside a
@@ -42,13 +40,12 @@ public interface CompositeBuilder {
* Build a composite.
*
* @param composite The composite
- * @param definitions SCA definitions
- * @param monitor
+ * @param context The builder context
* @return The composite built from the original one. In most cases, it is the same as the orginal one as
* most builders only change the content of the composite.
*
* @throws CompositeBuilderException
*/
- Composite build(Composite composite, Definitions definitions, Monitor monitor) throws CompositeBuilderException;
+ Composite build(Composite composite, BuilderContext context) throws CompositeBuilderException;
}
diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultBuilderExtensionPoint.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultBuilderExtensionPoint.java
index d414913a12..6d85405861 100644
--- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultBuilderExtensionPoint.java
+++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultBuilderExtensionPoint.java
@@ -22,11 +22,9 @@ package org.apache.tuscany.sca.assembly.builder;
import java.lang.reflect.Constructor;
import java.util.Collection;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import javax.xml.namespace.QName;
-import javax.xml.ws.EndpointReference;
import org.apache.tuscany.sca.assembly.Binding;
import org.apache.tuscany.sca.assembly.Component;
@@ -38,12 +36,10 @@ import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.FactoryExtensionPoint;
import org.apache.tuscany.sca.core.LifeCycleListener;
import org.apache.tuscany.sca.core.UtilityExtensionPoint;
-import org.apache.tuscany.sca.definitions.Definitions;
import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
import org.apache.tuscany.sca.extensibility.ServiceDeclarationParser;
import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
-import org.apache.tuscany.sca.monitor.Monitor;
/**
* Default implementation of a provider factory extension point.
@@ -198,7 +194,7 @@ public class DefaultBuilderExtensionPoint implements BuilderExtensionPoint, Life
* A wrapper around a composite builder allowing lazy
* loading and initialization of implementation providers.
*/
- private class LazyCompositeBuilder implements CompositeBuilder, DeployedCompositeBuilder {
+ private class LazyCompositeBuilder implements CompositeBuilder {
private FactoryExtensionPoint factories;
private InterfaceContractMapper mapper;
@@ -223,16 +219,9 @@ public class DefaultBuilderExtensionPoint implements BuilderExtensionPoint, Life
return id;
}
- public Composite build(Composite composite, Definitions definitions, Monitor monitor)
+ public Composite build(Composite composite, BuilderContext context)
throws CompositeBuilderException {
- return getBuilder().build(composite, definitions, monitor);
- }
-
- public Composite build(Composite composite,
- Definitions definitions,
- Map<QName, List<String>> bindingBaseURIs,
- Monitor monitor) throws CompositeBuilderException {
- return ((DeployedCompositeBuilder)getBuilder()).build(composite, definitions, bindingBaseURIs, monitor);
+ return getBuilder().build(composite, context);
}
private CompositeBuilder getBuilder() {
@@ -279,8 +268,8 @@ public class DefaultBuilderExtensionPoint implements BuilderExtensionPoint, Life
this.qname = ServiceDeclarationParser.getQName(sd.getAttributes().get("qname"));
}
- public void build(Component component, Contract contract, Binding binding, Monitor monitor) {
- getBuilder().build(component, contract, binding, monitor);
+ public void build(Component component, Contract contract, Binding binding, BuilderContext context) {
+ getBuilder().build(component, contract, binding, context);
}
public QName getBindingType() {
@@ -323,8 +312,8 @@ public class DefaultBuilderExtensionPoint implements BuilderExtensionPoint, Life
this.qname = ServiceDeclarationParser.getQName(sd.getAttributes().get("qname"));
}
- public void build(Component component, Implementation implementation, Monitor monitor) {
- getBuilder().build(component, implementation, monitor);
+ public void build(Component component, Implementation implementation, BuilderContext context) {
+ getBuilder().build(component, implementation, context);
}
public QName getImplementationType() {
@@ -366,8 +355,8 @@ public class DefaultBuilderExtensionPoint implements BuilderExtensionPoint, Life
this.qname = ServiceDeclarationParser.getQName(sd.getAttributes().get("qname"));
}
- public void build(Component component, Implementation implementation, Definitions definitions, Monitor monitor) {
- getBuilder().build(component, implementation, definitions, monitor);
+ public void build(Component component, Implementation implementation, BuilderContext context) {
+ getBuilder().build(component, implementation, context);
}
public QName getPolicyType() {
@@ -393,12 +382,12 @@ public class DefaultBuilderExtensionPoint implements BuilderExtensionPoint, Life
return builder;
}
- public void build(Endpoint endpoint, Definitions definitions, Monitor monitor) {
- getBuilder().build(endpoint, definitions, monitor);
+ public void build(Endpoint endpoint, BuilderContext context) {
+ getBuilder().build(endpoint, context);
}
- public void build(org.apache.tuscany.sca.assembly.EndpointReference endpointReference, Definitions definitions, Monitor monitor) {
- getBuilder().build(endpointReference, definitions, monitor);
+ public void build(org.apache.tuscany.sca.assembly.EndpointReference endpointReference, BuilderContext context) {
+ getBuilder().build(endpointReference, context);
}
}
diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DeployedCompositeBuilder.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DeployedCompositeBuilder.java
deleted file mode 100644
index 75c7b676e8..0000000000
--- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DeployedCompositeBuilder.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.tuscany.sca.assembly.builder;
-
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.definitions.Definitions;
-import org.apache.tuscany.sca.monitor.Monitor;
-
-/**
- * A builder that handles the configuration of the components inside a
- * composite and the wiring of component references to component services.
- *
- * @version $Rev$ $Date$
- */
-public interface DeployedCompositeBuilder {
-
- /**
- * Returns the ID of the builder.
- *
- * @return
- */
- String getID();
-
- /**
- * Build a composite.
- *
- * @param composite
- * @param definitions
- * @param monitor
- * @return
- * @throws CompositeBuilderException
- */
- Composite build(Composite composite, Definitions definitions, Map<QName, List<String>> bindingBaseURIs, Monitor monitor)
- throws CompositeBuilderException;
-
-}
diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/ImplementationBuilder.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/ImplementationBuilder.java
index 6790d0188b..b1e22e195d 100644
--- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/ImplementationBuilder.java
+++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/ImplementationBuilder.java
@@ -23,7 +23,6 @@ import javax.xml.namespace.QName;
import org.apache.tuscany.sca.assembly.Component;
import org.apache.tuscany.sca.assembly.Implementation;
-import org.apache.tuscany.sca.monitor.Monitor;
/**
* A builder that handles any build-time configuration needed by implementations.
@@ -36,9 +35,10 @@ public interface ImplementationBuilder<I extends Implementation> {
* Configure a component implementation.
*
* @param component The component
+ * @param context TODO
* @param contract The implementation
*/
- void build(Component component, I implmentation, Monitor monitor);
+ void build(Component component, I implmentation, BuilderContext context);
/**
* Get the QName of the implementation type
diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/PolicyBuilder.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/PolicyBuilder.java
index b22bef8951..2df42c2c23 100644
--- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/PolicyBuilder.java
+++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/PolicyBuilder.java
@@ -25,8 +25,6 @@ import org.apache.tuscany.sca.assembly.Component;
import org.apache.tuscany.sca.assembly.Endpoint;
import org.apache.tuscany.sca.assembly.EndpointReference;
import org.apache.tuscany.sca.assembly.Implementation;
-import org.apache.tuscany.sca.definitions.Definitions;
-import org.apache.tuscany.sca.monitor.Monitor;
/**
* A builder that is contributed by a specific policy languange to validate the configurations
@@ -38,25 +36,22 @@ public interface PolicyBuilder<T> {
/**
* Build (and validate) the policy settings on the endpoint
* @param endpoint
- * @param definitions
* @param monitor
*/
- void build(Endpoint endpoint, Definitions definitions, Monitor monitor);
+ void build(Endpoint endpoint, BuilderContext context);
/**
* Build (and validate) the policy settings on the endpoint reference
* @param endpointReference
- * @param definitions
* @param monitor
*/
- void build(EndpointReference endpointReference, Definitions definitions, Monitor monitor);
+ void build(EndpointReference endpointReference, BuilderContext context);
/**
* Build (and validate) the policy settings on the component implementation
* @param component
* @param implementation
- * @param definitions
* @param monitor
*/
- void build(Component component, Implementation implementation, Definitions definitions, Monitor monitor);
+ void build(Component component, Implementation implementation, BuilderContext context);
}