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/19 08:29:08 UTC
svn commit: r519861 - 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/services/deployment/ core/src/...
Author: jmarino
Date: Mon Mar 19 00:29:06 2007
New Revision: 519861
URL: http://svn.apache.org/viewvc?view=rev&rev=519861
Log:
have java generator register with generator registry; temp classloader fix for AssemblyService
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/services/deployment/AssemblyServiceImplTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/generator/GeneratorRegistry.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=519861&r1=519860&r2=519861
==============================================================================
--- 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 Mon Mar 19 00:29:06 2007
@@ -82,8 +82,8 @@
resourceGenerators.put(clazz, generator);
}
- public <T extends ComponentDefinition<? extends Implementation>> void register(Class<T> clazz,
- ComponentGenerator<T> generator) {
+ public <T extends Implementation<?>> void register(Class<T> clazz,
+ ComponentGenerator<ComponentDefinition<T>> generator) {
componentGenerators.put(clazz, generator);
}
@@ -91,7 +91,7 @@
public <C extends ComponentDefinition<? extends Implementation>> void generate(C definition,
GeneratorContext context)
throws GenerationException {
- Class<? extends ComponentDefinition> type = definition.getClass();
+ Class<?> type = definition.getImplementation().getClass();
ComponentGenerator<C> generator = (ComponentGenerator<C>) componentGenerators.get(type);
if (generator == null) {
throw new GeneratorNotFoundException(type);
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=519861&r1=519860&r2=519861
==============================================================================
--- 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 Mon Mar 19 00:29:06 2007
@@ -24,16 +24,20 @@
import java.lang.reflect.Method;
import java.util.Map;
+import org.osoa.sca.annotations.EagerInit;
+import org.osoa.sca.annotations.Reference;
+
import org.apache.tuscany.spi.generator.ComponentGenerator;
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.implementation.java.JavaMappedReference;
import org.apache.tuscany.spi.implementation.java.JavaMappedService;
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.ServiceDefinition;
import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
@@ -49,7 +53,13 @@
/**
* @version $Rev$ $Date$
*/
+@EagerInit
public class JavaPhysicalComponentGenerator implements ComponentGenerator<ComponentDefinition<JavaImplementation>> {
+
+
+ public JavaPhysicalComponentGenerator(@Reference GeneratorRegistry registry) {
+ registry.register(JavaImplementation.class, this);
+ }
@SuppressWarnings({"unchecked"})
public void generate(ComponentDefinition<JavaImplementation> definition, GeneratorContext context) {
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=519861&r1=519860&r2=519861
==============================================================================
--- 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 Mon Mar 19 00:29:06 2007
@@ -31,8 +31,11 @@
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
+import org.osoa.sca.annotations.EagerInit;
import org.osoa.sca.annotations.Reference;
+import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.component.ScopeRegistry;
import org.apache.tuscany.spi.deployer.ChangeSetHandler;
import org.apache.tuscany.spi.deployer.ChangeSetHandlerRegistry;
import org.apache.tuscany.spi.deployer.DeploymentContext;
@@ -48,8 +51,10 @@
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.Scope;
import org.apache.tuscany.spi.model.ServiceDefinition;
import org.apache.tuscany.spi.model.physical.PhysicalChangeSet;
@@ -63,21 +68,26 @@
/**
* @version $Rev$ $Date$
*/
+@EagerInit
public class AssemblyServiceImpl implements AssemblyService, ChangeSetHandlerRegistry {
- // private static final URI DOMAIN_URI = URI.create("tuscany://domain");
+ private static final URI DOMAIN_URI = URI.create("tuscany://./domain");
private final GeneratorRegistry generatorRegistry;
private final LoaderRegistry loaderRegistry;
private final AutowireResolver autowireResolver;
+ private final ScopeRegistry scopeRegistry;
private final XMLInputFactory xmlFactory;
- //private ComponentDefinition<CompositeImplementation> domain;
+ private ComponentDefinition<CompositeImplementation> domain;
public AssemblyServiceImpl(@Reference LoaderRegistry loaderRegistry,
@Reference GeneratorRegistry generatorRegistry,
- @Reference AutowireResolver autowireResolver) {
+ @Reference AutowireResolver autowireResolver,
+ @Reference ScopeRegistry scopeRegistry) {
this.loaderRegistry = loaderRegistry;
this.generatorRegistry = generatorRegistry;
this.autowireResolver = autowireResolver;
+ this.scopeRegistry = scopeRegistry;
xmlFactory = XMLInputFactory.newInstance("javax.xml.stream.XMLInputFactory", getClass().getClassLoader());
+ domain = createDomain();
}
private final Map<String, ChangeSetHandler> registry = new HashMap<String, ChangeSetHandler>();
@@ -130,23 +140,28 @@
try {
XMLStreamReader reader = xmlFactory.createXMLStreamReader(stream);
- while(reader.next() != XMLStreamConstants.START_ELEMENT) {
+ while (reader.next() != XMLStreamConstants.START_ELEMENT) {
}
-// if (domain == null) {
-// // lazily create the domain
-// domain = createDomain();
-// }
-
-// ComponentDefinition<CompositeImplementation> defintion = null; //loaderRegistry.load()
-// CompositeComponentType<?, ?, ?> type = defintion.getImplementation().getComponentType();
-
- DeploymentContext deploymentContext = null;
- CompositeComponentType<?, ?, ?> type = (CompositeComponentType<?, ?, ?>) loaderRegistry.load(null, reader, deploymentContext);
+
+ ScopeContainer<URI> scopeContainer = scopeRegistry.getScopeContainer(Scope.COMPOSITE);
+ URI groupId = domain.getUri();
+ scopeContainer.createGroup(groupId);
+ // FIXME this needs to be done properly
+ ClassLoader cl = getClass().getClassLoader();
+ DeploymentContext deploymentContext =
+ new RootDeploymentContext(cl, null, groupId, xmlFactory, scopeContainer, false);
+
+ CompositeComponentType<?, ?, ?> type =
+ (CompositeComponentType<?, ?, ?>) loaderRegistry.load(null, reader, deploymentContext);
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);
+ try {
+ generate(child, contexts);
+ } catch (GenerationException e) {
+ throw new DeploymentException(e);
+ }
}
// create physical wire definitions
for (ComponentDefinition<?> child : type.getDeclaredComponents().values()) {
@@ -204,7 +219,8 @@
}
}
- private void generate(ComponentDefinition<?> component, Map<URI, GeneratorContext> contexts) {
+ private void generate(ComponentDefinition<?> component, Map<URI, GeneratorContext> contexts)
+ throws GenerationException {
URI id = component.getRuntimeId();
GeneratorContext context = contexts.get(id);
if (context == null) {
@@ -212,24 +228,18 @@
context = new DefaultGeneratorContext(changeSet);
contexts.put(id, context);
}
- try {
- // TODO support composite recursion
- generatorRegistry.generate(component, context);
- } catch (GenerationException e) {
- // throw new
- }
+ // TODO support composite recursion
+ generatorRegistry.generate(component, context);
}
-// private ComponentDefinition<CompositeImplementation> createDomain() {
-// CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
-// new CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
-// CompositeImplementation impl = new CompositeImplementation();
-// impl.setComponentType(type);
-// // FIXME domain uri
-// domain = new ComponentDefinition<CompositeImplementation>(DOMAIN_URI, impl);
-// return domain;
-// }
+ private ComponentDefinition<CompositeImplementation> createDomain() {
+ CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
+ new CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
+ CompositeImplementation impl = new CompositeImplementation();
+ impl.setComponentType(type);
+ return new ComponentDefinition<CompositeImplementation>(DOMAIN_URI, impl);
+ }
private ModelObject resolveTarget(URI uri, CompositeComponentType<?, ?, ?> type) {
// TODO only resolves one level deep
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/AssemblyServiceImplTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/AssemblyServiceImplTestCase.java?view=diff&rev=519861&r1=519860&r2=519861
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/AssemblyServiceImplTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/AssemblyServiceImplTestCase.java Mon Mar 19 00:29:06 2007
@@ -24,6 +24,7 @@
import java.net.URLConnection;
import java.net.URLStreamHandler;
+import org.apache.tuscany.spi.component.ScopeRegistry;
import org.apache.tuscany.spi.generator.GeneratorRegistry;
import org.apache.tuscany.spi.loader.LoaderRegistry;
@@ -99,7 +100,9 @@
EasyMock.replay(generatorRegistry);
AutowireResolver resolver = EasyMock.createMock(AutowireResolver.class);
EasyMock.replay(resolver);
- service = new AssemblyServiceImpl(loaderRegistry, generatorRegistry, resolver);
+ ScopeRegistry scopeRegistry = EasyMock.createMock(ScopeRegistry.class);
+ EasyMock.replay(scopeRegistry);
+ service = new AssemblyServiceImpl(loaderRegistry, generatorRegistry, resolver, scopeRegistry);
}
private static class MockURLStreamHandler extends URLStreamHandler {
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=519861&r1=519860&r2=519861
==============================================================================
--- 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 Mon Mar 19 00:29:06 2007
@@ -36,8 +36,8 @@
*/
public interface GeneratorRegistry {
- <T extends ComponentDefinition<? extends Implementation>> void register(Class<T> clazz,
- ComponentGenerator<T> generator);
+ public <T extends Implementation<?>> void register(Class<T> clazz,
+ ComponentGenerator<ComponentDefinition<T>> generator);
void register(Class<?> clazz, BindingGenerator generator);
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org