You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/03/29 22:20:53 UTC
svn commit: r523826 - in /incubator/tuscany/java/sca:
kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/
runtime/embedded/
runtime/embedded/src/main/java/org/apache/tuscany/runtime/embedded/
runtime/embedded/src/test/java/calculator/ runtime/...
Author: rfeng
Date: Thu Mar 29 13:20:52 2007
New Revision: 523826
URL: http://svn.apache.org/viewvc?view=rev&rev=523826
Log:
Add an embedded dummy runtime
Added:
incubator/tuscany/java/sca/runtime/embedded/
- copied from r521957, incubator/tuscany/sandbox/rfeng/runtime/embedded/
incubator/tuscany/java/sca/runtime/embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java
- copied, changed from r523114, incubator/tuscany/sandbox/rfeng/runtime/embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java
incubator/tuscany/java/sca/runtime/embedded/src/test/java/calculator/CalculatorClient.java
- copied unchanged from r523114, incubator/tuscany/sandbox/rfeng/runtime/embedded/src/test/java/calculator/CalculatorClient.java
incubator/tuscany/java/sca/runtime/embedded/src/test/java/org/apache/tuscany/api/SCARuntimeTestCase.java
- copied unchanged from r523114, incubator/tuscany/sandbox/rfeng/runtime/embedded/src/test/java/org/apache/tuscany/api/SCARuntimeTestCase.java
incubator/tuscany/java/sca/runtime/embedded/src/test/resources/system.composite
- copied, changed from r523114, incubator/tuscany/sandbox/rfeng/runtime/embedded/src/test/resources/system.composite
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java?view=diff&rev=523826&r1=523825&r2=523826
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java Thu Mar 29 13:20:52 2007
@@ -51,6 +51,7 @@
import org.apache.tuscany.core.implementation.system.model.SystemImplementation;
import org.apache.tuscany.core.loader.ComponentLoader;
import org.apache.tuscany.core.loader.ComponentTypeElementLoader;
+import org.apache.tuscany.core.loader.DependencyLoader;
import org.apache.tuscany.core.loader.IncludeLoader;
import org.apache.tuscany.core.loader.LoaderRegistryImpl;
import org.apache.tuscany.core.loader.PropertyLoader;
@@ -58,6 +59,7 @@
import org.apache.tuscany.core.loader.ServiceLoader;
import org.apache.tuscany.core.property.PropertyObjectFactoryImpl;
import org.apache.tuscany.core.resolver.AutowireResolver;
+import org.apache.tuscany.core.services.artifact.LocalMavenRepository;
import org.apache.tuscany.host.MonitorFactory;
import org.apache.tuscany.spi.builder.Builder;
import org.apache.tuscany.spi.builder.Connector;
@@ -175,7 +177,7 @@
// register element loaders
registerLoader(loaderRegistry, new ComponentLoader(loaderRegistry, propertyFactory));
registerLoader(loaderRegistry, new ComponentTypeElementLoader(loaderRegistry));
- registerLoader(loaderRegistry, new CompositeLoader(loaderRegistry, null));
+ registerLoader(loaderRegistry, new CompositeLoader(loaderRegistry, new LocalMavenRepository(".m2/repository")));
registerLoader(loaderRegistry, new IncludeLoader(loaderRegistry));
JavaInterfaceProcessorRegistryImpl processorRegistry = new JavaInterfaceProcessorRegistryImpl();
registerLoader(loaderRegistry, new InterfaceJavaLoader(loaderRegistry, processorRegistry));
@@ -184,6 +186,7 @@
registerLoader(loaderRegistry, new ServiceLoader(loaderRegistry));
registerLoader(loaderRegistry, new SystemImplementationLoader(loaderRegistry));
registerLoader(loaderRegistry, new LocalBindingLoader(loaderRegistry));
+ registerLoader(loaderRegistry, new DependencyLoader(loaderRegistry));
return loaderRegistry;
}
Copied: incubator/tuscany/java/sca/runtime/embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java (from r523114, incubator/tuscany/sandbox/rfeng/runtime/embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java?view=diff&rev=523826&p1=incubator/tuscany/sandbox/rfeng/runtime/embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java&r1=523114&p2=incubator/tuscany/java/sca/runtime/embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java&r2=523826
==============================================================================
--- incubator/tuscany/sandbox/rfeng/runtime/embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java (original)
+++ incubator/tuscany/java/sca/runtime/embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java Thu Mar 29 13:20:52 2007
@@ -20,9 +20,18 @@
import static org.apache.tuscany.runtime.embedded.SimpleRuntimeInfo.DEFAULT_COMPOSITE;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import java.net.URI;
import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.List;
import org.apache.tuscany.api.annotation.LogLevel;
import org.apache.tuscany.core.component.SimpleWorkContext;
@@ -73,8 +82,9 @@
SystemCompositeImplementation impl = new SystemCompositeImplementation();
impl.setScdlLocation(extensionSCDL);
impl.setClassLoader(systemClassLoader);
- ComponentDefinition<SystemCompositeImplementation> definition
- = new ComponentDefinition<SystemCompositeImplementation>(name, impl);
+ ComponentDefinition<SystemCompositeImplementation> definition = new ComponentDefinition<SystemCompositeImplementation>(
+ name,
+ impl);
Collection<Component> components = getDeployer().deploy(parent, definition);
for (Component component : components) {
@@ -83,27 +93,76 @@
return components;
}
+ /**
+ * Create a facade composite to include all the system and extension SCDLs
+ * @param urls
+ * @return
+ * @throws IOException
+ */
+ private URL merge(List<URL> urls) throws IOException {
+ final StringWriter sw = new StringWriter();
+ final PrintWriter pw = new PrintWriter(sw);
+ pw.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+ pw.print("<composite xmlns=\"http://www.osoa.org/xmlns/sca/1.0\"");
+ pw.println(" name=\"org.apache.tuscany.System\" autowire=\"true\">");
+ int i = 0;
+ for (URL scdl : urls) {
+ pw.print("<include name=\"");
+ pw.print("composite" + (i++) + "\"");
+ pw.print(" scdlLocation=\"");
+ pw.println(scdl.toString() + "\"/>");
+ }
+ pw.println("</composite>");
+ sw.close();
+ // System.out.println(sw.toString());
+ return new URL(null, "sca:system.scdl", new URLStreamHandler() {
+ @Override
+ protected URLConnection openConnection(URL u) throws IOException {
+ return new URLConnection(u) {
+ @Override
+ public InputStream getInputStream() throws IOException {
+ return new ByteArrayInputStream(sw.toString().getBytes("UTF-8"));
+ }
+
+ @Override
+ public void connect() throws IOException {
+ }
+ };
+ }
+ });
+ }
+
@SuppressWarnings("unchecked")
public Component start() throws Exception {
+
+ // FIXME: [rfeng] This is a hack to bootstrap extensions
+ SimpleRuntimeInfo runtimeInfo = getRuntimeInfo();
+ List<URL> scdls = new ArrayList<URL>();
+ scdls.add(runtimeInfo.getSystemSCDL());
+ for (URL ext : runtimeInfo.getExtensionSCDLs()) {
+ scdls.add(ext);
+ }
+ setSystemScdl(merge(scdls));
+ // End of hack
+
initialize();
ScopeRegistry scopeRegistry = getScopeRegistry();
container = scopeRegistry.getScopeContainer(Scope.COMPOSITE);
- /*
- int i = 0;
- for (URL ext : runtimeInfo.getExtensionSCDLs()) {
- URI uri = URI.create("/extensions/extension" + (i++));
- deployExtension(null, uri, ext, runtimeInfo.getClassLoader());
- }
- */
-
+ // int i = 0;
+ // for (URL ext : runtimeInfo.getExtensionSCDLs()) {
+ // URI uri = URI.create("/extensions/extension" + (i++));
+ // deployExtension(null, uri, ext, runtimeInfo.getClassLoader());
+ // }
+
CompositeImplementation impl = new CompositeImplementation();
- impl.setScdlLocation(applicationScdl);
+ impl.setScdlLocation(getApplicationScdl());
impl.setClassLoader(runtimeInfo.getClassLoader());
- ComponentDefinition<CompositeImplementation> definition
- = new ComponentDefinition<CompositeImplementation>(DEFAULT_COMPOSITE, impl);
+ ComponentDefinition<CompositeImplementation> definition = new ComponentDefinition<CompositeImplementation>(
+ DEFAULT_COMPOSITE,
+ impl);
Collection<Component> components = getDeployer().deploy(null, definition);
for (Component component : components) {
component.start();
@@ -113,12 +172,12 @@
WorkContext workContext = new SimpleWorkContext();
workContext.setIdentifier(Scope.COMPOSITE, DEFAULT_COMPOSITE);
PojoWorkContextTunnel.setThreadWorkContext(workContext);
- return componentManager.getComponent(definition.getUri());
+ return getComponentManager().getComponent(definition.getUri());
}
@SuppressWarnings("deprecation")
public <T> T getSystemService(Class<T> type, String name) throws TargetResolutionException {
- SCAObject child = componentManager.getComponent(URI.create(name));
+ SCAObject child = getComponentManager().getComponent(URI.create(name));
if (child == null) {
return null;
}
Copied: incubator/tuscany/java/sca/runtime/embedded/src/test/resources/system.composite (from r523114, incubator/tuscany/sandbox/rfeng/runtime/embedded/src/test/resources/system.composite)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/embedded/src/test/resources/system.composite?view=diff&rev=523826&p1=incubator/tuscany/sandbox/rfeng/runtime/embedded/src/test/resources/system.composite&r1=523114&p2=incubator/tuscany/java/sca/runtime/embedded/src/test/resources/system.composite&r2=523826
==============================================================================
--- incubator/tuscany/sandbox/rfeng/runtime/embedded/src/test/resources/system.composite (original)
+++ incubator/tuscany/java/sca/runtime/embedded/src/test/resources/system.composite Thu Mar 29 13:20:52 2007
@@ -138,11 +138,11 @@
<!-- Classloader registry -->
<!--
- <component name="classLoaderRegistry">
+ <component name="classLoaderRegistry">
<system:implementation.system class="org.apache.tuscany.core.services.classloading.ClassLoaderRegistryImpl" />
- </component>
+ </component>
-->
-
+
<!-- Federated deployer -->
<component name="federateDeployer">
<system:implementation.system class="org.apache.tuscany.core.deployer.federation.FederatedDeployer" />
@@ -158,11 +158,11 @@
<!-- Connector -->
<!--
- <component name="connector">
+ <component name="connector">
<system:implementation.system class="org.apache.tuscany.core.builder.ConnectorImpl" />
- </component>
+ </component>
-->
-
+
<!-- Jetty HTTP service -->
<!--
<component name="httpService">
@@ -277,14 +277,12 @@
<include name="org.apache.tuscany.core.JavaImplementation" scdlResource="org/apache/tuscany/core/javaImplementation.scdl" />
<!-- service for resolving artifacts using Maven repositories -->
- <!--
- <component name="artifactRepository">
- <system:implementation.system
- class="org.apache.tuscany.services.maven.MavenArtifactRepository"/>
+ <component name="artifactRepository">
+ <system:implementation.system class="org.apache.tuscany.services.maven.MavenArtifactRepository" />
<property name="remoteRepoUrl">
- http://repo1.maven.org/maven2/,http://people.apache.org/repo/m2-snapshot-repository,http://people.apache.org/repo/m2-incubating-repository/,http://people.apache.org/repo/m1-snapshot-repository/</property>
- </component>
- -->
+ http://repo1.maven.org/maven2/,http://people.apache.org/repo/m2-snapshot-repository,http://people.apache.org/repo/m2-incubating-repository/,http://people.apache.org/repo/m1-snapshot-repository/
+ </property>
+ </component>
<component name="policyBuilderRegistry">
<system:implementation.system class="org.apache.tuscany.core.policy.PolicyBuilderRegistryImpl" />
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org