summaryrefslogtreecommitdiffstats
path: root/branches/sca-android/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/processor/impl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--branches/sca-android/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/DexContributionProcessor.java124
-rw-r--r--branches/sca-android/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/FolderContributionProcessor.java156
-rw-r--r--branches/sca-android/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/JarContributionProcessor.java123
3 files changed, 0 insertions, 403 deletions
diff --git a/branches/sca-android/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/DexContributionProcessor.java b/branches/sca-android/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/DexContributionProcessor.java
deleted file mode 100644
index 83c209180d..0000000000
--- a/branches/sca-android/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/DexContributionProcessor.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package org.apache.tuscany.sca.contribution.processor.impl;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.FactoryConfigurationError;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-
-import org.apache.tuscany.sca.android.DexResource;
-import org.apache.tuscany.sca.contribution.processor.PackageProcessor;
-import org.apache.tuscany.sca.contribution.service.ContributionException;
-
-public class DexContributionProcessor implements PackageProcessor {
-
- public URL getArtifactURL(URL packageSourceURL, URI artifact)
- throws MalformedURLException {
- return new URL(artifact.toString());
- }
-
- public List<URI> getArtifacts(URL packageSourceURL, InputStream inputStream)
- throws ContributionException, IOException {
-
- ArrayList<URI> uris = new ArrayList<URI>();
- DexResource res = new DexResource(packageSourceURL);
-
- URI[] contentFiles = res.getContentFiles();
-
- for (URI uri : contentFiles) {
- String fileName = DexResource.getFile(uri.getPath());
- URL url = uri.toURL();
-
- if (fileName != null) {
-
- if (fileName.endsWith("_composite")) {
-
- url.openConnection();
- try {
- XMLStreamReader r = XMLInputFactory.newInstance()
- .createXMLStreamReader(url.openStream());
-
- while (r.hasNext()) {
-
- if (r.isStartElement()) {
- QName name = r.getName();
-
- if ("implementation.java".equals(name
- .getLocalPart())) {
- int attributeCount = r.getAttributeCount();
-
- for (int i = 0; i < attributeCount; i++) {
-
- if (r.getAttributeLocalName(i).equals(
- "class")) {
- StringBuffer sb = new StringBuffer(
- "dex://");
- sb.append(
- r.getAttributeValue(i)
- .replace('.', '/'))
- .append(".class");
-
- try {
- uris
- .add(new URI(sb
- .toString()));
- } catch (URISyntaxException e) {
- }
-
- break;
-
- }
-
- }
-
- }
-
- }
-
- r.next();
-
- }
-
- } catch (XMLStreamException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (FactoryConfigurationError e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
-
- StringBuffer sb = new StringBuffer("dex://");
- sb.append(url.getHost()).append(url.getPath());
- sb.delete(sb.length() - 10, sb.length()).append(
- ".composite");
-
- try {
- uris.add(new URI(sb.toString()));
- } catch (URISyntaxException e) {
- continue;
- }
-
- }
-
- }
-
- }
-
- return uris;
-
- }
-
- public String getPackageType() {
- return "application/x-dex";
- }
-
-}
diff --git a/branches/sca-android/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/FolderContributionProcessor.java b/branches/sca-android/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/FolderContributionProcessor.java
deleted file mode 100644
index 6793855efc..0000000000
--- a/branches/sca-android/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/FolderContributionProcessor.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * 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.processor.impl;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tuscany.sca.contribution.PackageType;
-import org.apache.tuscany.sca.contribution.processor.PackageProcessor;
-import org.apache.tuscany.sca.contribution.service.ContributionException;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-
-/**
- * Folder contribution package processor.
- *
- * @version $Rev: 641645 $ $Date: 2008-03-26 15:37:28 -0800 (Wed, 26 Mar 2008) $
- */
-public class FolderContributionProcessor implements PackageProcessor {
-
- public FolderContributionProcessor() {
- }
-
- public String getPackageType() {
- return PackageType.FOLDER;
- }
-
- /**
- * Recursively traverse a root directory
- *
- * @param fileList
- * @param file
- * @param root
- * @throws IOException
- */
- private static void traverse(List<URI> fileList, final File file, final File root) throws IOException {
- // Allow privileged access to test file. Requires FilePermissions in security policy file.
- Boolean isFile = AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
- public Boolean run() {
- return file.isFile();
- }
- });
- if (isFile) {
- fileList.add(AccessController.doPrivileged(new PrivilegedAction<URI>() {
- public URI run() {
- return root.toURI().relativize(file.toURI());
- }
- }));
- } else {
- // Allow privileged access to test file. Requires FilePermissions in security policy
- // file.
- Boolean isDirectory = AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
- public Boolean run() {
- return file.isDirectory();
- }
- });
- if (isDirectory) {
- String uri = AccessController.doPrivileged(new PrivilegedAction<URI>() {
- public URI run() {
- return root.toURI().relativize(file.toURI());
- }
- }).toString();
-
- if (uri.endsWith("/")) {
- uri = uri.substring(0, uri.length() - 1);
- }
- fileList.add(URI.create(uri));
-
- // Allow privileged access to list files. Requires FilePermission in security
- // policy.
- File[] files = AccessController.doPrivileged(new PrivilegedAction<File[]>() {
- public File[] run() {
- return file.listFiles();
- }
- });
- for (File f : files) {
- if (!f.getName().startsWith(".")) {
- traverse(fileList, f, root);
- }
- }
- }
- }
- }
-
- public URL getArtifactURL(URL sourceURL, URI artifact) throws MalformedURLException {
- return new URL(sourceURL, artifact.toString());
- }
-
- public List<URI> getArtifacts(URL packageSourceURL, InputStream inputStream) throws ContributionException,
- IOException {
- if (packageSourceURL == null) {
- throw new IllegalArgumentException("Invalid null package source URL.");
- }
-
- List<URI> artifacts = new ArrayList<URI>();
-
- try {
- // Assume the root is a jar file
- final File rootFolder = new File(packageSourceURL.toURI());
- // Allow privileged access to test file. Requires FilePermissions in security policy
- // file.
- Boolean isDirectory = AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
- public Boolean run() {
- return rootFolder.isDirectory();
- }
- });
- if (isDirectory) {
- // Allow privileged access to test file. Requires FilePermissions in security policy
- // file.
- Boolean folderExists = AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
- public Boolean run() {
- return rootFolder.exists();
- }
- });
- if (!folderExists) {
- throw new ContributionReadException(rootFolder.getAbsolutePath());
- }
-
- // Security consideration. This method gathers URIs of enclosed
- // artifacts. The URIs are protected by the policy when a user
- // yries to open those URLs.
- traverse(artifacts, rootFolder, rootFolder);
- }
-
- } catch (URISyntaxException e) {
- throw new ContributionReadException(packageSourceURL.toExternalForm(), e);
- }
-
- return artifacts;
- }
-}
diff --git a/branches/sca-android/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/JarContributionProcessor.java b/branches/sca-android/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/JarContributionProcessor.java
deleted file mode 100644
index 785f31c72a..0000000000
--- a/branches/sca-android/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/JarContributionProcessor.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * 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.processor.impl;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.jar.JarEntry;
-import java.util.jar.JarInputStream;
-
-import org.apache.tuscany.sca.contribution.PackageType;
-import org.apache.tuscany.sca.contribution.processor.PackageProcessor;
-import org.apache.tuscany.sca.contribution.service.ContributionException;
-
-/**
- * Jar Contribution package processor.
- *
- * @version $Rev: 616194 $ $Date: 2008-01-28 23:49:21 -0800 (Mon, 28 Jan 2008) $
- */
-public class JarContributionProcessor implements PackageProcessor {
-
- public JarContributionProcessor() {
- }
-
- public String getPackageType() {
- return PackageType.JAR;
- }
-
- public URL getArtifactURL(URL sourceURL, URI artifact) throws MalformedURLException {
- if (sourceURL.toString().startsWith("jar:")) {
- return new URL(sourceURL, artifact.toString());
- } else {
- return new URL("jar:" + sourceURL.toExternalForm() + "!/" + artifact);
- }
- }
-
- public List<URI> getArtifacts(URL packageSourceURL, InputStream inputStream) throws ContributionException,
- IOException {
- if (packageSourceURL == null) {
- throw new IllegalArgumentException("Invalid null package source URL.");
- }
-
- if (inputStream == null) {
- throw new IllegalArgumentException("Invalid null source inputstream.");
- }
-
- // Assume the root is a jar file
- JarInputStream jar = new JarInputStream(inputStream);
- try {
- Set<String> names = new HashSet<String>();
- while (true) {
- JarEntry entry = jar.getNextJarEntry();
- if (entry == null) {
- // EOF
- break;
- }
-
- // FIXME: Maybe we should externalize the filter as a property
- String name = entry.getName();
- if (!name.startsWith(".")) {
-
- // 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<URI> artifacts = new ArrayList<URI>();
- for (String name: names) {
- artifacts.add(URI.create(name));
- }
- return artifacts;
-
- } finally {
- jar.close();
- }
- }
-}