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 2007/03/18 23:19:22 UTC
svn commit: r519710 - in /incubator/tuscany/java/sca/kernel:
core/src/main/java/org/apache/tuscany/core/generator/
core/src/main/java/org/apache/tuscany/core/implementation/java/
core/src/main/java/org/apache/tuscany/core/model/ core/src/main/java/org/...
Author: jmarino
Date: Sun Mar 18 15:19:16 2007
New Revision: 519710
URL: http://svn.apache.org/viewvc?view=rev&rev=519710
Log:
refactor InterceptorGenerator signature and dispatch; add non-blocking intent data for interceptor generation; start to hack together the AssemblyService
Added:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/model/NonBlockingIntentDefinition.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/DocumentParseException.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptorGenerator.java (with props)
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentDefinition.java (with props)
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/GeneratorRegistryImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentGenerator.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/AssemblyServiceImpl.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplCreateWireTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/interceptor/InterceptorBuilderRegistryImplTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/NonBlockingInterceptorBuilderTestCase.java
incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/DeploymentException.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/ComponentGenerator.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorRegistry.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/InterceptorGenerator.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalInterceptorDefinition.java
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/GeneratorRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/GeneratorRegistryImpl.java?view=diff&rev=519710&r1=519709&r2=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/GeneratorRegistryImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/generator/GeneratorRegistryImpl.java Sun Mar 18 15:19:16 2007
@@ -35,37 +35,46 @@
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.DataType;
import org.apache.tuscany.spi.model.Implementation;
+import org.apache.tuscany.spi.model.IntentDefinition;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.ReferenceDefinition;
import org.apache.tuscany.spi.model.ResourceDefinition;
import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.model.ServiceDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalInterceptorDefinition;
import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
import org.apache.tuscany.spi.model.physical.PhysicalWireDefinition;
import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
+import org.apache.tuscany.core.model.NonBlockingIntentDefinition;
+
/**
* @version $Rev$ $Date$
*/
public class GeneratorRegistryImpl implements GeneratorRegistry {
private Map<Class<?>,
- ComponentGenerator<? extends ComponentDefinition<? extends Implementation>>> componentGenerators =
- new ConcurrentHashMap<Class<?>, ComponentGenerator<? extends ComponentDefinition<? extends Implementation>>>();
-
- private Map<Class<?>, BindingGenerator> bindingGenerators = new ConcurrentHashMap<Class<?>, BindingGenerator>();
+ ComponentGenerator<? extends ComponentDefinition<? extends Implementation>>> componentGenerators;
+ private Map<Class<?>, BindingGenerator> bindingGenerators;
+ private Map<Class<?>, InterceptorGenerator<? extends IntentDefinition>> interceptorGenerators;
+ private Map<Class<?>, ResourceGenerator> resourceGenerators;
- private Map<Class<?>, InterceptorGenerator> interceptorGenerators =
- new ConcurrentHashMap<Class<?>, InterceptorGenerator>();
- private Map<Class<?>, ResourceGenerator> resourceGenerators = new ConcurrentHashMap<Class<?>, ResourceGenerator>();
+ public GeneratorRegistryImpl() {
+ componentGenerators =
+ new ConcurrentHashMap<Class<?>,
+ ComponentGenerator<? extends ComponentDefinition<? extends Implementation>>>();
+ bindingGenerators = new ConcurrentHashMap<Class<?>, BindingGenerator>();
+ resourceGenerators = new ConcurrentHashMap<Class<?>, ResourceGenerator>();
+ interceptorGenerators = new ConcurrentHashMap<Class<?>, InterceptorGenerator<? extends IntentDefinition>>();
+ }
public void register(Class<?> clazz, BindingGenerator generator) {
bindingGenerators.put(clazz, generator);
}
- public void register(Class<?> clazz, InterceptorGenerator generator) {
+ public <T extends IntentDefinition> void register(Class<T> clazz, InterceptorGenerator<T> generator) {
interceptorGenerators.put(clazz, generator);
}
@@ -73,8 +82,8 @@
resourceGenerators.put(clazz, generator);
}
- public void register(Class<?> clazz,
- ComponentGenerator<? extends ComponentDefinition<? extends Implementation>> generator) {
+ public <T extends ComponentDefinition<? extends Implementation>> void register(Class<T> clazz,
+ ComponentGenerator<T> generator) {
componentGenerators.put(clazz, generator);
}
@@ -94,17 +103,18 @@
public <C extends ComponentDefinition<? extends Implementation>>
void generateWire(ServiceContract<?> contract,
BindingDefinition bindingDefinition,
+ ServiceDefinition serviceDefinition,
C componentDefinition,
GeneratorContext context) throws GenerationException {
- PhysicalWireDefinition wireDefinition = createDefinition(contract);
+ PhysicalWireDefinition wireDefinition = createDefinition(contract, context);
Class<?> type = componentDefinition.getClass();
ComponentGenerator<C> targetGenerator = (ComponentGenerator<C>) componentGenerators.get(type);
if (targetGenerator == null) {
throw new GeneratorNotFoundException(type);
}
PhysicalWireTargetDefinition targetDefinition =
- targetGenerator.generateWireTarget(componentDefinition, context);
+ targetGenerator.generateWireTarget(componentDefinition, serviceDefinition, context);
wireDefinition.setTarget(targetDefinition);
type = bindingDefinition.getClass();
BindingGenerator sourceGenerator = bindingGenerators.get(type);
@@ -125,7 +135,7 @@
GeneratorContext context) throws GenerationException {
ServiceContract<?> contract = referenceDefinition.getServiceContract();
- PhysicalWireDefinition wireDefinition = createDefinition(contract);
+ PhysicalWireDefinition wireDefinition = createDefinition(contract, context);
Class<?> type = bindingDefinition.getClass();
BindingGenerator targetGenerator = bindingGenerators.get(type);
if (targetGenerator == null) {
@@ -140,7 +150,7 @@
throw new GeneratorNotFoundException(type);
}
PhysicalWireSourceDefinition sourceDefinition =
- sourceGenerator.generateWireSource(componentDefinition, context);
+ sourceGenerator.generateWireSource(componentDefinition, referenceDefinition, context);
wireDefinition.setSource(sourceDefinition);
context.getPhysicalChangeSet().addWireDefinition(wireDefinition);
@@ -150,20 +160,19 @@
public <S extends ComponentDefinition<? extends Implementation>,
T extends ComponentDefinition<? extends Implementation>>
void generateWire(S source,
- ReferenceDefinition reference,
- ServiceDefinition service,
- ComponentDefinition target,
+ ReferenceDefinition referenceDefinition,
+ ServiceDefinition serviceDefinition,
+ T target,
GeneratorContext context) throws GenerationException {
- ServiceContract<?> contract = reference.getServiceContract();
- PhysicalWireDefinition wireDefinition = createDefinition(contract);
-
+ ServiceContract<?> contract = referenceDefinition.getServiceContract();
+ PhysicalWireDefinition wireDefinition = createDefinition(contract, context);
Class<?> type = target.getClass();
ComponentGenerator<S> targetGenerator = (ComponentGenerator<S>) componentGenerators.get(type);
if (targetGenerator == null) {
throw new GeneratorNotFoundException(type);
}
PhysicalWireTargetDefinition targetDefinition =
- targetGenerator.generateWireTarget(source, context);
+ targetGenerator.generateWireTarget(source, serviceDefinition, context);
wireDefinition.setTarget(targetDefinition);
type = source.getClass();
@@ -172,7 +181,7 @@
throw new GeneratorNotFoundException(type);
}
PhysicalWireSourceDefinition sourceDefinition =
- targetGenerator.generateWireSource(source, context);
+ targetGenerator.generateWireSource(source, referenceDefinition, context);
wireDefinition.setSource(sourceDefinition);
context.getPhysicalChangeSet().addWireDefinition(wireDefinition);
}
@@ -214,19 +223,41 @@
}
- private PhysicalWireDefinition createDefinition(ServiceContract<?> contract) {
+
+ @SuppressWarnings({"unchecked"})
+ private PhysicalWireDefinition createDefinition(ServiceContract<?> contract, GeneratorContext context)
+ throws GenerationException {
PhysicalWireDefinition wireDefinition = new PhysicalWireDefinition();
for (Operation o : contract.getOperations().values()) {
PhysicalOperationDefinition physicalOperation = mapOperation(o);
wireDefinition.addOperation(physicalOperation);
+ // this is egregious
+ // hardcode intent until we get the intent infrastructure in place
+ IntentDefinition intent = new NonBlockingIntentDefinition();
+ Class<? extends IntentDefinition> type = NonBlockingIntentDefinition.class;
+ InterceptorGenerator generator = interceptorGenerators.get(type);
+ if (generator == null) {
+ throw new GeneratorNotFoundException(type);
+ }
+ PhysicalInterceptorDefinition interceptorDefinition = generator.generate(intent, context);
+ physicalOperation.addInterceptor(interceptorDefinition);
}
for (Operation o : contract.getCallbackOperations().values()) {
PhysicalOperationDefinition physicalOperation = mapOperation(o);
physicalOperation.setCallback(true);
wireDefinition.addOperation(physicalOperation);
+ // this is egregious
+ // hardcode intent until we get the intent infrastructure in place
+ IntentDefinition intent = new NonBlockingIntentDefinition();
+ Class<? extends IntentDefinition> type = NonBlockingIntentDefinition.class;
+ InterceptorGenerator generator = interceptorGenerators.get(type);
+ if (generator == null) {
+ throw new GeneratorNotFoundException(type);
+ }
+ PhysicalInterceptorDefinition interceptorDefinition = generator.generate(intent, context);
+ physicalOperation.addInterceptor(interceptorDefinition);
}
return wireDefinition;
}
-
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentGenerator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentGenerator.java?view=diff&rev=519710&r1=519709&r2=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentGenerator.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentGenerator.java Sun Mar 18 15:19:16 2007
@@ -32,6 +32,8 @@
import org.apache.tuscany.spi.implementation.java.PojoComponentType;
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.Property;
+import org.apache.tuscany.spi.model.ServiceDefinition;
+import org.apache.tuscany.spi.model.ReferenceDefinition;
import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
@@ -63,6 +65,7 @@
provider.setInitMethod(type.getInitMethod().toString());
provider.setImplementationClass(implementation.getImplementationClass().getName());
// TODO ctor arguments
+ // TODO set CDI source for ref, props, and callbacks
Map<String, JavaMappedReference> references = type.getReferences();
for (Map.Entry<String, JavaMappedReference> entry : references.entrySet()) {
JavaMappedReference reference = entry.getValue();
@@ -91,12 +94,14 @@
}
public PhysicalWireSourceDefinition generateWireSource(ComponentDefinition<JavaImplementation> definition,
+ ReferenceDefinition serviceDefinition,
GeneratorContext context)
throws GenerationException {
return new JavaPhysicalWireSourceDefinition();
}
public PhysicalWireTargetDefinition generateWireTarget(ComponentDefinition<JavaImplementation> definition,
+ ServiceDefinition serviceDefinition,
GeneratorContext context)
throws GenerationException {
return new JavaPhysicalWireTargetDefinition();
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/model/NonBlockingIntentDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/model/NonBlockingIntentDefinition.java?view=auto&rev=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/model/NonBlockingIntentDefinition.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/model/NonBlockingIntentDefinition.java Sun Mar 18 15:19:16 2007
@@ -0,0 +1,29 @@
+/*
+ * 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.core.model;
+
+import org.apache.tuscany.spi.model.IntentDefinition;
+
+/**
+ * Represents a non-blocking intent
+ *
+ * @version $Rev$ $Date$
+ */
+public class NonBlockingIntentDefinition extends IntentDefinition {
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/model/NonBlockingIntentDefinition.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/model/NonBlockingIntentDefinition.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/AssemblyServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/AssemblyServiceImpl.java?view=diff&rev=519710&r1=519709&r2=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/AssemblyServiceImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/AssemblyServiceImpl.java Sun Mar 18 15:19:16 2007
@@ -24,6 +24,7 @@
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
@@ -33,15 +34,24 @@
import org.apache.tuscany.spi.deployer.ChangeSetHandler;
import org.apache.tuscany.spi.deployer.ChangeSetHandlerRegistry;
+import org.apache.tuscany.spi.generator.GenerationException;
+import org.apache.tuscany.spi.generator.GeneratorContext;
import org.apache.tuscany.spi.generator.GeneratorRegistry;
import org.apache.tuscany.spi.loader.LoaderRegistry;
+import org.apache.tuscany.spi.model.BindingDefinition;
import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.model.ComponentType;
import org.apache.tuscany.spi.model.CompositeComponentType;
import org.apache.tuscany.spi.model.CompositeImplementation;
+import org.apache.tuscany.spi.model.Implementation;
+import org.apache.tuscany.spi.model.ModelObject;
import org.apache.tuscany.spi.model.Property;
import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.ReferenceTarget;
import org.apache.tuscany.spi.model.ServiceDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalChangeSet;
+import org.apache.tuscany.core.generator.DefaultGeneratorContext;
import org.apache.tuscany.core.resolver.AutowireResolver;
import org.apache.tuscany.host.deployment.AssemblyService;
import org.apache.tuscany.host.deployment.DeploymentException;
@@ -113,7 +123,92 @@
registry.put(handler.getContentType(), handler);
}
- public void include(InputStream changeSet) throws DeploymentException {
+ public void include(InputStream stream) throws DeploymentException {
+
+ try {
+ XMLStreamReader reader = xmlFactory.createXMLStreamReader(stream);
+ if (domain == null) {
+ // lazily create the domain
+ domain = createDomain();
+ }
+
+ ComponentDefinition<CompositeImplementation> defintion = null; //loaderRegistry.load()
+ CompositeComponentType<?, ?, ?> type = defintion.getImplementation().getComponentType();
+ Map<URI, GeneratorContext> contexts = new HashMap<URI, GeneratorContext>();
+ // TODO create physical resource definitions
+ // create physical component definitions
+ for (ComponentDefinition<?> child : type.getDeclaredComponents().values()) {
+ generate(child, contexts);
+ }
+ // create physical wire definitions
+ for (ComponentDefinition<?> child : type.getDeclaredComponents().values()) {
+ URI id = child.getRuntimeId();
+ GeneratorContext context = contexts.get(id);
+ if (context == null) {
+ PhysicalChangeSet changeSet = new PhysicalChangeSet();
+ context = new DefaultGeneratorContext(changeSet);
+ contexts.put(id, context);
+ }
+ try {
+ // TODO support composite recursion
+ for (Map.Entry<String, ReferenceTarget> entry : child.getReferenceTargets().entrySet()) {
+ List<URI> targets = entry.getValue().getTargets();
+ for (URI uri : targets) {
+ Implementation implementation = child.getImplementation();
+ ComponentType<?, ?, ?> componentType = implementation.getComponentType();
+ ReferenceDefinition referenceDefinition = componentType.getReferences().get(entry.getKey());
+ // TODO resolve target
+ ModelObject target = resolveTarget(uri);
+ if (target instanceof ReferenceDefinition) {
+ ReferenceDefinition targetReference = (ReferenceDefinition) target;
+ // TODO this should be extensible and moved out
+ BindingDefinition binding = targetReference.getBindings().get(0);
+ generatorRegistry.generateWire(child, referenceDefinition, binding, context);
+
+ } else if (target instanceof ComponentDefinition) {
+ ComponentDefinition<?> targetComponent = (ComponentDefinition) target;
+ String serviceName = uri.getFragment();
+ Implementation<?> targetImplementation = targetComponent.getImplementation();
+ ComponentType<?, ?, ?> targetType = targetImplementation.getComponentType();
+ ServiceDefinition serviceDefinition = targetType.getServices().get(serviceName);
+ assert serviceDefinition != null;
+ generatorRegistry.generateWire(child,
+ referenceDefinition,
+ serviceDefinition,
+ targetComponent, context);
+ } else {
+ throw new AssertionError();
+ }
+
+
+ }
+ }
+ } catch (GenerationException e) {
+ throw new DeploymentException(e);
+ }
+
+ }
+
+ } catch (XMLStreamException e) {
+ throw new DocumentParseException(e);
+ }
+ }
+
+ private void generate(ComponentDefinition<?> component, Map<URI, GeneratorContext> contexts) {
+ URI id = component.getRuntimeId();
+ GeneratorContext context = contexts.get(id);
+ if (context == null) {
+ PhysicalChangeSet changeSet = new PhysicalChangeSet();
+ context = new DefaultGeneratorContext(changeSet);
+ contexts.put(id, context);
+ }
+ try {
+ // TODO support composite recursion
+ generatorRegistry.generate(component, context);
+ } catch (GenerationException e) {
+ // throw new
+ }
+
}
private ComponentDefinition<CompositeImplementation> createDomain() {
@@ -126,4 +221,7 @@
return domain;
}
+ private ModelObject resolveTarget(URI uri) {
+ throw new UnsupportedOperationException();
+ }
}
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/DocumentParseException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/DocumentParseException.java?view=auto&rev=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/DocumentParseException.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/DocumentParseException.java Sun Mar 18 15:19:16 2007
@@ -0,0 +1,31 @@
+/*
+ * 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.core.services.deployment;
+
+import org.apache.tuscany.host.deployment.DeploymentException;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class DocumentParseException extends DeploymentException {
+
+ public DocumentParseException(Throwable cause) {
+ super(cause);
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/DocumentParseException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/DocumentParseException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptorGenerator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptorGenerator.java?view=auto&rev=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptorGenerator.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptorGenerator.java Sun Mar 18 15:19:16 2007
@@ -0,0 +1,49 @@
+/*
+ * 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.core.wire;
+
+import javax.xml.namespace.QName;
+
+import org.osoa.sca.annotations.EagerInit;
+import org.osoa.sca.annotations.Reference;
+
+import org.apache.tuscany.spi.generator.GenerationException;
+import org.apache.tuscany.spi.generator.GeneratorContext;
+import org.apache.tuscany.spi.generator.GeneratorRegistry;
+import org.apache.tuscany.spi.generator.InterceptorGenerator;
+import org.apache.tuscany.spi.model.physical.PhysicalInterceptorDefinition;
+
+import org.apache.tuscany.core.model.NonBlockingIntentDefinition;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@EagerInit
+public class NonBlockingInterceptorGenerator implements InterceptorGenerator<NonBlockingIntentDefinition> {
+ public static final QName QNAME = new QName("http://tuscany.apache.org/xmlns/sca/system/2.0-alpha", "nonblocking");
+
+ public NonBlockingInterceptorGenerator(@Reference GeneratorRegistry registry) {
+ registry.register(NonBlockingIntentDefinition.class, this);
+ }
+
+ public PhysicalInterceptorDefinition generate(NonBlockingIntentDefinition definition,
+ GeneratorContext context) throws GenerationException {
+ return new PhysicalInterceptorDefinition(QNAME);
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptorGenerator.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptorGenerator.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplCreateWireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplCreateWireTestCase.java?view=diff&rev=519710&r1=519709&r2=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplCreateWireTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplCreateWireTestCase.java Sun Mar 18 15:19:16 2007
@@ -39,6 +39,7 @@
* @version $Rev$ $Date$
*/
public class ConnectorImplCreateWireTestCase extends TestCase {
+ private static final QName QNAME = new QName("test");
public void testCreateWire() throws Exception {
TestConnector connector = new TestConnector();
@@ -75,7 +76,7 @@
targetDefinition.setUri(URI.create("target"));
definition.setSource(sourceDefinition);
definition.setTarget(targetDefinition);
- PhysicalInterceptorDefinition interceptorDefinition = new PhysicalInterceptorDefinition();
+ PhysicalInterceptorDefinition interceptorDefinition = new PhysicalInterceptorDefinition(QNAME);
interceptorDefinition.setBuilder(qName);
PhysicalOperationDefinition operation = new PhysicalOperationDefinition();
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/interceptor/InterceptorBuilderRegistryImplTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/interceptor/InterceptorBuilderRegistryImplTestCase.java?view=diff&rev=519710&r1=519709&r2=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/interceptor/InterceptorBuilderRegistryImplTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/interceptor/InterceptorBuilderRegistryImplTestCase.java Sun Mar 18 15:19:16 2007
@@ -32,6 +32,8 @@
*/
public class InterceptorBuilderRegistryImplTestCase extends TestCase {
private static final QName QNAME = new QName("builder");
+ private static final QName INTERCEPTOR_QNAME = new QName("interceptor");
+
private InterceptorBuilderRegistry registry = new InterceptorBuilderRegistryImpl();
public void testDispatch() throws Exception {
@@ -39,7 +41,7 @@
EasyMock.expect(builder.build(EasyMock.isA(PhysicalInterceptorDefinition.class))).andReturn(null);
EasyMock.replay(builder);
registry.register(QNAME, builder);
- PhysicalInterceptorDefinition definition = new PhysicalInterceptorDefinition();
+ PhysicalInterceptorDefinition definition = new PhysicalInterceptorDefinition(INTERCEPTOR_QNAME);
definition.setBuilder(QNAME);
registry.build(definition);
EasyMock.verify(builder);
@@ -50,7 +52,7 @@
EasyMock.replay(builder);
registry.register(QNAME, builder);
registry.unregister(QNAME);
- PhysicalInterceptorDefinition definition = new PhysicalInterceptorDefinition();
+ PhysicalInterceptorDefinition definition = new PhysicalInterceptorDefinition(INTERCEPTOR_QNAME);
definition.setBuilder(QNAME);
try {
registry.build(definition);
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/NonBlockingInterceptorBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/NonBlockingInterceptorBuilderTestCase.java?view=diff&rev=519710&r1=519709&r2=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/NonBlockingInterceptorBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/NonBlockingInterceptorBuilderTestCase.java Sun Mar 18 15:19:16 2007
@@ -18,6 +18,8 @@
*/
package org.apache.tuscany.core.wire;
+import static org.apache.tuscany.core.wire.NonBlockingInterceptorBuilder.QNAME;
+
import org.apache.tuscany.spi.model.physical.PhysicalInterceptorDefinition;
import junit.framework.TestCase;
@@ -29,8 +31,8 @@
public void testBuild() throws Exception {
NonBlockingInterceptorBuilder builder = new NonBlockingInterceptorBuilder(null, null);
- PhysicalInterceptorDefinition definition = new PhysicalInterceptorDefinition();
- definition.setBuilder(NonBlockingInterceptorBuilder.QNAME);
+ PhysicalInterceptorDefinition definition = new PhysicalInterceptorDefinition(QNAME);
+ definition.setBuilder(QNAME);
assertTrue(builder.build(definition) instanceof NonBlockingInterceptor);
}
}
Modified: incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/DeploymentException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/DeploymentException.java?view=diff&rev=519710&r1=519709&r2=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/DeploymentException.java (original)
+++ incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/DeploymentException.java Sun Mar 18 15:19:16 2007
@@ -25,7 +25,7 @@
*
* @version $Rev$ $Date$
*/
-public abstract class DeploymentException extends TuscanyException {
+public class DeploymentException extends TuscanyException {
protected DeploymentException() {
}
@@ -45,7 +45,7 @@
super(message, identifier, cause);
}
- protected DeploymentException(Throwable cause) {
+ public DeploymentException(Throwable cause) {
super(cause);
}
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/ComponentGenerator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/ComponentGenerator.java?view=diff&rev=519710&r1=519709&r2=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/ComponentGenerator.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/ComponentGenerator.java Sun Mar 18 15:19:16 2007
@@ -20,6 +20,8 @@
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.Implementation;
+import org.apache.tuscany.spi.model.ServiceDefinition;
+import org.apache.tuscany.spi.model.ReferenceDefinition;
import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
@@ -30,8 +32,12 @@
void generate(C definition, GeneratorContext context) throws GenerationException;
- PhysicalWireSourceDefinition generateWireSource(C definition, GeneratorContext context) throws GenerationException;
+ PhysicalWireSourceDefinition generateWireSource(C definition,
+ ReferenceDefinition serviceDefinition,
+ GeneratorContext context) throws GenerationException;
- PhysicalWireTargetDefinition generateWireTarget(C definition, GeneratorContext context) throws GenerationException;
+ PhysicalWireTargetDefinition generateWireTarget(C definition,
+ ServiceDefinition serviceDefinition,
+ GeneratorContext context) throws GenerationException;
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorRegistry.java?view=diff&rev=519710&r1=519709&r2=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorRegistry.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorRegistry.java Sun Mar 18 15:19:16 2007
@@ -23,9 +23,11 @@
import org.apache.tuscany.spi.model.BindingDefinition;
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.Implementation;
+import org.apache.tuscany.spi.model.IntentDefinition;
import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.model.ResourceDefinition;
+import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.spi.model.ServiceDefinition;
/**
* A registry for generators
@@ -34,12 +36,12 @@
*/
public interface GeneratorRegistry {
- void register(Class<?> clazz,
- ComponentGenerator<? extends ComponentDefinition<? extends Implementation>> generator);
+ <T extends ComponentDefinition<? extends Implementation>> void register(Class<T> clazz,
+ ComponentGenerator<T> generator);
void register(Class<?> clazz, BindingGenerator generator);
- void register(Class<?> clazz, InterceptorGenerator generator);
+ <T extends IntentDefinition> void register(Class<T> phase, InterceptorGenerator<T> generator);
void register(Class<?> clazz, ResourceGenerator generator);
@@ -61,10 +63,12 @@
* @param bindingDefinition
* @param componentDefinition
* @param context
+ * @param serviceDefinition
* @throws GenerationException
*/
<C extends ComponentDefinition<? extends Implementation>> void generateWire(ServiceContract<?> contract,
BindingDefinition bindingDefinition,
+ ServiceDefinition serviceDefinition,
C componentDefinition,
GeneratorContext context)
throws GenerationException;
@@ -75,6 +79,13 @@
BindingDefinition bindingDefinition,
GeneratorContext context)
throws GenerationException;
+
+ <S extends ComponentDefinition<? extends Implementation>, T extends ComponentDefinition<? extends Implementation>>
+ void generateWire(S sourceDefinition,
+ ReferenceDefinition referenceDefinition,
+ ServiceDefinition serviceDefinition,
+ T targetDefinition,
+ GeneratorContext context) throws GenerationException;
URI generate(ResourceDefinition definition, GeneratorContext context) throws GenerationException;
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/InterceptorGenerator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/InterceptorGenerator.java?view=diff&rev=519710&r1=519709&r2=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/InterceptorGenerator.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/InterceptorGenerator.java Sun Mar 18 15:19:16 2007
@@ -18,15 +18,17 @@
*/
package org.apache.tuscany.spi.generator;
-import org.apache.tuscany.spi.model.physical.PhysicalWireDefinition;
+import org.apache.tuscany.spi.model.IntentDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalInterceptorDefinition;
/**
- * Implementations are responsible for generating a physical interceptor definitions for a wire.
+ * Implementations are responsible for generating physical interceptor definitions for a wire.
*
* @version $Rev$ $Date$
*/
-public interface InterceptorGenerator {
+public interface InterceptorGenerator<T extends IntentDefinition> {
- void generate(PhysicalWireDefinition componentDefinition, GeneratorContext context) throws GenerationException;
+ PhysicalInterceptorDefinition generate(T definition, GeneratorContext context) throws GenerationException;
}
+
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java?view=diff&rev=519710&r1=519709&r2=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java Sun Mar 18 15:19:16 2007
@@ -40,6 +40,7 @@
*/
public class ComponentDefinition<I extends Implementation<?>> extends ModelObject {
private URI uri;
+ private URI runtimeId;
private boolean autowire;
private Integer initLevel;
private final I implementation;
@@ -91,6 +92,24 @@
*/
public void setUri(URI uri) {
this.uri = uri;
+ }
+
+ /**
+ * Returns the id of the node the component is to be provisioned to.
+ *
+ * @return the id of the node the component is to be provisioned to
+ */
+ public URI getRuntimeId() {
+ return runtimeId;
+ }
+
+ /**
+ * Sets the id of the node the component is to be provisioned to.
+ *
+ * @param id the id of the node the component is to be provisioned to
+ */
+ public void setRuntimeId(URI id) {
+ this.runtimeId = id;
}
/**
Added: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentDefinition.java?view=auto&rev=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentDefinition.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentDefinition.java Sun Mar 18 15:19:16 2007
@@ -0,0 +1,27 @@
+/*
+ * 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.spi.model;
+
+/**
+ * Base model class for intent meta-data
+ *
+ * @version $Rev$ $Date$
+ */
+public class IntentDefinition extends ModelObject {
+}
Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentDefinition.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/IntentDefinition.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalInterceptorDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalInterceptorDefinition.java?view=diff&rev=519710&r1=519709&r2=519710
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalInterceptorDefinition.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalInterceptorDefinition.java Sun Mar 18 15:19:16 2007
@@ -35,6 +35,10 @@
// The qualified name of the interceptor builder
private QName builder;
+ public PhysicalInterceptorDefinition(QName builder) {
+ this.builder = builder;
+ }
+
/**
* Gets the qualified name of the builder.
* @return Qualified name of the builder.
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org