Author: lresende
Date: Wed Feb 21 10:27:57 2007
New Revision: 510137
URL: http://svn.apache.org/viewvc?view=rev&rev=510137
Log:
Updates to contribution service. SCDL and Java contributionProcessors
Added:
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionDirectoryWatcher.java
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessor.java
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/ScdlContributionProcessor.java
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionServiceImplTestCase.java
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessorTestCase.java
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/resources/deployables/
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/resources/deployables/sample-calculator.jar
(with props)
incubator/tuscany/branches/sca-java-integration/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/ContributionProcessorException.java
Modified:
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImpl.java
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionProcessorRegistryImpl.java
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionServiceImpl.java
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessor.java
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/resources/org/apache/tuscany/core/deployment.scdl
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessorTestCase.java
Modified:
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImpl.java?view=diff&rev=510137&r1=510136&r2=510137
==============================================================================
---
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImpl.java
(original)
+++
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImpl.java
Wed Feb 21 10:27:57 2007
@@ -52,6 +52,7 @@
private void init() {
contentTypeRegistry.put("SCDL", "application/v.tuscany.scdl");
contentTypeRegistry.put("WSDL", "application/v.tuscany.wsdl");
+ contentTypeRegistry.put("JAR", "application/x-compressed");
}
protected String resolveContentyTypeByExtension(URL resourceURL) {
Added:
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionDirectoryWatcher.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionDirectoryWatcher.java?view=auto&rev=510137
==============================================================================
---
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionDirectoryWatcher.java
(added)
+++
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionDirectoryWatcher.java
Wed Feb 21 10:27:57 2007
@@ -0,0 +1,63 @@
+/*
+ * 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 java.io.File;
+import java.io.IOException;
+
+import org.apache.tuscany.host.deployment.ContributionService;
+import org.apache.tuscany.host.deployment.DeploymentException;
+import org.apache.tuscany.spi.annotation.Autowire;
+import org.osoa.sca.annotations.EagerInit;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Property;
+
[EMAIL PROTECTED]
+public class ContributionDirectoryWatcher {
+ private final String path;
+ private final ContributionService contributionService;
+
+ public ContributionDirectoryWatcher(@Autowire ContributionService
contributionService, @Property(name = "path")String path) {
+ this.path = path;
+ this.contributionService = contributionService;
+ }
+
+ @Init
+ public void init() {
+ File extensionDir = new File(path);
+ if (!extensionDir.isDirectory()) {
+ // we don't have an extension directory, there's nothing to do
+ return;
+ }
+
+ File[] files = extensionDir.listFiles();
+ for (File file : files) {
+ try{
+ this.contributionService.contribute(file.toURL());
+ }catch(DeploymentException de){
+ //FIXME handle this
+ de.printStackTrace();
+ }catch(IOException ioe){
+ //FIXME handle this
+ ioe.printStackTrace();
+ }
+ }
+ }
+}
Modified:
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionProcessorRegistryImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionProcessorRegistryImpl.java?view=diff&rev=510137&r1=510136&r2=510137
==============================================================================
---
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionProcessorRegistryImpl.java
(original)
+++
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionProcessorRegistryImpl.java
Wed Feb 21 10:27:57 2007
@@ -45,13 +45,13 @@
@Service(ContributionProcessorRegistry.class)
public class ContributionProcessorRegistryImpl implements
ContributionProcessorRegistry {
private Map<String, ContributionProcessor> registry = new HashMap<String,
ContributionProcessor>();
- private ContentTypeDescriber contentTypeBuilder;
+ private ContentTypeDescriber contentTypeDescriber;
- public ContributionProcessorRegistryImpl(@Autowire ContentTypeDescriber
contentTypeBuilder) {
- if (contentTypeBuilder == null) {
- this.contentTypeBuilder = new ContentTypeDescriberImpl();
+ public ContributionProcessorRegistryImpl(@Autowire ContentTypeDescriber
contentTypeDescriber) {
+ if (contentTypeDescriber == null) {
+ this.contentTypeDescriber = new ContentTypeDescriberImpl();
} else {
- this.contentTypeBuilder = contentTypeBuilder;
+ this.contentTypeDescriber = contentTypeDescriber;
}
}
@@ -65,8 +65,9 @@
public void processContent(Contribution contribution, URI source,
InputStream inputStream)
throws DeploymentException, IOException {
+
URL sourceURL = contribution.getArtifact(source).getLocation();
- String contentType = this.contentTypeBuilder.getContentType(sourceURL,
null);
+ String contentType =
this.contentTypeDescriber.getContentType(sourceURL, null);
if (contentType == null) {
throw new UnsupportedContentTypeException("Invalid contentType:
null");
}
Modified:
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionServiceImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionServiceImpl.java?view=diff&rev=510137&r1=510136&r2=510137
==============================================================================
---
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionServiceImpl.java
(original)
+++
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionServiceImpl.java
Wed Feb 21 10:27:57 2007
@@ -84,13 +84,14 @@
}
// store the contribution in the contribution repository
+ URI contributionURI = URI.create("sca://contribution/" +
UUID.randomUUID());
URL storedURL = this.contributionRepository.store(source,
contributionStream);
+
Contribution contribution = null;
- // start processing valid contribution
- contribution = new Contribution(URI.create("sca://contribution/" +
UUID.randomUUID()));
+ contribution = new Contribution(contributionURI);
contribution.setLocation(storedURL);
- this.processorRegistry.processContent(contribution,
contribution.getUri(), contributionStream);
+ this.processorRegistry.processContent(contribution, contributionURI,
storedURL.openStream());
if (contribution == null) {
// FIXME throw exception
Modified:
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessor.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessor.java?view=diff&rev=510137&r1=510136&r2=510137
==============================================================================
---
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessor.java
(original)
+++
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessor.java
Wed Feb 21 10:27:57 2007
@@ -29,7 +29,9 @@
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;
+import org.apache.tuscany.core.services.deployment.ContentTypeDescriberImpl;
import org.apache.tuscany.host.deployment.DeploymentException;
+import org.apache.tuscany.spi.deployer.ContentTypeDescriber;
import org.apache.tuscany.spi.deployer.ContributionProcessor;
import org.apache.tuscany.spi.extension.ContributionProcessorExtension;
import org.apache.tuscany.spi.model.Contribution;
@@ -37,6 +39,7 @@
public class JarContributionProcessor extends ContributionProcessorExtension
implements ContributionProcessor {
public static final String CONTENT_TYPE = "application/x-compressed";
+ @Override
public String getContentType() {
return CONTENT_TYPE;
}
@@ -75,13 +78,17 @@
if (sourceURL.toString().startsWith("jar:")) {
return sourceURL;
} else {
- return new URL("jar:" + sourceURL.toString() + "!/");
+ return new URL("jar:" + sourceURL.toExternalForm() + "!/");
}
}
public void processContent(Contribution contribution, URI source,
InputStream inputStream)
throws DeploymentException, IOException {
+ if(contribution == null){
+ throw new IllegalArgumentException("Invalid null contribution.");
+ }
+
if (source == null) {
throw new IllegalArgumentException("Invalid null source uri.");
}
@@ -91,26 +98,24 @@
}
URL sourceURL = contribution.getArtifact(source).getLocation();
+
sourceURL = forceJarURL(sourceURL);
for (URL artifactURL : getArtifacts(sourceURL, inputStream)) {
// FIXME
// contribution.addArtifact(artifact)
-
- URL aURL = new URL(artifactURL.toString());
- if (aURL.openConnection() != null) {
- // TODO
+
+ ContentTypeDescriber contentTypeDescriber = new
ContentTypeDescriberImpl();
+ String contentType =
contentTypeDescriber.getContentType(artifactURL, null);
+ System.out.println("Type : " + contentType);
+
+
+ //just process scdl for now
+ if("application/v.tuscany.scdl".equals(contentType) ||
"application/java-vm".equals(contentType) ){
+ this.registry.processContent(contribution, source,
inputStream);
}
-
- // is default jar
- URL manifestURL = new URL(sourceURL, "!/META-INF/Manifest.mf");
- if (manifestURL.openConnection() == null) {
- // does not exists
- }
-
// process each artifact
- // this.registry.processContent(contribution, artifactURL,
- // inputStream);
+ //this.registry.processContent(contribution, artifactURL,
inputStream);
}
Added:
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessor.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessor.java?view=auto&rev=510137
==============================================================================
---
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessor.java
(added)
+++
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessor.java
Wed Feb 21 10:27:57 2007
@@ -0,0 +1,101 @@
+/*
+ * 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.contribution;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.URL;
+
+import org.apache.tuscany.host.deployment.DeploymentException;
+import org.apache.tuscany.spi.annotation.Autowire;
+import org.apache.tuscany.spi.deployer.CompositeClassLoader;
+import org.apache.tuscany.spi.deployer.ContributionProcessor;
+import org.apache.tuscany.spi.extension.ContributionProcessorExtension;
+import org.apache.tuscany.spi.implementation.java.IntrospectionRegistry;
+import org.apache.tuscany.spi.implementation.java.Introspector;
+import org.apache.tuscany.spi.model.Contribution;
+import org.osoa.sca.annotations.Constructor;
+
+public class JavaContributionProcessor extends ContributionProcessorExtension
implements ContributionProcessor{
+ public static final String CONTENT_TYPE = "application/java-vm";
+ private Introspector introspector;
+
+ @Override
+ public String getContentType() {
+ return CONTENT_TYPE;
+ }
+
+ @Constructor({"introspector"})
+ public JavaContributionProcessor(@Autowire IntrospectionRegistry
introspector){
+ this.introspector = introspector;
+ }
+
+ private String getClazzName(URL clazzURL){
+ String clazzName;
+
+ clazzName =
clazzURL.toExternalForm().substring(clazzURL.toExternalForm().lastIndexOf("!/")
+ 2,
+
clazzURL.toExternalForm().length() - ".class".length());
+ clazzName = clazzName.replace("/", ".");
+
+ return clazzName;
+ }
+
+
+ public void processContent(Contribution contribution, URI source,
InputStream inputStream)
+ throws DeploymentException, IOException {
+ if (source == null) {
+ throw new IllegalArgumentException("Invalid null source uri.");
+ }
+
+ if (inputStream == null) {
+ throw new IllegalArgumentException("Invalid null source
inputstream.");
+ }
+
+ // TODO Auto-generated method stub
+
+ try{
+ CompositeClassLoader cl = new
CompositeClassLoader(getClass().getClassLoader());
+ cl.addURL(contribution.getLocation());
+
+ String clazzName =
getClazzName(contribution.getArtifact(source).getLocation());
+ System.out.println(clazzName);
+
+ Class clazz = cl.loadClass(clazzName);
+
+// PojoComponentType javaInfo = introspector.introspect(null,
clazz, null, null);
+ }catch(ClassNotFoundException cnfe){
+ String msg = cnfe.getMessage();
+
+ }
+// catch(ProcessingException pe){
+// String msg = pe.getMessage();
+
+
+
+
+ }
+
+ public void processModel(Contribution contribution, URI source, Object
modelObject) throws DeploymentException, IOException {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added:
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/ScdlContributionProcessor.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/ScdlContributionProcessor.java?view=auto&rev=510137
==============================================================================
---
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/ScdlContributionProcessor.java
(added)
+++
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/ScdlContributionProcessor.java
Wed Feb 21 10:27:57 2007
@@ -0,0 +1,93 @@
+/*
+ * 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.contribution;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+
+import javax.xml.stream.XMLInputFactory;
+
+import org.apache.tuscany.core.deployer.RootDeploymentContext;
+import org.apache.tuscany.host.deployment.ContributionProcessorException;
+import org.apache.tuscany.host.deployment.DeploymentException;
+import org.apache.tuscany.spi.annotation.Autowire;
+import org.apache.tuscany.spi.deployer.CompositeClassLoader;
+import org.apache.tuscany.spi.deployer.ContributionProcessor;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.extension.ContributionProcessorExtension;
+import org.apache.tuscany.spi.loader.LoaderException;
+import org.apache.tuscany.spi.loader.LoaderRegistry;
+import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.model.CompositeComponentType;
+import org.apache.tuscany.spi.model.CompositeImplementation;
+import org.apache.tuscany.spi.model.Contribution;
+
+public class ScdlContributionProcessor extends ContributionProcessorExtension
implements ContributionProcessor{
+ public static final String CONTENT_TYPE = "application/v.tuscany.scdl";
+ private final LoaderRegistry registry;
+
+ protected XMLInputFactory xmlFactory;
+
+ @Override
+ public String getContentType() {
+ return CONTENT_TYPE;
+ }
+
+ public ScdlContributionProcessor(@Autowire LoaderRegistry registry){
+ super();
+ this.registry = registry;
+ this.xmlFactory =
XMLInputFactory.newInstance("javax.xml.stream.XMLInputFactory",
getClass().getClassLoader());
+ }
+
+
+ public void processContent(Contribution contribution, URI source,
InputStream inputStream)
+ throws DeploymentException, IOException {
+ if (source == null) {
+ throw new IllegalArgumentException("Invalid null source uri.");
+ }
+
+ if (inputStream == null) {
+ throw new IllegalArgumentException("Invalid null source
inputstream.");
+ }
+
+ try{
+ CompositeClassLoader cl = new
CompositeClassLoader(getClass().getClassLoader());
+ cl.addURL(contribution.getLocation());
+ DeploymentContext deploymentContext = new
RootDeploymentContext(cl, this.xmlFactory, null,
contribution.getArtifact(source).getLocation());
+
+ CompositeComponentType componentType = this.registry.load(null,
null, contribution.getArtifact(source).getLocation(),
CompositeComponentType.class, deploymentContext);
+
+ //FIXME add this to artifact
+ CompositeImplementation implementation = new
CompositeImplementation();
+ ComponentDefinition<CompositeImplementation> componentDefinition =
new ComponentDefinition<CompositeImplementation>(implementation);
+
+ }catch(LoaderException le){
+ le.printStackTrace();
+ throw new ContributionProcessorException("Error processing SCDL",
contribution.getArtifact(source).getLocation().toExternalForm(), le);
+ }
+ }
+
+ public void processModel(Contribution contribution, URI source, Object
modelObject) throws DeploymentException, IOException {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Modified:
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/resources/org/apache/tuscany/core/deployment.scdl
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/resources/org/apache/tuscany/core/deployment.scdl?view=diff&rev=510137&r1=510136&r2=510137
==============================================================================
---
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/resources/org/apache/tuscany/core/deployment.scdl
(original)
+++
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/resources/org/apache/tuscany/core/deployment.scdl
Wed Feb 21 10:27:57 2007
@@ -26,7 +26,11 @@
name="org.apache.tuscany.core.Deployment">
<!-- Contribution Service -->
- <component name="contributionService">
+ <component name="contributionDirectoryWatcher" initLevel="100">
+ <system:implementation.system
class="org.apache.tuscany.core.services.deployment.ContributionDirectoryWatcher"
/>
+ <property name="path">target/deployables</property>
+ </component>
+ <component name="contributionService" initLevel="90">
<system:implementation.system
class="org.apache.tuscany.core.services.deployment.ContributionServiceImpl" />
</component>
<component name="contributionRepository" initLevel="40">
@@ -34,14 +38,20 @@
<property name="repository">target/repository</property>
</component>
- <component name="contributionProcessorRepository" initLevel="35">
+ <component name="contributionProcessorRegistry" initLevel="35">
<system:implementation.system
class="org.apache.tuscany.core.services.deployment.ContributionProcessorRegistryImpl"
/>
</component>
<component name="contentTypeDescriber" initLevel="30">
<system:implementation.system
class="org.apache.tuscany.core.services.deployment.ContentTypeDescriberImpl" />
</component>
- <component name="jarContributionProcessor">
+ <component name="JarContributionProcessor" initLevel="30">
<system:implementation.system
class="org.apache.tuscany.core.services.deployment.contribution.JarContributionProcessor"
/>
</component>
+ <component name="JavaContributionProcessor" initLevel="30">
+ <system:implementation.system
class="org.apache.tuscany.core.services.deployment.contribution.JavaContributionProcessor"
/>
+ </component>
+ <component name="ScdlContributionProcessor" initLevel="30">
+ <system:implementation.system
class="org.apache.tuscany.core.services.deployment.contribution.ScdlContributionProcessor"
/>
+ </component>
</composite>
Added:
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionServiceImplTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionServiceImplTestCase.java?view=auto&rev=510137
==============================================================================
---
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionServiceImplTestCase.java
(added)
+++
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionServiceImplTestCase.java
Wed Feb 21 10:27:57 2007
@@ -0,0 +1,72 @@
+/*
+ * 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 java.net.URI;
+import java.net.URL;
+
+import junit.framework.TestCase;
+
+import
org.apache.tuscany.core.services.deployment.contribution.JarContributionProcessor;
+import
org.apache.tuscany.core.services.deployment.contribution.JavaContributionProcessor;
+import org.apache.tuscany.host.deployment.ContributionService;
+import org.apache.tuscany.spi.deployer.ContentTypeDescriber;
+import org.apache.tuscany.spi.deployer.ContributionProcessorRegistry;
+import org.apache.tuscany.spi.deployer.ContributionRepository;
+
+/**
+ * This is more intended to be a integration test then a unit test. *
+ */
+public class ContributionServiceImplTestCase extends TestCase {
+ private static final String JAR_CONTRIBUTION =
"/repository/sample-calculator.jar";
+ private ContributionRepository repository;
+ private ContentTypeDescriber contentTypeDescriber;
+ private ContributionProcessorRegistry registry;
+ private ContributionService contributionService;
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+// this.repository = new
ContributionRepositoryImpl("target/repository");
+//
+// this.contentTypeDescriber = new ContentTypeDescriberImpl();
+//
+// this.registry = new
ContributionProcessorRegistryImpl(contentTypeDescriber);
+//
+// JarContributionProcessor jarProcessor = new
JarContributionProcessor();
+// jarProcessor.setContributionProcessorRegistry(this.registry);
+// this.registry.register(JarContributionProcessor.CONTENT_TYPE,
jarProcessor);
+//
+// JavaContributionProcessor javaProcessor = new
JavaContributionProcessor(null);
+// javaProcessor.setContributionProcessorRegistry(this.registry);
+// this.registry.register(JavaContributionProcessor.CONTENT_TYPE,
javaProcessor);
+//
+//
+// contributionService = new ContributionServiceImpl(repository,
registry);
+ }
+
+ public void testContributeURL() throws Exception {
+// URL contribution = getClass().getResource(JAR_CONTRIBUTION);
+//
+// URI contributionURI = contributionService.contribute(contribution);
+// assertNotNull(contributionURI);
+ }
+
+}
Modified:
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessorTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessorTestCase.java?view=diff&rev=510137&r1=510136&r2=510137
==============================================================================
---
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessorTestCase.java
(original)
+++
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessorTestCase.java
Wed Feb 21 10:27:57 2007
@@ -33,7 +33,7 @@
protected void setUp() throws Exception {
super.setUp();
}
-
+
public final void testProcessJarArtifacts() throws Exception {
JarContributionProcessor jarContribution = new
JarContributionProcessor();
ContributionProcessorRegistry mockRegistry =
EasyMock.createMock(ContributionProcessorRegistry.class);
Added:
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessorTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessorTestCase.java?view=auto&rev=510137
==============================================================================
---
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessorTestCase.java
(added)
+++
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessorTestCase.java
Wed Feb 21 10:27:57 2007
@@ -0,0 +1,85 @@
+/*
+ * 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.contribution;
+
+import java.net.URL;
+import java.util.jar.JarEntry;
+import java.util.jar.JarInputStream;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.core.idl.java.JavaInterfaceProcessorRegistryImpl;
+import org.apache.tuscany.core.implementation.IntrospectionRegistryImpl;
+import org.apache.tuscany.core.implementation.processor.DestroyProcessor;
+import
org.apache.tuscany.core.implementation.processor.ImplementationProcessorServiceImpl;
+import org.apache.tuscany.core.implementation.processor.InitProcessor;
+import org.apache.tuscany.core.implementation.processor.PropertyProcessor;
+import org.apache.tuscany.core.implementation.processor.ReferenceProcessor;
+import org.apache.tuscany.core.implementation.processor.ResourceProcessor;
+import org.apache.tuscany.core.implementation.processor.ScopeProcessor;
+import org.apache.tuscany.core.monitor.NullMonitorFactory;
+import
org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
+
+public class JavaContributionProcessorTestCase extends TestCase {
+ private static final String JAR_CONTRIBUTION =
"/repository/sample-calculator.jar";
+ private static final String JAVA_ARTIFACT_URL =
"jar:file://repository/sample-calculator.jar!/calculator/AddService.class" ;
+ private IntrospectionRegistryImpl registry;
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ registry = new IntrospectionRegistryImpl();
+ registry.setMonitor(new
NullMonitorFactory().getMonitor(IntrospectionRegistryImpl.Monitor.class));
+ registry.registerProcessor(new DestroyProcessor());
+ registry.registerProcessor(new InitProcessor());
+ registry.registerProcessor(new ScopeProcessor());
+ JavaInterfaceProcessorRegistryImpl interfaceProcessorRegistry = new
JavaInterfaceProcessorRegistryImpl();
+ ImplementationProcessorService service = new
ImplementationProcessorServiceImpl(interfaceProcessorRegistry);
+ registry.registerProcessor(new PropertyProcessor(service));
+ registry.registerProcessor(new
ReferenceProcessor(interfaceProcessorRegistry));
+ registry.registerProcessor(new ResourceProcessor());
+ }
+
+ protected URL getClassURL() throws Exception{
+ URL jarURL = getClass().getResource(JAR_CONTRIBUTION);
+ JarInputStream jar = new
JarInputStream(getClass().getResourceAsStream(JAR_CONTRIBUTION));
+ URL rootURL = new URL("jar:" + jarURL.toString() + "!/");
+ URL classURL = null;
+
+ try {
+ while (true) {
+ JarEntry entry = jar.getNextJarEntry();
+ if(entry.getName().endsWith(".class")){
+
+ classURL = new URL(rootURL, entry.getName());
+ break;
+ }
+ }
+ } finally {
+ jar.close();
+ }
+ return classURL;
+ }
+
+ public final void testProcessJarArtifacts() throws Exception {
+ //ContributionProcessor javaContributionProcessor = new
JavaContributionProcessor(registry);
+
+ //URL jarURL = this.getClassURL();
+ //javaContributionProcessor.processContent(null, jarURL,
jarURL.openStream());
+ }
+}
Added:
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/resources/deployables/sample-calculator.jar
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/resources/deployables/sample-calculator.jar?view=auto&rev=510137
==============================================================================
Binary file - no diff available.
Propchange:
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/resources/deployables/sample-calculator.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added:
incubator/tuscany/branches/sca-java-integration/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/ContributionProcessorException.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/ContributionProcessorException.java?view=auto&rev=510137
==============================================================================
---
incubator/tuscany/branches/sca-java-integration/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/ContributionProcessorException.java
(added)
+++
incubator/tuscany/branches/sca-java-integration/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/ContributionProcessorException.java
Wed Feb 21 10:27:57 2007
@@ -0,0 +1,76 @@
+/*
+ * 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.host.deployment;
+
+/**
+ * Exception thrown to indicate that a Content-Type is not supported by this
SCA Domain.
+ * The Content-Type value supplied will be returned as the message text for
this exception.
+ *
+ * @version $Rev: 490357 $ $Date: 2006-12-26 11:06:27 -0800 (Tue, 26 Dec 2006)
$
+ */
+public class ContributionProcessorException extends DeploymentException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -5187793020502900879L;
+
+ /**
+ * @param message the exception message
+ */
+ public ContributionProcessorException(String message) {
+ super(message);
+ }
+
+ /**
+ *
+ * @param message the exception message
+ * @param identifier an identifier for this exception
+ */
+ public ContributionProcessorException(String message, String identifier) {
+ super(message, identifier);
+ }
+
+ /**
+ * @param message the exception message
+ * @param cause a cause for the exception
+ */
+ public ContributionProcessorException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ /**
+ * @param message
+ * @param identifier
+ * @param cause
+ */
+ public ContributionProcessorException(String message, String identifier,
Throwable cause) {
+ super(message, identifier, cause);
+ }
+
+ /**
+ * @param cause
+ */
+ public ContributionProcessorException(Throwable cause) {
+ super(cause);
+ }
+
+
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]