You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2007/03/28 19:25:04 UTC
svn commit: r523421 - in
/incubator/tuscany/java/sca/runtime/services/contribution:
contribution-installer/src/main/java/org/apache/tuscany/services/contribution/installer/
contribution/
contribution/src/main/java/org/apache/tuscany/services/contributi...
Author: lresende
Date: Wed Mar 28 10:25:03 2007
New Revision: 523421
URL: http://svn.apache.org/viewvc?view=rev&rev=523421
Log:
Contribution Services - bringing more processors and adding a componentType resolver
Added:
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/AbstractDeploymentContext.java
- copied, changed from r523104, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/AbstractDeploymentContext.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionDeploymentContext.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/CompositeContributionProcessor.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/InvalidComponentDefinitionlException.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/InvalidPojoComponentDefinitionlException.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/JavaContributionProcessor.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/resolver/
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/resolver/ComponentDefinitionArtifactResolver.java
Modified:
incubator/tuscany/java/sca/runtime/services/contribution/contribution-installer/src/main/java/org/apache/tuscany/services/contribution/installer/Main.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/pom.xml
Modified: incubator/tuscany/java/sca/runtime/services/contribution/contribution-installer/src/main/java/org/apache/tuscany/services/contribution/installer/Main.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution-installer/src/main/java/org/apache/tuscany/services/contribution/installer/Main.java?view=diff&rev=523421&r1=523420&r2=523421
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution-installer/src/main/java/org/apache/tuscany/services/contribution/installer/Main.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution-installer/src/main/java/org/apache/tuscany/services/contribution/installer/Main.java Wed Mar 28 10:25:03 2007
@@ -65,7 +65,7 @@
//start the process of installing the contribution
ContributionRepository contributionRepository = new ContributionRepositoryImpl(null);
- ContributionService contributionService = new ContributionServiceImpl(contributionRepository, null);
+ ContributionService contributionService = new ContributionServiceImpl(contributionRepository, null, null);
URL contributionURL = contributionSource.toURL();
InputStream contributionStream = contributionURL.openStream();
Modified: incubator/tuscany/java/sca/runtime/services/contribution/contribution/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/pom.xml?view=diff&rev=523421&r1=523420&r2=523421
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution/pom.xml (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/pom.xml Wed Mar 28 10:25:03 2007
@@ -40,6 +40,12 @@
<version>${version}</version>
</dependency>
<dependency>
+ <groupId>org.apache.tuscany.sca.kernel</groupId>
+ <artifactId>tuscany-spi</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>wstx-asl</artifactId>
</dependency>
Copied: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/AbstractDeploymentContext.java (from r523104, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/AbstractDeploymentContext.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/AbstractDeploymentContext.java?view=diff&rev=523421&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/AbstractDeploymentContext.java&r1=523104&p2=incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/AbstractDeploymentContext.java&r2=523421
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/AbstractDeploymentContext.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/AbstractDeploymentContext.java Wed Mar 28 10:25:03 2007
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.core.deployer;
+package org.apache.tuscany.services.contribution;
import java.net.URI;
import java.net.URL;
Added: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionDeploymentContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionDeploymentContext.java?view=auto&rev=523421
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionDeploymentContext.java (added)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionDeploymentContext.java Wed Mar 28 10:25:03 2007
@@ -0,0 +1,74 @@
+/*
+ * 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.services.contribution;
+
+import java.net.URI;
+import java.net.URL;
+import javax.xml.stream.XMLInputFactory;
+
+import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+
+/**
+ * A holder that can be used during the load process to store information that is not part of the logical assembly
+ * model. This should be regarded as transient and references to this context should not be stored inside the model.
+ *
+ * @version $Rev: 519446 $ $Date: 2007-03-17 14:38:00 -0700 (Sat, 17 Mar 2007) $
+ */
+public class ContributionDeploymentContext extends AbstractDeploymentContext {
+ private final XMLInputFactory xmlFactory;
+ private final ScopeContainer scopeContainer;
+
+ /**
+ * Constructor defining properties of this context.
+ *
+ * @param classLoader the classloader for loading application resources
+ * @param scdlLocation the location of the SCDL defining this composite
+ * @param componentId the id of the component being deployed
+ * @param xmlFactory a factory that can be used to obtain an StAX XMLStreamReader
+ * @param scopeContainer the scope context representing this deployment's COMPOSITE scope
+ * @param autowire if autowire is enabled
+ */
+ public ContributionDeploymentContext(ClassLoader classLoader,
+ URL scdlLocation,
+ URI componentId,
+ XMLInputFactory xmlFactory,
+ ScopeContainer scopeContainer,
+ boolean autowire) {
+ super(classLoader, scdlLocation, componentId, autowire);
+ this.xmlFactory = xmlFactory;
+ this.scopeContainer = scopeContainer;
+ }
+
+ public DeploymentContext getParent() {
+ return null;
+ }
+
+ public XMLInputFactory getXmlFactory() {
+ return xmlFactory;
+ }
+
+ public ScopeContainer getCompositeScope() {
+ return scopeContainer;
+ }
+
+ public URI getGroupId() {
+ return getComponentId();
+ }
+}
Added: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/CompositeContributionProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/CompositeContributionProcessor.java?view=auto&rev=523421
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/CompositeContributionProcessor.java (added)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/CompositeContributionProcessor.java Wed Mar 28 10:25:03 2007
@@ -0,0 +1,111 @@
+/*
+ * 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.services.contribution.processor;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.URL;
+
+import javax.xml.stream.XMLInputFactory;
+
+import org.apache.tuscany.services.contribution.ContributionDeploymentContext;
+import org.apache.tuscany.services.contribution.model.ContentType;
+import org.apache.tuscany.services.contribution.model.Contribution;
+import org.apache.tuscany.services.spi.contribution.ContributionException;
+import org.apache.tuscany.services.spi.contribution.ContributionProcessor;
+import org.apache.tuscany.services.spi.contribution.extension.ContributionProcessorExtension;
+import org.apache.tuscany.spi.deployer.CompositeClassLoader;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+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.osoa.sca.annotations.Reference;
+
+public class CompositeContributionProcessor extends ContributionProcessorExtension implements ContributionProcessor {
+ /**
+ * Content-type that this processor can handle
+ */
+ public static final String CONTENT_TYPE = ContentType.COMPOSITE;
+
+ protected XMLInputFactory xmlFactory;
+ private final LoaderRegistry registry;
+
+
+ public CompositeContributionProcessor(@Reference LoaderRegistry registry) {
+ super();
+ this.registry = registry;
+ this.xmlFactory = XMLInputFactory.newInstance("javax.xml.stream.XMLInputFactory", getClass().getClassLoader());
+ }
+
+ @Override
+ public String getContentType() {
+ return CONTENT_TYPE;
+ }
+
+
+ public void processContent(Contribution contribution, URI artifactURI, InputStream inputStream)
+ throws ContributionException, IOException {
+ if (artifactURI == null) {
+ throw new IllegalArgumentException("Invalid null source uri.");
+ }
+
+ if (inputStream == null) {
+ throw new IllegalArgumentException("Invalid null source inputstream.");
+ }
+
+ try {
+ URI contributionId = contribution.getUri();
+ URL scdlLocation = contribution.getArtifact(artifactURI).getLocation();
+ CompositeClassLoader cl = new CompositeClassLoader(null, getClass().getClassLoader());
+ cl.addURL(contribution.getLocation());
+
+ DeploymentContext deploymentContext =
+ new ContributionDeploymentContext(cl, scdlLocation, contributionId, this.xmlFactory, null,
+ false);
+
+ CompositeComponentType componentType =
+ this.registry.load(null, scdlLocation, CompositeComponentType.class, deploymentContext);
+
+ CompositeImplementation implementation = new CompositeImplementation();
+ implementation.setComponentType(componentType);
+ ComponentDefinition<CompositeImplementation> componentDefinition =
+ new ComponentDefinition<CompositeImplementation>(implementation);
+
+ //FIXME this changed in trunk....
+ //componentDefinition.setName(componentType.getName());
+
+ contribution.getArtifact(artifactURI).addModelObject(CompositeComponentType.class, null, componentDefinition);
+
+ } catch (LoaderException le) {
+ throw new InvalidComponentDefinitionlException(contribution.getArtifact(artifactURI).getLocation()
+ .toExternalForm(), le);
+ }
+ }
+
+ public void processModel(Contribution contribution, URI source, Object modelObject) throws ContributionException,
+ IOException {
+ // TODO Auto-generated method stub
+
+ }
+
+}
\ No newline at end of file
Added: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/InvalidComponentDefinitionlException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/InvalidComponentDefinitionlException.java?view=auto&rev=523421
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/InvalidComponentDefinitionlException.java (added)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/InvalidComponentDefinitionlException.java Wed Mar 28 10:25:03 2007
@@ -0,0 +1,41 @@
+/*
+ * 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.services.contribution.processor;
+
+import org.apache.tuscany.services.spi.contribution.ContributionException;
+
+/**
+ * Exception that indicates that the supplied XML Document invalid.
+ *
+ */
+public class InvalidComponentDefinitionlException extends ContributionException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3691786552537932689L;
+
+ protected InvalidComponentDefinitionlException(String componentDefinitionLocatoin) {
+ super(componentDefinitionLocatoin);
+ }
+
+ protected InvalidComponentDefinitionlException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
Added: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/InvalidPojoComponentDefinitionlException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/InvalidPojoComponentDefinitionlException.java?view=auto&rev=523421
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/InvalidPojoComponentDefinitionlException.java (added)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/InvalidPojoComponentDefinitionlException.java Wed Mar 28 10:25:03 2007
@@ -0,0 +1,41 @@
+/*
+ * 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.services.contribution.processor;
+
+import org.apache.tuscany.services.spi.contribution.ContributionException;
+
+/**
+ * Exception that indicates that the supplied XML Document invalid.
+ *
+ */
+public class InvalidPojoComponentDefinitionlException extends ContributionException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 5404800960377566420L;
+
+ protected InvalidPojoComponentDefinitionlException(String componentDefinitionLocatoin) {
+ super(componentDefinitionLocatoin);
+ }
+
+ protected InvalidPojoComponentDefinitionlException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
Added: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/JavaContributionProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/JavaContributionProcessor.java?view=auto&rev=523421
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/JavaContributionProcessor.java (added)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/processor/JavaContributionProcessor.java Wed Mar 28 10:25:03 2007
@@ -0,0 +1,108 @@
+/*
+ * 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.services.contribution.processor;
+
+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.services.contribution.model.ContentType;
+import org.apache.tuscany.services.contribution.model.Contribution;
+import org.apache.tuscany.services.spi.contribution.ContributionException;
+import org.apache.tuscany.services.spi.contribution.ContributionProcessor;
+import org.apache.tuscany.services.spi.contribution.extension.ContributionProcessorExtension;
+import org.apache.tuscany.spi.deployer.CompositeClassLoader;
+import org.apache.tuscany.spi.implementation.java.IntrospectionRegistry;
+import org.apache.tuscany.spi.implementation.java.Introspector;
+import org.osoa.sca.annotations.Constructor;
+import org.osoa.sca.annotations.Reference;
+
+public class JavaContributionProcessor extends ContributionProcessorExtension implements ContributionProcessor {
+ /**
+ * Content-type that this processor can handle
+ */
+ public static final String CONTENT_TYPE = ContentType.JAVA;
+ /**
+ * Pojo introspector
+ */
+ private Introspector introspector;
+
+ @Constructor
+ public JavaContributionProcessor(@Reference IntrospectionRegistry introspector) {
+ //this.introspector = introspector;
+ }
+
+ @Override
+ public String getContentType() {
+ return CONTENT_TYPE;
+ }
+
+ 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 artifactURI, InputStream inputStream)
+ throws ContributionException, IOException {
+ if (artifactURI == null) {
+ throw new IllegalArgumentException("Invalid null artifact uri.");
+ }
+
+ if (inputStream == null) {
+ throw new IllegalArgumentException("Invalid null source inputstream.");
+ }
+
+ // TODO Auto-generated method stub
+
+ try {
+ CompositeClassLoader cl = new CompositeClassLoader(null, getClass().getClassLoader());
+ cl.addURL(contribution.getLocation());
+
+ String clazzName = getClazzName(contribution.getArtifact(artifactURI).getLocation());
+ System.out.println(clazzName);
+
+ Class clazz = cl.loadClass(clazzName);
+
+ //PojoComponentType javaInfo = introspector.introspect(null, clazz, null, null);
+
+ //contribution.getArtifact(artifactURI).addModelObject(PojoComponentType.class, null, javaInfo);
+
+ } catch (ClassNotFoundException cnfe) {
+ throw new InvalidPojoComponentDefinitionlException(contribution.getArtifact(artifactURI).getLocation().toExternalForm(), cnfe);
+ //} catch (ProcessingException pe) {
+ // throw new InvalidPojoComponentDefinitionlException(contribution.getArtifact(artifactURI).getLocation().toExternalForm(), pe);
+ }
+ }
+
+ public void processModel(Contribution contribution, URI source, Object modelObject)
+ throws ContributionException, IOException {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/resolver/ComponentDefinitionArtifactResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/resolver/ComponentDefinitionArtifactResolver.java?view=auto&rev=523421
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/resolver/ComponentDefinitionArtifactResolver.java (added)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/resolver/ComponentDefinitionArtifactResolver.java Wed Mar 28 10:25:03 2007
@@ -0,0 +1,68 @@
+/*
+ * 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.services.contribution.resolver;
+
+import java.net.URI;
+import java.net.URL;
+import java.util.Map;
+
+import org.apache.tuscany.services.contribution.model.Contribution;
+import org.apache.tuscany.services.contribution.model.DeployedArtifact;
+import org.apache.tuscany.services.spi.contribution.ArtifactResolver;
+import org.apache.tuscany.services.spi.contribution.ArtifactResolverRegistry;
+import org.apache.tuscany.services.spi.contribution.extension.ArtifactResolverExtension;
+import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.model.CompositeComponentType;
+import org.osoa.sca.annotations.Reference;
+
+public class ComponentDefinitionArtifactResolver extends ArtifactResolverExtension implements ArtifactResolver {
+
+ public ComponentDefinitionArtifactResolver(@Reference
+ ArtifactResolverRegistry registry) {
+ super(registry);
+ }
+
+ @Override
+ public Class<?> getType() {
+ return ComponentDefinition.class;
+ }
+
+ public <ComponentDefinition> ComponentDefinition resolve(Contribution contribution,
+ Class<ComponentDefinition> modelClass,
+ String namespace,
+ String name,
+ Map attributes/*,
+ DeploymentContext context*/) {
+
+ // generate artifact uri based on it's name
+ URI artifactURI = contribution.getUri().resolve(name);
+ DeployedArtifact artifact = contribution.getArtifact(artifactURI);
+
+ ComponentDefinition componentDefinition =
+ (ComponentDefinition)artifact.getModelObject(CompositeComponentType.class, null);
+ return componentDefinition;
+ }
+
+ public URL resolve(Contribution contribution, String targetNamespace, String location, String baseURI) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org