summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.3/itest/osgi-tuscany/tuscany-osgi-installer
diff options
context:
space:
mode:
authorlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2009-11-11 23:07:53 +0000
committerlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2009-11-11 23:07:53 +0000
commit89d72264d0af4c65c9bf0b7a6f823f13d69162aa (patch)
treef6a4ea43b576d56a43adf10ccbed4cd75a9eb827 /branches/sca-java-1.3/itest/osgi-tuscany/tuscany-osgi-installer
parent6a3ca6736c808c1647854e405ef379b609f276db (diff)
Moving 1.x branches
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835127 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-1.3/itest/osgi-tuscany/tuscany-osgi-installer')
-rw-r--r--branches/sca-java-1.3/itest/osgi-tuscany/tuscany-osgi-installer/pom.xml651
-rw-r--r--branches/sca-java-1.3/itest/osgi-tuscany/tuscany-osgi-installer/src/main/java/org/apache/tuscany/sca/installer/InstallerBundleActivator.java461
2 files changed, 0 insertions, 1112 deletions
diff --git a/branches/sca-java-1.3/itest/osgi-tuscany/tuscany-osgi-installer/pom.xml b/branches/sca-java-1.3/itest/osgi-tuscany/tuscany-osgi-installer/pom.xml
deleted file mode 100644
index 063a8821f7..0000000000
--- a/branches/sca-java-1.3/itest/osgi-tuscany/tuscany-osgi-installer/pom.xml
+++ /dev/null
@@ -1,651 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
-<project>
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-itest</artifactId>
- <version>1.3-SNAPSHOT</version>
- <relativePath>../../pom.xml</relativePath>
- </parent>
- <artifactId>itest-osgi-tuscany-installer</artifactId>
- <name>Apache Tuscany OSGi - Tuscany Installer Bundle</name>
-
- <properties>
- <maven.test.skip>true</maven.test.skip>
- <tuscany.version>${pom.version}</tuscany.version>
- </properties>
- <dependencies>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-assembly</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-assembly-xml</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-assembly-xsd</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-dwr</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-ejb-runtime</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-atom</artifactId>
- <version>${pom.version}</version>
- </dependency>
-<!--
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-atom-abdera</artifactId>
- <version>${pom.version}</version>
- </dependency>
--->
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-rss</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-rss-rome</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-http-runtime</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-jms</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.activemq</groupId>
- <artifactId>apache-activemq</artifactId>
- <version>4.1.1</version>
- <exclusions>
- <exclusion>
- <groupId>commons-httpclient</groupId>
- <artifactId>commons-httpclient</artifactId>
- </exclusion>
- <exclusion>
- <groupId>commons-fileupload</groupId>
- <artifactId>commons-fileupload</artifactId>
- </exclusion>
- <exclusion>
- <groupId>commons-beanutils</groupId>
- <artifactId>commons-beanutils</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-console</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-optional</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-web</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-web-demo</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-jaas</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-j2ee-jacc_1.0_spec</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jms_1.1_spec</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jsp_2.0_spec</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-j2ee-management_1.0_spec</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>servlet-api-2.5</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty-util</artifactId>
- </exclusion>
- <exclusion>
- <groupId>xerces</groupId>
- <artifactId>xercesImpl</artifactId>
- </exclusion>
- <exclusion>
- <groupId>backport-util-concurrent</groupId>
- <artifactId>backport-util-concurrent</artifactId>
- </exclusion>
- <exclusion>
- <groupId>activesoap</groupId>
- <artifactId>jaxp-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>activemq</groupId>
- <artifactId>jmdns</artifactId>
- </exclusion>
- <exclusion>
- <groupId>jrms</groupId>
- <artifactId>jrms</artifactId>
- </exclusion>
- <exclusion>
- <groupId>xerces</groupId>
- <artifactId>xmlParserAPIs</artifactId>
- </exclusion>
- <exclusion>
- <groupId>xstream</groupId>
- <artifactId>xstream</artifactId>
- </exclusion>
- <exclusion>
- <groupId>xmlpull</groupId>
- <artifactId>xmlpull</artifactId>
- </exclusion>
- <exclusion>
- <groupId>mx4j</groupId>
- <artifactId>mx4j</artifactId>
- </exclusion>
- <exclusion>
- <groupId>mx4j</groupId>
- <artifactId>mx4j-remote</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-jsonrpc-runtime</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-notification</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-rmi</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-sca</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-sca-axis2</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-sca-xml</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-ws</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-ws-axis2</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-binding-ws-xml</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-contribution</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-contribution-groovy</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-contribution-impl</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-contribution-java</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-contribution-namespace</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-core</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-core-databinding</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-core-spi</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-databinding</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-databinding-axiom</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-databinding-fastinfoset</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-databinding-jaxb</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-databinding-sdo</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-databinding-sdo-axiom</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-databinding-xmlbeans</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-host-embedded</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-host-http</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-host-rmi</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-host-webapp</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-host-jetty</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-interface</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-interface-java</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-interface-java-xml</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-interface-wsdl</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-interface-wsdl-xml</artifactId>
- <version>${pom.version}</version>
- </dependency>
-<!--
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-implementation-bpel</artifactId>
- <version>${pom.version}</version>
- <exclusions>
- <exclusion>
- <groupId>ant</groupId>
- <artifactId>ant</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
--->
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-implementation-ejb</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-implementation-ejb</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-implementation-java</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-implementation-java-xml</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-implementation-java-runtime</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-implementation-node</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-implementation-node-runtime</artifactId>
- <version>${pom.version}</version>
- <exclusions>
- <exclusion>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-host-tomcat</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-implementation-osgi</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-implementation-resource-runtime</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-implementation-script</artifactId>
- <version>${pom.version}</version>
- <exclusions>
- <exclusion>
- <groupId>groovy</groupId>
- <artifactId>groovy-all-minimal</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-implementation-spring</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-implementation-xquery</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-implementation-widget-runtime</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-node2-api</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-node2-impl</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-node2-launcher</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-policy</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-policy-logging</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-policy-security</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-policy-xml</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-definitions</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-workspace</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-domain-manager</artifactId>
- <version>${pom.version}</version>
- <exclusions>
- <exclusion>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-host-tomcat</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-workspace-impl</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-workspace-xml</artifactId>
- <version>${pom.version}</version>
- </dependency>
-<!--
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-java2wsdl</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-wsdl2java</artifactId>
- <version>${pom.version}</version>
- </dependency>
--->
- <dependency>
- <groupId>${pom.groupId}</groupId>
- <artifactId>tuscany-sca-api</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tuscany.sdo</groupId>
- <artifactId>tuscany-sdo-impl</artifactId>
- <version>1.1-incubating</version>
- <exclusions>
- <exclusion>
- <groupId>org.codehaus.woodstox</groupId>
- <artifactId>wstx-asl</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.tuscany.sdo</groupId>
- <artifactId>tuscany-sdo-tools</artifactId>
- <version>1.1-incubating</version>
- </dependency>
-
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- <version>2.1.6</version>
- <exclusions>
- <exclusion>
- <groupId>javax.xml.stream</groupId>
- <artifactId>stax-api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.1</version>
- </dependency>
- <dependency>
- <groupId>commons-cli</groupId>
- <artifactId>commons-cli</artifactId>
- <version>1.0</version>
- <exclusions>
- <exclusion>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.easymock</groupId>
- <artifactId>easymock</artifactId>
- <version>2.2</version>
- </dependency>
- </dependencies>
-
-
- <build>
-
- <plugins>
-
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <configuration>
- <cpFile>${project.build.directory}/classes/org/apache/tuscany/sca/installer/.classpath</cpFile>
- <includeScope>runtime</includeScope>
- </configuration>
- <executions>
- <execution>
- <id>build-classpath</id>
- <phase>compile</phase>
- <goals>
- <goal>build-classpath</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <configuration>
- <finalName>tuscany-sca-osgi-installer</finalName>
- <archive>
- <manifest>
- <addClasspath>true</addClasspath>
- </manifest>
- <manifestEntries>
-
- <Bundle-Version>2.0</Bundle-Version>
- <Bundle-SymbolicName>org.apache.tuscany.sca.installer</Bundle-SymbolicName>
- <Bundle-Description>${pom.name}</Bundle-Description>
- <Import-Package>org.osgi.framework</Import-Package>
- <Export-Package>org.apache.tuscany.sca.installer</Export-Package>
- <Bundle-Activator>org.apache.tuscany.sca.installer.InstallerBundleActivator</Bundle-Activator>
-kage>
- </manifestEntries>
- </archive>
- </configuration>
- </plugin>
-
- </plugins>
- </build>
-
-</project>
diff --git a/branches/sca-java-1.3/itest/osgi-tuscany/tuscany-osgi-installer/src/main/java/org/apache/tuscany/sca/installer/InstallerBundleActivator.java b/branches/sca-java-1.3/itest/osgi-tuscany/tuscany-osgi-installer/src/main/java/org/apache/tuscany/sca/installer/InstallerBundleActivator.java
deleted file mode 100644
index 2366acd094..0000000000
--- a/branches/sca-java-1.3/itest/osgi-tuscany/tuscany-osgi-installer/src/main/java/org/apache/tuscany/sca/installer/InstallerBundleActivator.java
+++ /dev/null
@@ -1,461 +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.installer;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.security.CodeSource;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.jar.Attributes;
-import java.util.jar.JarInputStream;
-import java.util.jar.JarOutputStream;
-import java.util.jar.Manifest;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.zip.ZipEntry;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-/**
- * Bundle activator which installs Tuscany modules and 3rd party jars into an OSGi runtime.
- *
- */
-public class InstallerBundleActivator implements BundleActivator {
-
- private static final String TUSCANY_INSTALLER_JAR = "tuscany-sca-osgi-installer.jar";
- private static final String TUSCANY_CLASSPATH = "org/apache/tuscany/sca/installer/.classpath";
-
- private static final String TUSCANY_OSGI_MANIFEST_DIR = "org/apache/tuscany/sca/manifest";
-
- private ArrayList<Bundle> tuscanyBundles = new ArrayList<Bundle>();
-
- private static final String[] immutableJars = {
- "bcprov"
- };
-
- private static final String[] tuscanyModulesToIgnore = {
- "node2-launcher-webapp",
- "implementation-node-runtime", // uses node2
- "saxon",
- "runtime",
- "runtime-webapp",
- "runtime-tomcat",
- "runtime-war",
- "host-webapp",
- "host-tomcat",
- "policy-transaction",
- "implementation-bpel",
- "binding-ejb",
- "implementation-ejb",
- "implementation-ejb-xml",
-
- };
-
- public void start(BundleContext bundleContext) throws Exception {
-
- installTuscanyIntoOSGi(bundleContext);
- }
-
- public void stop(BundleContext bundleContext) throws Exception {
-
- for (Bundle bundle : tuscanyBundles) {
- try {
- bundle.stop();
- } catch (Exception e) {
- // Ignore error
- }
- }
- }
-
- private void installTuscanyIntoOSGi(BundleContext bundleContext) {
-
- try {
- Bundle[] installedBundles = bundleContext.getBundles();
- HashSet<String> installedBundleSet = new HashSet<String>();
- for (Bundle bundle : installedBundles) {
- if (bundle.getSymbolicName() != null)
- installedBundleSet.add(bundle.getSymbolicName());
- }
-
- // FIXME: SDO bundles dont have the correct dependencies
- System.setProperty("commonj.sdo.impl.HelperProvider", "org.apache.tuscany.sdo.helper.HelperProviderImpl");
-
- HashSet<File> tuscanyJars = new HashSet<File>();
- HashMap<File, InputStream> thirdPartyJarsWithManifests = new HashMap<File, InputStream>();
- HashSet<File> thirdPartyJars = new HashSet<File>();
-
- findJars(bundleContext, tuscanyJars, thirdPartyJars, thirdPartyJarsWithManifests);
- File tuscanyInstallDir = findTuscanyInstallDir(bundleContext.getBundle());
-
- for (File bundleFile : thirdPartyJarsWithManifests.keySet()) {
-
- String bundleLocation = bundleFile.toURI().toURL().toString();
- InputStream bundleManifestStream = thirdPartyJarsWithManifests.get(bundleFile);
- HashSet<File> jarSet = new HashSet<File>();
- jarSet.add(bundleFile);
-
- File realBundleFile = new File(tuscanyInstallDir, "org.apache.tuscany.sca."+bundleFile.getName());
- if (realBundleFile.exists())
- bundleContext.installBundle(realBundleFile.toURI().toURL().toString());
- else
- createAndInstallBundle(bundleContext, bundleLocation, realBundleFile, bundleManifestStream, jarSet);
- bundleManifestStream.close();
-
- }
-
- for (File bundleFile : thirdPartyJars) {
-
- String bundleName = bundleFile.getName();
- if (bundleName.startsWith("org.apache.felix"))
- continue;
-
- String bundleSymbolicName = "org.apache.tuscany.sca.3rdparty." + bundleName;
- if (bundleSymbolicName.endsWith(".jar")) bundleSymbolicName = bundleSymbolicName.substring(0, bundleSymbolicName.length()-4);
- if (installedBundleSet.contains(bundleSymbolicName))
- continue;
-
- String bundleLocation = bundleFile.toURI().toURL().toString();
- InputStream bundleManifestStream = createBundleManifest(bundleFile, bundleSymbolicName);
- HashSet<File> jarSet = new HashSet<File>();
- jarSet.add(bundleFile);
-
- File realBundleFile = new File(tuscanyInstallDir, "org.apache.tuscany.sca."+bundleFile.getName());
- if (realBundleFile.exists())
- bundleContext.installBundle(realBundleFile.toURI().toURL().toString());
- else
- createAndInstallBundle(bundleContext, bundleLocation, realBundleFile, bundleManifestStream, jarSet);
- bundleManifestStream.close();
-
- }
-
- Bundle osgiRuntimeBundle = null;
- for (File bundleFile : tuscanyJars) {
- Bundle bundle = bundleContext.installBundle(bundleFile.toURI().toURL().toString());
- if ("org.apache.tuscany.sca.osgi.runtime".equals(bundle.getSymbolicName()))
- osgiRuntimeBundle = bundle;
- }
- if (osgiRuntimeBundle != null)
- osgiRuntimeBundle.start();
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private void findJars(BundleContext bundleContext,
- HashSet<File> tuscanyJars,
- HashSet<File> thirdPartyJars,
- HashMap<File, InputStream> thirdPartyBundleManifests)
- throws IOException
- {
-
- Bundle installerBundle = bundleContext.getBundle();
- File tuscanyInstallDir = findTuscanyInstallDir(installerBundle);
-
- URL classPathURL = installerBundle.getResource(TUSCANY_CLASSPATH);
- InputStream stream = classPathURL.openStream();
- byte[] classPathBytes = new byte[stream.available()];
- stream.read(classPathBytes);
- String classPath = new String(classPathBytes);
-
- // Path separator overrides are not supported by older versions of maven
- String pathSeparator = ":";
- if (classPath.indexOf(";") > 0) pathSeparator = ";";
-
- String[] classPathEntries = classPath.split(pathSeparator);
- for (String classPathEntry : classPathEntries) {
- classPathEntry = classPathEntry.trim();
- File jar = new File(classPathEntry);
- if (!jar.exists()) {
- jar = new File(tuscanyInstallDir, jar.getName());
- if (!jar.exists())
- jar = new File(tuscanyInstallDir, "modules" + File.separator + jar.getName());
- if (!jar.exists())
- jar = new File(tuscanyInstallDir, "lib" + File.separator + jar.getName());
- }
-
- String jarName = jar.getName();
- if (!jarName.startsWith("tuscany") || jarName.startsWith("tuscany-sdo") || jarName.startsWith("tuscany-das")) {
- if (jarName.endsWith(".jar")) {
- String manifestName = TUSCANY_OSGI_MANIFEST_DIR + "/" + jarName.substring(0, jarName.length()-4) + ".mf";
- InputStream manifestStream;
- if ((manifestStream = this.getClass().getClassLoader().getResourceAsStream(manifestName)) != null)
- thirdPartyBundleManifests.put(jar, manifestStream);
- else
- thirdPartyJars.add(jar);
- }
- } else {
- boolean installTuscanyJar = true;
- for (String name : tuscanyModulesToIgnore) {
- if (jarName.startsWith("tuscany-" + name)) {
- installTuscanyJar = false;
- break;
- }
- }
- if (installTuscanyJar)
- tuscanyJars.add(jar);
- }
- }
-
-
- }
-
- private File findTuscanyInstallDir(Bundle installerBundle)
- throws IOException
- {
- String tuscanyDirName;
- if ((tuscanyDirName = System.getenv("TUSCANY_HOME")) != null) {
- File tuscanyInstallDir = new File(tuscanyDirName);
- if (tuscanyInstallDir.exists() && tuscanyInstallDir.isDirectory())
- return tuscanyInstallDir;
- }
- if ((tuscanyDirName = System.getProperty("TUSCANY_HOME")) != null) {
- File tuscanyInstallDir = new File(tuscanyDirName);
- if (tuscanyInstallDir.exists() && tuscanyInstallDir.isDirectory())
- return tuscanyInstallDir;
- }
-
- String location = installerBundle.getLocation();
-
- if (location != null && location.startsWith("file:") && location.endsWith(TUSCANY_INSTALLER_JAR)) {
- tuscanyDirName = location.substring(5, location.length()-TUSCANY_INSTALLER_JAR.length()); // strip "file:" and installer jar name
- File tuscanyInstallDir = new File(tuscanyDirName);
- if (tuscanyInstallDir.exists() && tuscanyInstallDir.isDirectory())
- return tuscanyInstallDir;
- }
- if (this.getClass().getProtectionDomain() != null) {
- CodeSource codeSource = this.getClass().getProtectionDomain().getCodeSource();
- if (codeSource != null) {
- try {
- File tuscanyInstallDir = new File(codeSource.getLocation().toURI());
- if (tuscanyInstallDir.exists() && tuscanyInstallDir.isDirectory())
- return tuscanyInstallDir;
- } catch (Exception e) {
- // ignore
- }
- }
- }
- return null;
- }
-
- public Bundle createAndInstallBundle(BundleContext bundleContext,
- String bundleLocation,
- File bundleFile,
- InputStream manifestStream,
- final HashSet<File> thirdPartyJars) throws Exception {
-
- ByteArrayOutputStream out = new ByteArrayOutputStream();
-
- Manifest manifest = new Manifest();
- manifest.read(manifestStream);
-
- StringBuilder bundleClassPath = new StringBuilder(".");
- for (File jar : thirdPartyJars) {
- bundleClassPath.append(',');
- bundleClassPath.append(jar.getName());
- }
-
- if (thirdPartyJars.size() > 1)
- manifest.getMainAttributes().putValue("Bundle-ClassPath", bundleClassPath.toString());
-
- JarOutputStream jarOut = new JarOutputStream(out, manifest);
-
- String classpath = manifest.getMainAttributes().getValue("Bundle-ClassPath");
- boolean embed = classpath != null && !classpath.trim().equals(".");
- for (File jarFile : thirdPartyJars) {
- if (embed)
- addFileToJar(jarFile, jarOut);
- else {
- copyJar(jarFile, jarOut);
- }
- }
-
- jarOut.close();
- out.close();
-
- Bundle bundle;
- if (System.getenv("TUSCANY_OSGI_DEBUG") != null) {
- FileOutputStream fileOut = new FileOutputStream(bundleFile);
- fileOut.write(out.toByteArray());
- bundle = bundleContext.installBundle(bundleFile.toURL().toString());
-
- } else {
- ByteArrayInputStream inStream = new ByteArrayInputStream(out.toByteArray());
- bundle = bundleContext.installBundle(bundleLocation, inStream);
- inStream.close();
- }
- return bundle;
-
- }
-
- private void addFileToJar(File file, JarOutputStream jarOut) throws Exception {
-
- ZipEntry ze = new ZipEntry(file.getName());
-
- try {
- jarOut.putNextEntry(ze);
- FileInputStream inStream = new FileInputStream(file);
- byte[] fileContents = new byte[inStream.available()];
- inStream.read(fileContents);
- jarOut.write(fileContents);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
-
- private void copyJar(File file, JarOutputStream jarOut) throws Exception {
-
- try {
- JarInputStream jarIn = new JarInputStream(new FileInputStream(file));
- ZipEntry ze;
- byte[] readBuf = new byte[1000];
- int bytesRead;
- while ((ze = jarIn.getNextEntry()) != null) {
- if (ze.getName().equals("META-INF/MANIFEST.MF"))
- continue;
- jarOut.putNextEntry(ze);
- while ((bytesRead = jarIn.read(readBuf)) > 0) {
- jarOut.write(readBuf, 0, bytesRead);
- }
- }
- jarIn.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private InputStream createBundleManifest(File jarFile, String bundleSymbolicName) throws Exception {
-
- if (!jarFile.exists())
- return null;
- JarInputStream jar = new JarInputStream(new FileInputStream(jarFile));
- Manifest manifest = jar.getManifest();
- if (manifest == null)
- manifest = new Manifest();
-
- String bundleName = jarFile.getName();
- boolean isImmutableJar = false;
- for (String immutableJar : immutableJars) {
- if (bundleName.startsWith(immutableJar)) {
- isImmutableJar = true;
- break;
- }
- }
- Attributes attributes = manifest.getMainAttributes();
- if (attributes.getValue("Manifest-Version") == null) {
- attributes.putValue("Manifest-Version", "1.0");
- }
- if (isImmutableJar)
- attributes.putValue("Bundle-ClassPath", bundleName);
-
- HashSet<String> packages = getPackagesInJar(bundleName, jar);
- String version = getJarVersion(bundleName);
-
- attributes.remove(new Attributes.Name("Require-Bundle"));
- attributes.remove(new Attributes.Name("Import-Package"));
-
- if (attributes.getValue("Bundle-SymbolicName") == null)
- attributes.putValue("Bundle-SymbolicName", bundleSymbolicName);
- if (attributes.getValue("Bundle-Version") == null)
- attributes.putValue("Bundle-Version", version);
- // Existing export statements in bundles may contain versions, so they should be used as is
- // SDO exports are not sufficient, and should be changed
- if (attributes.getValue("Export-Package") == null || bundleName.startsWith("tuscany-sdo-impl")) {
- attributes.putValue("Export-Package", packagesToString(packages, version));
- attributes.putValue("Import-Package", packagesToString(packages, null));
- }
-
- attributes.putValue("DynamicImport-Package", "*");
-
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- manifest.write(out);
- ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
- out.close();
-
- return in;
-
- }
-
- private HashSet<String> getPackagesInJar(String bundleName, JarInputStream jar) throws Exception {
- HashSet<String> packages = new HashSet<String>();
- ZipEntry entry;
- while ((entry = jar.getNextEntry()) != null) {
- String entryName = entry.getName();
- if (!entry.isDirectory() && entryName != null && entryName.length() > 0 &&
- !entryName.startsWith(".") && !entryName.startsWith("META-INF") &&
- entryName.lastIndexOf("/") > 0) {
- String pkg = entryName.substring(0, entryName.lastIndexOf("/")).replace('/', '.');
- packages.add(pkg);
-
- }
- }
- // FIXME: Split package
- if (bundleName.startsWith("axis2-adb"))
- packages.remove("org.apache.axis2.util");
- else if (bundleName.startsWith("axis2-codegen")) {
- packages.remove("org.apache.axis2.wsdl");
- packages.remove("org.apache.axis2.wsdl.util");
- }
- else if (bundleName.startsWith("bsf-all"))
- packages.remove("org.mozilla.javascript");
-
- return packages;
- }
-
- private String packagesToString(HashSet<String> packages, String version) {
-
- StringBuilder pkgBuf = new StringBuilder();
- for (String pkg : packages) {
- if (pkgBuf.length() >0) pkgBuf.append(',');
- pkgBuf.append(pkg);
- if (version != null) {
- pkgBuf.append(";version=\"");
- pkgBuf.append(version);
- pkgBuf.append('\"');
- }
- }
- return pkgBuf.toString();
- }
-
- private String getJarVersion(String bundleName) {
- Pattern pattern = Pattern.compile("-([0-9.]+)");
- Matcher matcher = pattern.matcher(bundleName);
- String version = "1.0.0";
- if (matcher.find()) {
- version = matcher.group();
- if (version.endsWith("."))
- version = version.substring(1, version.length()-1);
- else
- version = version.substring(1);
- }
- return version;
- }
-
-}