You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by me...@apache.org on 2007/03/20 00:30:03 UTC
svn commit: r520171 - in /incubator/tuscany/java/sca/kernel/core/src:
main/java/org/apache/tuscany/core/services/deployment/AssemblyServiceImpl.java
test/java/org/apache/tuscany/core/services/deployment/AssemblyServiceImplTestCase.java
Author: meerajk
Date: Mon Mar 19 16:30:02 2007
New Revision: 520171
URL: http://svn.apache.org/viewvc?view=rev&rev=520171
Log:
Added code to call marshaller registry and discovery service.
Modified:
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
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=520171&r1=520170&r2=520171
==============================================================================
--- 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 16:30:02 2007
@@ -18,6 +18,8 @@
*/
package org.apache.tuscany.core.services.deployment;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
@@ -26,14 +28,20 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+
import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Reference;
-
+import org.apache.tuscany.core.deployer.RootDeploymentContext;
+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;
+import org.apache.tuscany.host.deployment.UnsupportedContentTypeException;
import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.component.ScopeRegistry;
import org.apache.tuscany.spi.deployer.ChangeSetHandler;
@@ -44,6 +52,8 @@
import org.apache.tuscany.spi.generator.GeneratorRegistry;
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.loader.LoaderRegistry;
+import org.apache.tuscany.spi.marshaller.MarshalException;
+import org.apache.tuscany.spi.marshaller.ModelMarshallerRegistry;
import org.apache.tuscany.spi.model.BindingDefinition;
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.ComponentType;
@@ -57,13 +67,10 @@
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.ServiceDefinition;
import org.apache.tuscany.spi.model.physical.PhysicalChangeSet;
-
-import org.apache.tuscany.core.deployer.RootDeploymentContext;
-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;
-import org.apache.tuscany.host.deployment.UnsupportedContentTypeException;
+import org.apache.tuscany.spi.services.discovery.DiscoveryException;
+import org.apache.tuscany.spi.services.discovery.DiscoveryService;
+import org.osoa.sca.annotations.EagerInit;
+import org.osoa.sca.annotations.Reference;
/**
* @version $Rev$ $Date$
@@ -76,16 +83,23 @@
private final AutowireResolver autowireResolver;
private final ScopeRegistry scopeRegistry;
private final XMLInputFactory xmlFactory;
+ private final ModelMarshallerRegistry marshallerRegistry;
+ private final DiscoveryService discoveryService;
private ComponentDefinition<CompositeImplementation> domain;
+
public AssemblyServiceImpl(@Reference LoaderRegistry loaderRegistry,
@Reference GeneratorRegistry generatorRegistry,
@Reference AutowireResolver autowireResolver,
- @Reference ScopeRegistry scopeRegistry) {
+ @Reference ScopeRegistry scopeRegistry,
+ @Reference ModelMarshallerRegistry marshallerRegistry,
+ @Reference DiscoveryService discoveryService) {
this.loaderRegistry = loaderRegistry;
this.generatorRegistry = generatorRegistry;
this.autowireResolver = autowireResolver;
this.scopeRegistry = scopeRegistry;
+ this.marshallerRegistry = marshallerRegistry;
+ this.discoveryService = discoveryService;
xmlFactory = XMLInputFactory.newInstance("javax.xml.stream.XMLInputFactory", getClass().getClassLoader());
domain = createDomain();
}
@@ -209,13 +223,36 @@
} catch (GenerationException e) {
throw new DeploymentException(e);
}
+
+ marshallAndSend(id, context);
}
} catch (XMLStreamException e) {
throw new DocumentParseException(e);
} catch (LoaderException e) {
throw new DocumentParseException(e);
+ } catch (MarshalException e) {
+ throw new DocumentParseException(e);
+ } catch (DiscoveryException e) {
+ throw new DocumentParseException(e);
}
+ }
+
+ /*
+ * Marshalls and sends the PCS.
+ */
+ private void marshallAndSend(URI id, GeneratorContext context) throws XMLStreamException, MarshalException, DiscoveryException {
+
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ PhysicalChangeSet pcs = context.getPhysicalChangeSet();
+
+ XMLStreamWriter pcsWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(out);
+ marshallerRegistry.marshall(pcs, pcsWriter);
+
+ ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
+ XMLStreamReader pcsReader = XMLInputFactory.newInstance().createXMLStreamReader(in);
+ discoveryService.sendMessage(id.toASCIIString(), pcsReader);
+
}
private void generate(ComponentDefinition<?> component, Map<URI, GeneratorContext> contexts)
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=520171&r1=520170&r2=520171
==============================================================================
--- 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 16:30:02 2007
@@ -27,6 +27,8 @@
import org.apache.tuscany.spi.component.ScopeRegistry;
import org.apache.tuscany.spi.generator.GeneratorRegistry;
import org.apache.tuscany.spi.loader.LoaderRegistry;
+import org.apache.tuscany.spi.marshaller.ModelMarshallerRegistry;
+import org.apache.tuscany.spi.services.discovery.DiscoveryService;
import junit.framework.TestCase;
import org.apache.tuscany.core.resolver.AutowireResolver;
@@ -102,7 +104,11 @@
EasyMock.replay(resolver);
ScopeRegistry scopeRegistry = EasyMock.createMock(ScopeRegistry.class);
EasyMock.replay(scopeRegistry);
- service = new AssemblyServiceImpl(loaderRegistry, generatorRegistry, resolver, scopeRegistry);
+ ModelMarshallerRegistry marshallerRegistry = EasyMock.createMock(ModelMarshallerRegistry.class);
+ EasyMock.replay(marshallerRegistry);
+ DiscoveryService discoveryService = EasyMock.createMock(DiscoveryService.class);
+ EasyMock.replay(discoveryService);
+ service = new AssemblyServiceImpl(loaderRegistry, generatorRegistry, resolver, scopeRegistry, marshallerRegistry, discoveryService);
}
private static class MockURLStreamHandler extends URLStreamHandler {
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org