Author: jsdelfino
Date: Thu Feb 28 00:34:05 2008
New Revision: 631891
URL: http://svn.apache.org/viewvc?rev=631891&view=rev
Log:
Improved and simplified the contribution scanners. Integrated the support for
determining contribution dependencies in the admin app.
Modified:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/ContributionScanner.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/DefaultContributionScannerExtensionPoint.java
incubator/tuscany/java/sca/modules/workspace-admin/pom.xml
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionFileServiceImpl.java
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/WorkspaceCollectionImpl.java
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/Admin.composite
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/workspace.html
incubator/tuscany/java/sca/modules/workspace-admin/src/test/java/org/apache/tuscany/sca/workspace/admin/impl/AdminTestCase.java
incubator/tuscany/java/sca/modules/workspace-impl/pom.xml
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/dependency/impl/ContributionDependencyAnalyzer.java
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/DirectoryContributionScanner.java
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/JarContributionScanner.java
incubator/tuscany/java/sca/modules/workspace-xml/pom.xml
incubator/tuscany/java/sca/modules/workspace/pom.xml
Modified:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/ContributionScanner.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/ContributionScanner.java?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/ContributionScanner.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/ContributionScanner.java
Thu Feb 28 00:34:05 2008
@@ -19,11 +19,10 @@
package org.apache.tuscany.sca.contribution.scanner;
import java.io.IOException;
-import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
-import org.apache.tuscany.sca.contribution.service.ContributionException;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
/**
* Interface for contribution package scanners
@@ -50,7 +49,7 @@
* @throws ContributionException
* @throws IOException
*/
- List<String> getArtifacts(URL contributionURL) throws
ContributionException, IOException;
+ List<String> getArtifacts(URL contributionURL) throws
ContributionReadException;
/**
* Return the URL for an artifact in the contribution.
@@ -62,6 +61,6 @@
* @param artifact The relative URI for the artifact
* @return The artifact URL
*/
- URL getArtifactURL(URL packageSourceURL, String artifact) throws
MalformedURLException;
+ URL getArtifactURL(URL contributionURL, String artifact) throws
ContributionReadException;
}
Modified:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/DefaultContributionScannerExtensionPoint.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/DefaultContributionScannerExtensionPoint.java?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/DefaultContributionScannerExtensionPoint.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/DefaultContributionScannerExtensionPoint.java
Thu Feb 28 00:34:05 2008
@@ -29,6 +29,7 @@
import java.util.Set;
import org.apache.tuscany.sca.contribution.service.ContributionException;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
import org.apache.tuscany.sca.contribution.util.ServiceDeclaration;
import org.apache.tuscany.sca.contribution.util.ServiceDiscovery;
@@ -98,11 +99,11 @@
this.contributionType = contributionType;
}
- public URL getArtifactURL(URL contributionSourceURL, String artifact)
throws MalformedURLException {
+ public URL getArtifactURL(URL contributionSourceURL, String artifact)
throws ContributionReadException {
return getScanner().getArtifactURL(contributionSourceURL,
artifact);
}
- public List<String> getArtifacts(URL contributionSourceURL) throws
ContributionException, IOException {
+ public List<String> getArtifacts(URL contributionSourceURL) throws
ContributionReadException {
return getScanner().getArtifacts(contributionSourceURL);
}
Modified: incubator/tuscany/java/sca/modules/workspace-admin/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/pom.xml?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/pom.xml Thu Feb 28
00:34:05 2008
@@ -26,7 +26,7 @@
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>tuscany-workspace-admin</artifactId>
- <name>Apache Tuscany SCA Contribution Workspace Administration
Application</name>
+ <name>Apache Tuscany SCA Workspace Administration</name>
<dependencies>
<dependency>
Modified:
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java
(original)
+++
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java
Thu Feb 28 00:34:05 2008
@@ -100,7 +100,7 @@
// Read domain.composite
compositeProcessor = new CompositeProcessor(contributionFactory,
assemblyFactory, policyFactory, contractMapper, null);
- File file = new File(URI.create(compositeFileName));
+ File file = new File(compositeFileName);
if (file.exists()) {
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
FileInputStream is = new FileInputStream(file);
@@ -220,7 +220,7 @@
format.setIndent(2);
// Write to domain.composite
- FileOutputStream os = new FileOutputStream(new
File(URI.create(compositeFileName)));
+ FileOutputStream os = new FileOutputStream(new
File(compositeFileName));
XMLSerializer serializer = new XMLSerializer(os, format);
serializer.serialize(document);
Modified:
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionFileServiceImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionFileServiceImpl.java?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionFileServiceImpl.java
(original)
+++
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionFileServiceImpl.java
Thu Feb 28 00:34:05 2008
@@ -23,7 +23,6 @@
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
-import java.net.URI;
import java.util.List;
import javax.servlet.ServletException;
@@ -61,7 +60,7 @@
public void initialize() throws IOException {
upload = new ServletFileUpload(new DiskFileItemFactory());
- files = new File(URI.create(directoryName));
+ files = new File(directoryName);
if (!files.exists()) {
files.mkdirs();
}
Modified:
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/WorkspaceCollectionImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/WorkspaceCollectionImpl.java?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/WorkspaceCollectionImpl.java
(original)
+++
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/WorkspaceCollectionImpl.java
Thu Feb 28 00:34:05 2008
@@ -117,8 +117,7 @@
contributionProcessor = new
ContributionInfoProcessor(contributionFactory, metadataDocumentProcessor);
// Read workspace.xml
- URI uri = URI.create(workspaceFileName);
- File file = new File(uri);
+ File file = new File(workspaceFileName);
if (file.exists()) {
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
FileInputStream is = new FileInputStream(file);
@@ -216,7 +215,7 @@
URI uri = URI.create(c.getURI());
URL url;
try {
- url = new URL(c.getLocation());
+ url = url(c.getLocation());
} catch (MalformedURLException e) {
throw new ServiceRuntimeException();
}
@@ -231,8 +230,9 @@
// Calculate the contribution dependencies
String key = queryString.substring(11);
- for (Contribution contribution: workspace.getContributions()) {
+ for (Contribution contribution:
dependencyWorkspace.getContributions()) {
if (key.equals(contribution.getURI())) {
+ entries.add(entry(contribution));
ContributionDependencyAnalyzer analyzer = new
ContributionDependencyAnalyzer();
Set<Contribution> dependencies =
analyzer.calculateContributionDependencies(dependencyWorkspace, contribution);
@@ -241,6 +241,7 @@
for (Contribution dependency: dependencies) {
entries.add(entry(dependency));
}
+ break;
}
}
@@ -250,6 +251,16 @@
throw new UnsupportedOperationException();
}
}
+
+ private URL url(String location) throws MalformedURLException {
+ URI uri = URI.create(location);
+ if (uri.getScheme() == null) {
+ File file = new File(location);
+ return file.toURI().toURL();
+ } else {
+ return uri.toURL();
+ }
+ }
/**
* Returns an entry representing a contribution
@@ -284,8 +295,7 @@
format.setIndent(2);
// Write to workspace.xml
- URI uri = URI.create(workspaceFileName);
- FileOutputStream os = new FileOutputStream(new File(uri));
+ FileOutputStream os = new FileOutputStream(new
File(workspaceFileName));
XMLSerializer serializer = new XMLSerializer(os, format);
serializer.serialize(document);
Modified:
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/Admin.composite
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/Admin.composite?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/Admin.composite
(original)
+++
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/Admin.composite
Thu Feb 28 00:34:05 2008
@@ -64,7 +64,7 @@
<component name="WorkspaceCollectionComponent">
<implementation.java
class="org.apache.tuscany.sca.workspace.admin.impl.WorkspaceCollectionImpl"/>
- <property name="workspaceFileName">workspace</property>
+ <property name="workspaceFileName">workspace.xml</property>
<service name="WorkspaceCollection">
<t:binding.atom uri="http://localhost:9990/workspace"/>
</service>
@@ -88,7 +88,7 @@
<component name="DomainCompositeCollectionComponent">
<implementation.java
class="org.apache.tuscany.sca.workspace.admin.impl.CompositeCollectionImpl"/>
- <property name="compositeFileName">domain</property>
+ <property name="compositeFileName">domain.composite</property>
<service name="CompositeCollection">
<t:binding.atom uri="http://localhost:9990/composite"/>
</service>
@@ -96,7 +96,7 @@
<component name="CloudCollectionComponent">
<implementation.java
class="org.apache.tuscany.sca.workspace.admin.impl.CompositeCollectionImpl"/>
- <property name="compositeFileName">cloud</property>
+ <property name="compositeFileName">cloud.composite</property>
<service name="CompositeCollection">
<t:binding.atom uri="http://localhost:9990/cloud"/>
</service>
Modified:
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html
(original)
+++
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html
Thu Feb 28 00:34:05 2008
@@ -35,11 +35,11 @@
if (feed != null) {
var entries = feed.getElementsByTagName("entry");
var composites = "";
- composites += '<table border="0">';
+ composites += '<table border="0" valign="bottom">';
for (var i=0; i<entries.length; i++) {
var id =
entries[i].getElementsByTagName("id")[0].firstChild.nodeValue;
var location =
entries[i].getElementsByTagName("link")[0].getAttribute("href");
- composites += '<tr>'
+ composites += '<tr valign="bottom">'
composites += '<td><input name="composites"
type="checkbox" value="' + id + '">' +
'<a href=\"' + location + '\">' + id + '</a></td>';
composites += '</tr>';
Modified:
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html
(original)
+++
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html
Thu Feb 28 00:34:05 2008
@@ -39,7 +39,7 @@
for (var i=0; i<entries.length; i++) {
var id =
entries[i].getElementsByTagName("id")[0].firstChild.nodeValue;
var location =
entries[i].getElementsByTagName("link")[0].getAttribute("href");
- composites += '<tr>'
+ composites += '<tr valign="bottom">'
composites += '<td><input name="composites"
type="checkbox" value="' + id + '">' +
'<a href=\"' + location + '\">' + id + '</a></td>';
composites += '</tr>';
Modified:
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/workspace.html
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/workspace.html?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/workspace.html
(original)
+++
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/workspace.html
Thu Feb 28 00:34:05 2008
@@ -39,7 +39,7 @@
for (var i=0; i<entries.length; i++) {
var id =
entries[i].getElementsByTagName("id")[0].firstChild.nodeValue;
var location =
entries[i].getElementsByTagName("link")[0].getAttribute("href");
- contributions += '<tr>'
+ contributions += '<tr valign="bottom">'
contributions += '<td><input
name="contributions" type="checkbox" value="' + id + '">' +
'<a href=\"' + location + '\">' + id + '</a></td>';
contributions += '<td> <a
href=\"/workspace/?importedBy=' + id + '\">dependencies</a></td>';
@@ -100,7 +100,7 @@
<b>Add Contribution</b>
<form name="newContributionForm">
- <table border="0">
+ <table border="0" >
<tr><td>Contribution URI:</td><td><input type="text" name="contributionID"
/></td></tr>
<tr><td>Address:</td><td><input type="text" name="contributionLocation"
/></td></tr>
</table>
Modified:
incubator/tuscany/java/sca/modules/workspace-admin/src/test/java/org/apache/tuscany/sca/workspace/admin/impl/AdminTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/test/java/org/apache/tuscany/sca/workspace/admin/impl/AdminTestCase.java?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/workspace-admin/src/test/java/org/apache/tuscany/sca/workspace/admin/impl/AdminTestCase.java
(original)
+++
incubator/tuscany/java/sca/modules/workspace-admin/src/test/java/org/apache/tuscany/sca/workspace/admin/impl/AdminTestCase.java
Thu Feb 28 00:34:05 2008
@@ -59,7 +59,7 @@
// Create a workspace collection component
workspaceCollection = new WorkspaceCollectionImpl();
- workspaceCollection.workspaceFileName = url.toString();
+ workspaceCollection.workspaceFileName = url.getFile();
workspaceCollection.init();
// Populate the workspace with test data
@@ -81,11 +81,15 @@
assertTrue(item.getLink().endsWith("contributions/assets"));
}
- public void testQuery() {
+ public void testQuery1() {
Entry<String, Item>[] entries =
workspaceCollection.query("importedBy=store");
- for (Entry<String, Item> entry: entries) {
- System.out.println(entry.getKey());
- }
+ assertEquals(2, entries.length);
+ }
+
+ public void testQuery2() {
+ Entry<String, Item>[] entries =
workspaceCollection.query("importedBy=assets");
+ assertEquals(1, entries.length);
+ assertEquals("assets", entries[0].getKey());
}
}
Modified: incubator/tuscany/java/sca/modules/workspace-impl/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-impl/pom.xml?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-impl/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/workspace-impl/pom.xml Thu Feb 28
00:34:05 2008
@@ -26,7 +26,7 @@
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>tuscany-workspace-impl</artifactId>
- <name>Apache Tuscany SCA Contribution Workspace Implementation</name>
+ <name>Apache Tuscany SCA Workspace Implementation</name>
<dependencies>
<dependency>
Modified:
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/dependency/impl/ContributionDependencyAnalyzer.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/dependency/impl/ContributionDependencyAnalyzer.java?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/dependency/impl/ContributionDependencyAnalyzer.java
(original)
+++
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/dependency/impl/ContributionDependencyAnalyzer.java
Thu Feb 28 00:34:05 2008
@@ -51,6 +51,7 @@
Set<Contribution> dependencies = new HashSet<Contribution>();
addContributionDependencies(workspace, contribution, dependencies);
+ dependencies.remove(contribution);
return dependencies;
}
Modified:
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java
(original)
+++
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java
Thu Feb 28 00:34:05 2008
@@ -18,17 +18,20 @@
*/
package org.apache.tuscany.sca.workspace.processor.impl;
+import java.io.File;
import java.net.URI;
import java.net.URL;
-import java.net.URLClassLoader;
import org.apache.tuscany.sca.contribution.Contribution;
import org.apache.tuscany.sca.contribution.ContributionFactory;
import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.contribution.scanner.ContributionScanner;
import org.apache.tuscany.sca.contribution.service.ContributionReadException;
import
org.apache.tuscany.sca.contribution.service.ContributionResolveException;
import
org.apache.tuscany.sca.contribution.xml.ContributionMetadataDocumentProcessor;
+import
org.apache.tuscany.sca.workspace.scanner.impl.DirectoryContributionScanner;
+import org.apache.tuscany.sca.workspace.scanner.impl.JarContributionScanner;
/**
* URLArtifactProcessor that handles contribution files and returns a
contribution
@@ -60,12 +63,19 @@
contribution.setURI(contributionURI.toString());
contribution.setUnresolved(true);
+ // Create a contribution scanner
+ ContributionScanner scanner;
+ if ("file".equals(contributionURL.getProtocol()) && new
File(contributionURL.getFile()).isDirectory()) {
+ scanner = new DirectoryContributionScanner();
+ } else {
+ scanner = new JarContributionScanner();
+ }
+
// Read generated and user sca-contribution.xml files
- URLClassLoader cl = new URLClassLoader(new URL[]{contributionURL},
null);
for (String path: new String[]{
Contribution.SCA_CONTRIBUTION_GENERATED_META,
Contribution.SCA_CONTRIBUTION_META}) {
- URL url = cl.getResource(path);
+ URL url = scanner.getArtifactURL(contributionURL, path);
if (url != null) {
Contribution c = metadataProcessor.read(contributionURL,
URI.create(path), url);
contribution.getImports().addAll(c.getImports());
Modified:
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/DirectoryContributionScanner.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/DirectoryContributionScanner.java?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/DirectoryContributionScanner.java
(original)
+++
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/DirectoryContributionScanner.java
Thu Feb 28 00:34:05 2008
@@ -28,7 +28,6 @@
import java.util.List;
import org.apache.tuscany.sca.contribution.scanner.ContributionScanner;
-import org.apache.tuscany.sca.contribution.service.ContributionException;
import org.apache.tuscany.sca.contribution.service.ContributionReadException;
/**
@@ -45,34 +44,28 @@
return "application/vnd.tuscany.folder";
}
- public URL getArtifactURL(URL sourceURL, String artifact) throws
MalformedURLException {
- return new URL(sourceURL, artifact);
- }
-
- public List<String> getArtifacts(URL packageSourceURL) throws
ContributionException,
- IOException {
- if (packageSourceURL == null) {
- throw new IllegalArgumentException("Invalid null package source
URL.");
+ public URL getArtifactURL(URL contributionURL, String artifact) throws
ContributionReadException {
+ File directory = directory(contributionURL);
+ File file = new File(directory, artifact);
+ if (file.exists()) {
+ try {
+ return file.toURI().toURL();
+ } catch (MalformedURLException e) {
+ throw new ContributionReadException(e);
+ }
+ } else {
+ return null;
}
+ }
+ public List<String> getArtifacts(URL contributionURL) throws
ContributionReadException {
+ File directory = directory(contributionURL);
List<String> artifacts = new ArrayList<String>();
-
- // Assume the root is a directory
- File rootFolder;
-
try {
- rootFolder = new File(packageSourceURL.toURI());
- } catch (URISyntaxException e) {
- throw new ContributionException(e);
+ traverse(artifacts, directory, directory);
+ } catch (IOException e) {
+ throw new ContributionReadException(e);
}
- if (rootFolder.isDirectory()) {
- if (!rootFolder.exists()) {
- throw new
ContributionReadException(rootFolder.getAbsolutePath());
- }
-
- traverse(artifacts, rootFolder, rootFolder);
- }
-
return artifacts;
}
@@ -102,5 +95,17 @@
}
}
}
-
+
+ private static File directory(URL url) throws ContributionReadException {
+ File file;
+ try {
+ file = new File(url.toURI());
+ } catch (URISyntaxException e) {
+ throw new ContributionReadException(e);
+ }
+ if (!file.exists() || !file.isDirectory()) {
+ throw new ContributionReadException(url.toString());
+ }
+ return file;
+ }
}
Modified:
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/JarContributionScanner.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/JarContributionScanner.java?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/JarContributionScanner.java
(original)
+++
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/JarContributionScanner.java
Thu Feb 28 00:34:05 2008
@@ -20,6 +20,7 @@
package org.apache.tuscany.sca.workspace.scanner.impl;
import java.io.IOException;
+import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
@@ -30,7 +31,7 @@
import java.util.jar.JarInputStream;
import org.apache.tuscany.sca.contribution.scanner.ContributionScanner;
-import org.apache.tuscany.sca.contribution.service.ContributionException;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
/**
* JAR Contribution processor.
@@ -46,63 +47,79 @@
return "application/x-compressed";
}
- public URL getArtifactURL(URL sourceURL, String artifact) throws
MalformedURLException {
- if (sourceURL.toString().startsWith("jar:")) {
- return new URL(sourceURL, artifact.toString());
- } else {
- return new URL("jar:" + sourceURL.toExternalForm() + "!/" +
artifact);
+ public URL getArtifactURL(URL contributionURL, String artifact) throws
ContributionReadException {
+ try {
+ URL url;
+ if (contributionURL.toString().startsWith("jar:")) {
+ url = new URL(contributionURL, artifact.toString());
+ } else {
+ url = new URL("jar:" + contributionURL.toExternalForm() + "!/"
+ artifact);
+ }
+ try {
+ InputStream is = url.openStream();
+ is.close();
+ } catch (IOException e) {
+ return null;
+ }
+ return url;
+ } catch (MalformedURLException e) {
+ throw new ContributionReadException(e);
}
}
- public List<String> getArtifacts(URL contributionURL) throws
ContributionException, IOException {
+ public List<String> getArtifacts(URL contributionURL) throws
ContributionReadException {
- // Assume the root is a jar file
- JarInputStream jar = new JarInputStream(contributionURL.openStream());
+ // Assume the URL references a JAR file
try {
- Set<String> names = new HashSet<String>();
- while (true) {
- JarEntry entry = jar.getNextJarEntry();
- if (entry == null) {
- // EOF
- break;
- }
-
- String name = entry.getName();
- if (!name.startsWith(".")) {
-
- // Trim trailing /
- if (name.endsWith("/")) {
- name = name.substring(0, name.length() - 1);
+ JarInputStream jar = new
JarInputStream(contributionURL.openStream());
+ try {
+ Set<String> names = new HashSet<String>();
+ while (true) {
+ JarEntry entry = jar.getNextJarEntry();
+ if (entry == null) {
+ // EOF
+ break;
}
- // Add the entry name
- if (!names.contains(name)) {
- names.add(name);
+ String name = entry.getName();
+ if (!name.startsWith(".")) {
- // Add parent folder names to the list too
- for (;;) {
- int s = name.lastIndexOf('/');
- if (s == -1) {
- name = "";
- } else {
- name = name.substring(0, s);
- }
- if (!names.contains(name)) {
- names.add(name);
- } else {
- break;
+ // Trim trailing /
+ if (name.endsWith("/")) {
+ name = name.substring(0, name.length() - 1);
+ }
+
+ // Add the entry name
+ if (!names.contains(name)) {
+ names.add(name);
+
+ // Add parent folder names to the list too
+ for (;;) {
+ int s = name.lastIndexOf('/');
+ if (s == -1) {
+ name = "";
+ } else {
+ name = name.substring(0, s);
+ }
+ if (!names.contains(name)) {
+ names.add(name);
+ } else {
+ break;
+ }
}
}
}
}
+
+ // Return list of URIs
+ List<String> artifacts = new ArrayList<String>(names);
+ return artifacts;
+
+ } finally {
+ jar.close();
}
-
- // Return list of URIs
- List<String> artifacts = new ArrayList<String>(names);
- return artifacts;
-
- } finally {
- jar.close();
+ } catch (IOException e) {
+ throw new ContributionReadException(e);
}
}
}
Modified: incubator/tuscany/java/sca/modules/workspace-xml/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-xml/pom.xml?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-xml/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/workspace-xml/pom.xml Thu Feb 28
00:34:05 2008
@@ -26,7 +26,7 @@
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>tuscany-workspace-xml</artifactId>
- <name>Apache Tuscany SCA XML Contribution Workspace Model</name>
+ <name>Apache Tuscany SCA XML Workspace Model</name>
<dependencies>
<dependency>
Modified: incubator/tuscany/java/sca/modules/workspace/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace/pom.xml?rev=631891&r1=631890&r2=631891&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/workspace/pom.xml Thu Feb 28 00:34:05
2008
@@ -26,7 +26,7 @@
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>tuscany-workspace</artifactId>
- <name>Apache Tuscany SCA Contribution Workspace Model</name>
+ <name>Apache Tuscany SCA Workspace Model</name>
<dependencies>
<dependency>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]