diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-10-16 05:42:26 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-10-16 05:42:26 +0000 |
commit | 4ae4002366ded3f4b19cd96f403d8b418fcf00a1 (patch) | |
tree | 9179891f11c9add734a777713cabf7e39a980908 /java/sca/modules/assembly | |
parent | d4cc9a0bdd43477858b8ac67b69a4cdd615ec741 (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')
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); } |