You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/07/31 00:28:14 UTC
svn commit: r561159 - in /incubator/tuscany/java/sca:
itest/contribution-import-export/test-import-composite/src/test/java/helloworld/
modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/
modules/contribution-impl/...
Author: jsdelfino
Date: Mon Jul 30 15:28:12 2007
New Revision: 561159
URL: http://svn.apache.org/viewvc?view=rev&rev=561159
Log:
Added support for contribution listeners to allow a listener to be notified of contribution adds/removes/updates and connect SCA imports to exports or perform any other necessary post processing of the contributions.
Added:
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessor.java
- copied, changed from r561076, incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessorImpl.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionListener.java (with props)
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionListenerExtensionPoint.java (with props)
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java (with props)
Removed:
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessorImpl.java
Modified:
incubator/tuscany/java/sca/itest/contribution-import-export/test-import-composite/src/test/java/helloworld/HelloWorldServerTestCase.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ImportAllModelResolverImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionRepositoryImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionRepositoryTestCase.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ContributionPostProcessor.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ContributionPostProcessorExtensionPoint.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultContributionPostProcessorExtensionPoint.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionRepository.java
incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
Modified: incubator/tuscany/java/sca/itest/contribution-import-export/test-import-composite/src/test/java/helloworld/HelloWorldServerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution-import-export/test-import-composite/src/test/java/helloworld/HelloWorldServerTestCase.java?view=diff&rev=561159&r1=561158&r2=561159
==============================================================================
--- incubator/tuscany/java/sca/itest/contribution-import-export/test-import-composite/src/test/java/helloworld/HelloWorldServerTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/contribution-import-export/test-import-composite/src/test/java/helloworld/HelloWorldServerTestCase.java Mon Jul 30 15:28:12 2007
@@ -87,8 +87,8 @@
ContributionService contributionService = domain.getContributionService();
// Remove the contribution from the in-memory repository
+ contributionService.remove("http://import-export/contrib-composite");
contributionService.remove("http://import-export/helloworld");
- contributionService.remove("http://import-export/contrib-wsdl");
//Stop Components from my composite
domain.getDomainCompositeHelper().stopComponent(domain.getDomainCompositeHelper().getComponent("HelloWorldServiceComponent"));
Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ImportAllModelResolverImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ImportAllModelResolverImpl.java?view=diff&rev=561159&r1=561158&r2=561159
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ImportAllModelResolverImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ImportAllModelResolverImpl.java Mon Jul 30 15:28:12 2007
@@ -19,7 +19,7 @@
package org.apache.tuscany.sca.contribution.resolver.impl;
-import java.util.Collection;
+import java.util.List;
import org.apache.tuscany.sca.contribution.Contribution;
import org.apache.tuscany.sca.contribution.Export;
@@ -34,9 +34,9 @@
public class ImportAllModelResolverImpl implements ModelResolver {
private Import import_;
- private Collection<Contribution> contributions;
+ private List<Contribution> contributions;
- public ImportAllModelResolverImpl(Import import_, Collection<Contribution> contributions) {
+ public ImportAllModelResolverImpl(Import import_, List<Contribution> contributions) {
this.import_ = import_;
this.contributions = contributions;
}
Copied: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessor.java (from r561076, incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessorImpl.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessor.java?view=diff&rev=561159&p1=incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessorImpl.java&r1=561076&p2=incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessor.java&r2=561159
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessorImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessor.java Mon Jul 30 15:28:12 2007
@@ -34,7 +34,6 @@
import org.apache.tuscany.sca.contribution.Contribution;
import org.apache.tuscany.sca.contribution.ContributionFactory;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.service.ContributionMetadataDocumentProcessor;
import org.apache.tuscany.sca.contribution.service.ContributionReadException;
/**
@@ -42,14 +41,14 @@
*
* @version $Rev$ $Date$
*/
-public class ContributionMetadataDocumentProcessorImpl implements ContributionMetadataDocumentProcessor {
+public class ContributionMetadataDocumentProcessor {
protected final URLClassLoader classLoader;
protected final StAXArtifactProcessor staxProcessor;
protected final AssemblyFactory assemblyFactory;
protected final ContributionFactory contributionFactory;
protected final XMLInputFactory inputFactory;
- public ContributionMetadataDocumentProcessorImpl(URLClassLoader classLoader, StAXArtifactProcessor staxProcessor, AssemblyFactory assemblyFactory, ContributionFactory contributionFactory, XMLInputFactory inputFactory) {
+ public ContributionMetadataDocumentProcessor(URLClassLoader classLoader, StAXArtifactProcessor staxProcessor, AssemblyFactory assemblyFactory, ContributionFactory contributionFactory, XMLInputFactory inputFactory) {
super();
this.classLoader = classLoader;
this.staxProcessor = staxProcessor;
Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionRepositoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionRepositoryImpl.java?view=diff&rev=561159&r1=561158&r2=561159
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionRepositoryImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionRepositoryImpl.java Mon Jul 30 15:28:12 2007
@@ -36,6 +36,7 @@
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -44,7 +45,10 @@
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamReader;
+import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.contribution.service.ContributionListenerExtensionPoint;
import org.apache.tuscany.sca.contribution.service.ContributionRepository;
+import org.apache.tuscany.sca.contribution.service.ContributionListener;
import org.apache.tuscany.sca.contribution.service.util.FileHelper;
import org.apache.tuscany.sca.contribution.service.util.IOHelper;
@@ -57,7 +61,11 @@
private static final String NS = "http://tuscany.apache.org/xmlns/1.0-SNAPSHOT";
private static final String DOMAIN_INDEX_FILENAME = "sca-domain.xml";
private final File rootFile;
- private Map<String, String> contributionMap = new HashMap<String, String>();
+ private Map<String, String> contributionLocations = new HashMap<String, String>();
+
+ private Map<String, Contribution> contributionMap = new HashMap<String, Contribution>();
+ private List<Contribution> contributions = new ArrayList<Contribution>();
+ private ContributionListenerExtensionPoint listeners;
private URI domain;
private XMLInputFactory factory;
@@ -67,7 +75,7 @@
*
* @param repository
*/
- public ContributionRepositoryImpl(final String repository) throws IOException {
+ public ContributionRepositoryImpl(ContributionListenerExtensionPoint listeners, final String repository) throws IOException {
String root = repository;
if (repository == null) {
root = AccessController.doPrivileged(new PrivilegedAction<String>() {
@@ -86,6 +94,8 @@
throw new IOException("The root is not a directory: " + repository);
}
factory = XMLInputFactory.newInstance("javax.xml.stream.XMLInputFactory", getClass().getClassLoader());
+
+ this.listeners = listeners;
}
public URI getDomain() {
@@ -135,7 +145,7 @@
// add contribution to repositoryContent
URL contributionURL = location.toURL();
URI relative = rootFile.toURI().relativize(location.toURI());
- contributionMap.put(contribution, relative.toString());
+ contributionLocations.put(contribution, relative.toString());
saveMap();
return contributionURL;
@@ -159,7 +169,7 @@
// add contribution to repositoryContent
URI relative = rootFile.toURI().relativize(location.toURI());
- contributionMap.put(contribution, relative.toString());
+ contributionLocations.put(contribution, relative.toString());
saveMap();
return location.toURL();
@@ -169,7 +179,7 @@
if (contribution == null) {
return null;
}
- String location = contributionMap.get(contribution);
+ String location = contributionLocations.get(contribution);
if (location == null) {
return null;
}
@@ -187,7 +197,7 @@
// remove
try {
FileHelper.forceDelete(FileHelper.toFile(contributionURL));
- this.contributionMap.remove(contribution);
+ this.contributionLocations.remove(contribution);
saveMap();
} catch (IOException ioe) {
// handle file could not be removed
@@ -196,7 +206,7 @@
}
public List<String> list() {
- return new ArrayList<String>(contributionMap.keySet());
+ return new ArrayList<String>(contributionLocations.keySet());
}
public void init() {
@@ -225,7 +235,7 @@
if ("contribution".equals(name)) {
String uri = reader.getAttributeValue(null, "uri");
String location = reader.getAttributeValue(null, "location");
- contributionMap.put(uri, location);
+ contributionLocations.put(uri, location);
}
break;
default:
@@ -248,7 +258,7 @@
PrintWriter writer = new PrintWriter(new OutputStreamWriter(os, "UTF-8"));
writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
writer.println("<domain uri=\"" + getDomain() + "\" xmlns=\"" + NS + "\">");
- for (Map.Entry<String, String> e : contributionMap.entrySet()) {
+ for (Map.Entry<String, String> e : contributionLocations.entrySet()) {
writer.println(" <contribution uri=\"" + e.getKey() + "\" location=\"" + e.getValue() + "\"/>");
}
writer.println("</domain>");
@@ -262,5 +272,39 @@
public void destroy() {
}
-
+
+ public void addContribution(Contribution contribution) {
+ contributionMap.put(contribution.getURI(), contribution);
+ contributions.add(contribution);
+ for (ContributionListener listener: listeners.getContributionListeners()) {
+ listener.contributionAdded(this, contribution);
+ }
+ }
+
+ public void removeContribution(Contribution contribution) {
+ contributionMap.remove(contribution.getURI());
+ contributions.remove(contribution);
+ for (ContributionListener listener: listeners.getContributionListeners()) {
+ listener.contributionRemoved(this, contribution);
+ }
+ }
+
+ public void updateContribution(Contribution contribution) {
+ Contribution oldContribution = contributionMap.remove(contribution.getURI());
+ contributions.remove(oldContribution);
+ contributionMap.put(contribution.getURI(), contribution);
+ contributions.add(contribution);
+ for (ContributionListener listener: listeners.getContributionListeners()) {
+ listener.contributionUpdated(this, oldContribution, contribution);
+ }
+ }
+
+ public Contribution getContribution(String uri) {
+ return contributionMap.get(uri);
+ }
+
+ public List<Contribution> getContributions() {
+ return Collections.unmodifiableList(contributions);
+ }
+
}
Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java?view=diff&rev=561159&r1=561158&r2=561159
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java Mon Jul 30 15:28:12 2007
@@ -26,8 +26,6 @@
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
@@ -52,7 +50,6 @@
import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint;
import org.apache.tuscany.sca.contribution.resolver.impl.ImportAllModelResolverImpl;
import org.apache.tuscany.sca.contribution.service.ContributionException;
-import org.apache.tuscany.sca.contribution.service.ContributionMetadataDocumentProcessor;
import org.apache.tuscany.sca.contribution.service.ContributionRepository;
import org.apache.tuscany.sca.contribution.service.ContributionService;
import org.apache.tuscany.sca.contribution.service.util.IOHelper;
@@ -116,11 +113,6 @@
private ContributionFactory contributionFactory;
- /**
- * Contribution registry This is a registry of processed Contributions indexed by URI
- */
- private Map<String, Contribution> contributionRegistry = new ConcurrentHashMap<String, Contribution>();
-
public ContributionServiceImpl(ContributionRepository repository,
PackageProcessor packageProcessor,
URLArtifactProcessor documentProcessor,
@@ -178,12 +170,13 @@
return addContribution(contributionURI, sourceURL, input, modelResolver, true);
}
- public Contribution getContribution(String id) {
- return this.contributionRegistry.get(id);
+ public Contribution getContribution(String uri) {
+ return this.contributionRepository.getContribution(uri);
}
- public void remove(String contribution) throws ContributionException {
- this.contributionRegistry.remove(contribution);
+ public void remove(String uri) throws ContributionException {
+ Contribution contribution = contributionRepository.getContribution(uri);
+ this.contributionRepository.removeContribution(contribution);
}
public void addDeploymentComposite(Contribution contribution, Composite composite) throws ContributionException {
@@ -216,7 +209,7 @@
ContributionMetadataDocumentProcessor metadataDocumentProcessor =
- new ContributionMetadataDocumentProcessorImpl(cl, this.staxProcessor, this.assemblyFactory, this.contributionFactory, this.xmlFactory);
+ new ContributionMetadataDocumentProcessor(cl, this.staxProcessor, this.assemblyFactory, this.contributionFactory, this.xmlFactory);
contributionMetadata = contributionFactory.createContribution();
try {
metadataDocumentProcessor.read(contributionMetadata);
@@ -290,7 +283,7 @@
// Find a matching contribution
if (namespaceImport.getLocation() != null) {
- Contribution targetContribution = contributionRegistry.get(namespaceImport.getLocation());
+ Contribution targetContribution = contributionRepository.getContribution(namespaceImport.getLocation());
if (targetContribution != null) {
// Find a matching contribution export
@@ -311,7 +304,7 @@
//Find a matching contribution
if(javaImport.getLocation() != null) {
- Contribution targetContribution = contributionRegistry.get(javaImport.getLocation());
+ Contribution targetContribution = contributionRepository.getContribution(javaImport.getLocation());
if (targetContribution != null) {
// Find a matching contribution export
@@ -332,7 +325,7 @@
//if no location was specified, try to resolve with any contribution
if( !initialized ) {
// Use a resolver that will consider all contributions
- import_.setModelResolver(new ImportAllModelResolverImpl(import_, contributionRegistry.values()));
+ import_.setModelResolver(new ImportAllModelResolverImpl(import_, contributionRepository.getContributions()));
}
}
@@ -379,7 +372,7 @@
this.postProcessor.visit(contribution);
// store the contribution on the registry
- this.contributionRegistry.put(contribution.getURI(), contribution);
+ this.contributionRepository.addContribution(contribution);
return contribution;
}
Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionRepositoryTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionRepositoryTestCase.java?view=diff&rev=561159&r1=561158&r2=561159
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionRepositoryTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionRepositoryTestCase.java Mon Jul 30 15:28:12 2007
@@ -25,6 +25,7 @@
import junit.framework.TestCase;
+import org.apache.tuscany.sca.contribution.service.DefaultContributionListenerExtensionPoint;
import org.apache.tuscany.sca.contribution.service.impl.ContributionRepositoryImpl;
import org.apache.tuscany.sca.contribution.service.util.FileHelper;
@@ -34,7 +35,7 @@
protected void setUp() throws Exception {
super.setUp();
// create repository (this should re-create the root directory)
- this.repository = new ContributionRepositoryImpl("target/repository/");
+ this.repository = new ContributionRepositoryImpl(new DefaultContributionListenerExtensionPoint(), "target/repository/");
repository.init();
}
Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ContributionPostProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ContributionPostProcessor.java?view=diff&rev=561159&r1=561158&r2=561159
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ContributionPostProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ContributionPostProcessor.java Mon Jul 30 15:28:12 2007
@@ -23,6 +23,7 @@
/**
* A processor invoked after the contribution is loaded
+ * @deprecated Please use ContributionListener instead
*
* @version $Rev$ $Date$
*/
Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ContributionPostProcessorExtensionPoint.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ContributionPostProcessorExtensionPoint.java?view=diff&rev=561159&r1=561158&r2=561159
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ContributionPostProcessorExtensionPoint.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ContributionPostProcessorExtensionPoint.java Mon Jul 30 15:28:12 2007
@@ -23,6 +23,7 @@
/**
* An extension point for contribution post processor extensions.
+ * @deprecated Please use ContributionListenerExtensionPoint instead
*
* @version $Rev$ $Date$
*/
Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultContributionPostProcessorExtensionPoint.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultContributionPostProcessorExtensionPoint.java?view=diff&rev=561159&r1=561158&r2=561159
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultContributionPostProcessorExtensionPoint.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultContributionPostProcessorExtensionPoint.java Mon Jul 30 15:28:12 2007
@@ -24,6 +24,7 @@
/**
* Default implementation of ContributionPostProcessor Extension Point
+ * @deprecated Please use DefaultContributionListenerExtensionPoint instead
*
* @version $Rev$ $Date$
*/
Added: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionListener.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionListener.java?view=auto&rev=561159
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionListener.java (added)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionListener.java Mon Jul 30 15:28:12 2007
@@ -0,0 +1,58 @@
+/*
+ * 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.sca.contribution.service;
+
+import java.util.EventListener;
+
+import org.apache.tuscany.sca.contribution.Contribution;
+
+/**
+ * A listener interface used to listen to contribution repository events.
+ *
+ * @version $Rev$ $Date$
+ */
+public interface ContributionListener extends EventListener {
+
+ /**
+ * Notifies the listener that a contribution has been added.
+ *
+ * @param repository The contribution repository
+ * @param contribution The new contribution
+ */
+ void contributionAdded(ContributionRepository repository, Contribution contribution);
+
+ /**
+ * Notifies the listener that a contribution has been removed.
+ *
+ * @param repository The contribution repository
+ * @param contribution The removed contribution.
+ */
+ void contributionRemoved(ContributionRepository repository, Contribution contribution);
+
+ /**
+ * Notifies the listener that a contribution has been updated.
+ *
+ * @param repository The contribution repository
+ * @param oldContribution The old contribution
+ * @param contribution The new contribution
+ */
+ void contributionUpdated(ContributionRepository repository, Contribution oldContribution, Contribution contribution);
+
+}
Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionListener.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionListener.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionListenerExtensionPoint.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionListenerExtensionPoint.java?view=auto&rev=561159
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionListenerExtensionPoint.java (added)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionListenerExtensionPoint.java Mon Jul 30 15:28:12 2007
@@ -0,0 +1,44 @@
+/*
+ * 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.sca.contribution.service;
+
+import java.util.List;
+
+public interface ContributionListenerExtensionPoint {
+
+ /**
+ * Adds a contribution repository listener extension.
+ * @param listener The listener to add
+ */
+ void addContributionListener(ContributionListener listener);
+
+ /**
+ * Removes a contribution repository listener extension.
+ * @param listener The listener to remove
+ */
+ void removeContributionListener(ContributionListener listener);
+
+ /**
+ * Returns the contribution repository listeners.
+ * @return
+ */
+ List<ContributionListener> getContributionListeners();
+
+}
Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionListenerExtensionPoint.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionListenerExtensionPoint.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java?view=diff&rev=561159&r1=561158&r2=561159
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java Mon Jul 30 15:28:12 2007
@@ -25,6 +25,7 @@
/**
* Document processor responsible to process the contribution metadata
+ * @deprecated
*
* @version $Rev$ $Date$
*/
Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionRepository.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionRepository.java?view=diff&rev=561159&r1=561158&r2=561159
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionRepository.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionRepository.java Mon Jul 30 15:28:12 2007
@@ -25,12 +25,15 @@
import java.net.URL;
import java.util.List;
+import org.apache.tuscany.sca.contribution.Contribution;
+
/**
* Contribution repository
*
* @version $Rev$ $Date$
*/
public interface ContributionRepository {
+
/**
* Get the URI of the SCA domain
*
@@ -90,4 +93,36 @@
* @return A list of contribution URIs
*/
List<String> list();
+
+ /**
+ * Returns the contributions available in the repository.
+ * @return The list of contributions.
+ */
+ List<Contribution> getContributions();
+
+ /**
+ * Adds a contribution to the repository.
+ * @param contribution The new contribution.
+ */
+ void addContribution(Contribution contribution);
+
+ /**
+ * Removes a contribution from the repository.
+ * @param contribution The contribution to remove
+ */
+ void removeContribution(Contribution contribution);
+
+ /**
+ * Updates a contribution in the repository
+ * @param contribution The contribution to update
+ */
+ void updateContribution(Contribution contribution);
+
+ /**
+ * Returns the contribution with the given URI.
+ * @param uri the URI of the contribution
+ * @return The contribution
+ */
+ Contribution getContribution(String uri);
+
}
Added: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java?view=auto&rev=561159
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java (added)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java Mon Jul 30 15:28:12 2007
@@ -0,0 +1,46 @@
+/*
+ * 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.sca.contribution.service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Default implementation of a contribution listener extension point.
+ *
+ * @version $Rev$ $Date$
+ */
+public class DefaultContributionListenerExtensionPoint implements ContributionListenerExtensionPoint {
+
+ private List<ContributionListener> listeners = new ArrayList<ContributionListener>();
+
+ public void addContributionListener(ContributionListener listener) {
+ listeners.add(listener);
+ }
+
+ public List<ContributionListener> getContributionListeners() {
+ return listeners;
+ }
+
+ public void removeContributionListener(ContributionListener listener) {
+ listeners.remove(listener);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/DefaultContributionListenerExtensionPoint.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java?view=diff&rev=561159&r1=561158&r2=561159
==============================================================================
--- incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java Mon Jul 30 15:28:12 2007
@@ -54,8 +54,10 @@
import org.apache.tuscany.sca.contribution.resolver.ClassReference;
import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolverExtensionPoint;
import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint;
+import org.apache.tuscany.sca.contribution.service.ContributionListenerExtensionPoint;
import org.apache.tuscany.sca.contribution.service.ContributionRepository;
import org.apache.tuscany.sca.contribution.service.ContributionService;
+import org.apache.tuscany.sca.contribution.service.DefaultContributionListenerExtensionPoint;
import org.apache.tuscany.sca.contribution.service.impl.ContributionMetadataProcessor;
import org.apache.tuscany.sca.contribution.service.impl.ContributionRepositoryImpl;
import org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl;
@@ -137,16 +139,21 @@
modelResolverExtensionPoint.addResolver(Composite.class, CompositeModelResolver.class);
modelResolverExtensionPoint.addResolver(ConstrainingType.class, ConstrainingTypeModelResolver.class);
modelResolverExtensionPoint.addResolver(ClassReference.class, ClassReferenceModelResolver.class);
-
+
+ //FIXME Deprecate and remove this
//Create contribution postProcessor extension point
DefaultContributionPostProcessorExtensionPoint contributionPostProcessors = new DefaultContributionPostProcessorExtensionPoint();
ContributionPostProcessor postProcessor = new ExtensibleContributionPostProcessor(contributionPostProcessors);
registry.addExtensionPoint(contributionPostProcessors);
+ // Create contribution listener extension point
+ ContributionListenerExtensionPoint contributionListeners = new DefaultContributionListenerExtensionPoint();
+ registry.addExtensionPoint(contributionListeners);
+
// Create a contribution repository
ContributionRepository repository;
try {
- repository = new ContributionRepositoryImpl("target");
+ repository = new ContributionRepositoryImpl(contributionListeners, "target");
} catch (IOException e) {
throw new ActivationException(e);
}
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java?view=diff&rev=561159&r1=561158&r2=561159
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java Mon Jul 30 15:28:12 2007
@@ -71,8 +71,10 @@
import org.apache.tuscany.sca.contribution.resolver.ClassReference;
import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolverExtensionPoint;
import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint;
+import org.apache.tuscany.sca.contribution.service.ContributionListenerExtensionPoint;
import org.apache.tuscany.sca.contribution.service.ContributionRepository;
import org.apache.tuscany.sca.contribution.service.ContributionService;
+import org.apache.tuscany.sca.contribution.service.DefaultContributionListenerExtensionPoint;
import org.apache.tuscany.sca.contribution.service.TypeDescriber;
import org.apache.tuscany.sca.contribution.service.impl.ContributionMetadataProcessor;
import org.apache.tuscany.sca.contribution.service.impl.ContributionRepositoryImpl;
@@ -219,15 +221,20 @@
modelResolverExtensionPoint.addResolver(ConstrainingType.class, ConstrainingTypeModelResolver.class);
modelResolverExtensionPoint.addResolver(ClassReference.class, ClassReferenceModelResolver.class);
+ //FIXME Deprecate and remove this
//Create contribution postProcessor extension point
DefaultContributionPostProcessorExtensionPoint contributionPostProcessors = new DefaultContributionPostProcessorExtensionPoint();
ContributionPostProcessor postProcessor = new ExtensibleContributionPostProcessor(contributionPostProcessors);
registry.addExtensionPoint(contributionPostProcessors);
+ // Create contribution listener extension point
+ ContributionListenerExtensionPoint contributionListeners = new DefaultContributionListenerExtensionPoint();
+ registry.addExtensionPoint(contributionListeners);
+
// Create a contribution repository
ContributionRepository repository;
try {
- repository = new ContributionRepositoryImpl("target");
+ repository = new ContributionRepositoryImpl(contributionListeners, "target");
} catch (IOException e) {
throw new ActivationException(e);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org