Author: thomas.diesler(a)jboss.com
Date: 2010-04-01 10:43:57 -0400 (Thu, 01 Apr 2010)
New Revision: 103435
Added:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/bundle/pom.xml
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/bundle/src/test/java/org/jboss/test/osgi/classloader/DynamicImportPackageTestCase.java
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/pom.xml
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/deployers/AbstractClassLoadingDeployer.java
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/plugins/internal/FrameworkEventsPluginImpl.java
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/metadata/pom.xml
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/pom.xml
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/vfs21/pom.xml
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/vfs30/pom.xml
Removed:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/bundle/pom.xml
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/bundle/src/test/java/org/jboss/test/osgi/classloader/DynamicImportPackageTestCase.java
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/pom.xml
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/deployers/AbstractClassLoadingDeployer.java
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/plugins/internal/FrameworkEventsPluginImpl.java
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/metadata/pom.xml
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/pom.xml
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/vfs21/pom.xml
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/vfs30/pom.xml
Log:
[maven-release-plugin] copy for tag jboss-osgi-framework-1.0.0.Alpha4
Copied:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4
(from rev 103420, projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4)
Deleted:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/bundle/pom.xml
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/bundle/pom.xml 2010-04-01
12:33:35 UTC (rev 103420)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/bundle/pom.xml 2010-04-01
14:43:57 UTC (rev 103435)
@@ -1,470 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- ====================================================================== -->
-<!-- -->
-<!-- JBoss, the OpenSource J2EE webOS -->
-<!-- -->
-<!-- Distributable under LGPL license. -->
-<!-- See terms of license at
http://www.gnu.org. -->
-<!-- -->
-<!-- ====================================================================== -->
-
-<!-- $Id$ -->
-
-<!--
- Set these VM properties in your IDE debugger
-
- -Dlog4j.output.dir=${workspace_loc:jboss-osgi-framework/target}
- -Dlog4j.configuration=log4j-console.xml
--->
-
-<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <name>JBossOSGi Framework - Bundle</name>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework</artifactId>
- <packaging>jar</packaging>
-
- <parent>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework-parent</artifactId>
- <version>1.0.0.Alpha5-SNAPSHOT</version>
- </parent>
-
- <!-- Properties -->
- <properties>
- <surefire.jpda.args />
- <surefire.system.args>-Xmx512m
${surefire.jpda.args}</surefire.system.args>
- </properties>
-
- <!-- Dependencies -->
- <dependencies>
- <dependency>
- <groupId>biz.aQute</groupId>
- <artifactId>bnd</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.kernel</groupId>
- <artifactId>jboss-jmx-aop-mc-int</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.kernel</groupId>
- <artifactId>jboss-jmx-mc-int</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.logging</groupId>
- <artifactId>jboss-logging-log4j</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <!-- Test bundles dependencies -->
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.configadmin</artifactId>
- <scope>provided</scope>
- <exclusions>
- <exclusion>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.osgi.core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.osgi.compendium</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.log</artifactId>
- <scope>provided</scope>
- <exclusions>
- <exclusion>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.osgi.core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.osgi.compendium</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.metatype</artifactId>
- <scope>provided</scope>
- <exclusions>
- <exclusion>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.osgi.core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.osgi.compendium</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.bundles</groupId>
- <artifactId>jboss-osgi-apache-xerces</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.bundles</groupId>
- <artifactId>jboss-osgi-common</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.bundles</groupId>
- <artifactId>jboss-osgi-common-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.bundles</groupId>
- <artifactId>jboss-osgi-husky</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.bundles</groupId>
- <artifactId>jboss-osgi-jaxb</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.jmx</groupId>
- <artifactId>jboss-osgi-jmx</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.jndi</groupId>
- <artifactId>jboss-osgi-jndi</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.bundles</groupId>
- <artifactId>jboss-osgi-reflect</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.bundles</groupId>
- <artifactId>jboss-osgi-xml-binding</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.ops4j.pax.web</groupId>
- <artifactId>pax-web-jetty-bundle</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <!-- Test Dependencies -->
- <dependency>
- <groupId>org.jboss.test</groupId>
- <artifactId>jboss-test</artifactId>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-common-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.jboss.logging</groupId>
- <artifactId>jboss-logging-spi</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- </dependencies>
-
- <build>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- </resource>
- </resources>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <executions>
- <execution>
- <id>bundles</id>
- <phase>test-compile</phase>
- <goals>
- <goal>directory-single</goal>
- </goals>
- <configuration>
- <finalName>test-libs</finalName>
- <ignoreDirFormatExtensions>true</ignoreDirFormatExtensions>
- <appendAssemblyId>false</appendAssemblyId>
- <descriptors>
- <descriptor>scripts/assembly-bundles.xml</descriptor>
- </descriptors>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <id>build-test-jars</id>
- <phase>test-compile</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <property name="maven.runtime.classpath"
refid="maven.runtime.classpath" />
- <property name="tests.output.dir"
value="${project.build.directory}" />
- <ant antfile="scripts/antrun-test-jars.xml" />
- </tasks>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <configuration>
- <archive>
-
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
- </archive>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <argLine>${surefire.system.args}</argLine>
- <systemProperties>
- <property>
- <name>log4j.output.dir</name>
- <value>${project.build.directory}</value>
- </property>
- <property>
- <name>org.jboss.osgi.framework.launch.bootstrapPath</name>
- <value>bootstrap/jboss-osgi-bootstrap.xml</value>
- </property>
- <property>
- <name>jboss.osgi.framework.properties</name>
- <value>${jboss.osgi.framework.properties}</value>
- </property>
- <property>
- <name>test.archive.directory</name>
- <value>${project.build.directory}/test-libs</value>
- </property>
- </systemProperties>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <profiles>
-
- <!--
- Name: all
- Desc: Build the aggregated framework jar
- -->
- <profile>
- <id>all</id>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.2-beta-5</version>
- <executions>
- <execution>
- <id>all</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- <configuration>
- <descriptors>
- <descriptor>scripts/assembly-all.xml</descriptor>
- </descriptors>
- <archive>
-
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
- </archive>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
-
- <!--
- Name: framework-equinox
- Descr: Setup for Equinox framework integration testing
- -->
- <profile>
- <id>framework-equinox</id>
- <activation>
- <property>
- <name>frwk</name>
- <value>equinox</value>
- </property>
- </activation>
- <properties>
-
<jboss.osgi.framework.properties>jboss-osgi-equinox.properties</jboss.osgi.framework.properties>
- </properties>
- <dependencies>
- <dependency>
- <groupId>org.jboss.osgi.equinox</groupId>
- <artifactId>jboss-osgi-equinox</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.vfs</groupId>
- <artifactId>jboss-osgi-vfs30</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <executions>
- <execution>
- <id>compendium</id>
- <phase>test-compile</phase>
- <goals>
- <goal>directory-single</goal>
- </goals>
- <configuration>
- <finalName>test-libs</finalName>
-
<ignoreDirFormatExtensions>true</ignoreDirFormatExtensions>
- <appendAssemblyId>false</appendAssemblyId>
- <descriptors>
-
<descriptor>scripts/assembly-compendium-equinox.xml</descriptor>
- </descriptors>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
-
- <!--
- Name: framework-felix
- Descr: Setup for Felix framework integration testing
- -->
- <profile>
- <id>framework-felix</id>
- <activation>
- <property>
- <name>frwk</name>
- <value>felix</value>
- </property>
- </activation>
- <properties>
-
<jboss.osgi.framework.properties>jboss-osgi-felix.properties</jboss.osgi.framework.properties>
- </properties>
- <dependencies>
- <dependency>
- <groupId>org.jboss.osgi.felix</groupId>
- <artifactId>jboss-osgi-felix</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.vfs</groupId>
- <artifactId>jboss-osgi-vfs30</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <executions>
- <execution>
- <id>compendium</id>
- <phase>test-compile</phase>
- <goals>
- <goal>directory-single</goal>
- </goals>
- <configuration>
- <finalName>test-libs</finalName>
-
<ignoreDirFormatExtensions>true</ignoreDirFormatExtensions>
- <appendAssemblyId>false</appendAssemblyId>
- <descriptors>
- <descriptor>scripts/assembly-compendium.xml</descriptor>
- </descriptors>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
-
- <!--
- Name: framework-native
- Descr: Setup for Native Framework integration testing
- -->
- <profile>
- <id>framework-jbossmc-default</id>
- <activation>
- <property>
- <name>!frwk</name>
- </property>
- </activation>
- <dependencies>
- <dependency>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework-core</artifactId>
- <version>${version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework-vfs30</artifactId>
- <version>${version}</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <executions>
- <execution>
- <id>compendium</id>
- <phase>test-compile</phase>
- <goals>
- <goal>directory-single</goal>
- </goals>
- <configuration>
- <finalName>test-libs</finalName>
-
<ignoreDirFormatExtensions>true</ignoreDirFormatExtensions>
- <appendAssemblyId>false</appendAssemblyId>
- <descriptors>
- <descriptor>scripts/assembly-compendium.xml</descriptor>
- </descriptors>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
-
- <!--
- Name: jpda
- Descr: Enable JPDA remote debuging
- -->
- <profile>
- <id>jpda</id>
- <activation>
- <property>
- <name>jpda</name>
- </property>
- </activation>
- <properties>
-
<surefire.jpda.args>-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y</surefire.jpda.args>
- </properties>
- </profile>
-
- </profiles>
-</project>
Copied:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/bundle/pom.xml
(from rev 103434,
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/bundle/pom.xml)
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/bundle/pom.xml
(rev 0)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/bundle/pom.xml 2010-04-01
14:43:57 UTC (rev 103435)
@@ -0,0 +1,470 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!-- -->
+<!-- JBoss, the OpenSource J2EE webOS -->
+<!-- -->
+<!-- Distributable under LGPL license. -->
+<!-- See terms of license at
http://www.gnu.org. -->
+<!-- -->
+<!-- ====================================================================== -->
+
+<!-- $Id$ -->
+
+<!--
+ Set these VM properties in your IDE debugger
+
+ -Dlog4j.output.dir=${workspace_loc:jboss-osgi-framework/target}
+ -Dlog4j.configuration=log4j-console.xml
+-->
+
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <name>JBossOSGi Framework - Bundle</name>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework</artifactId>
+ <packaging>jar</packaging>
+
+ <parent>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework-parent</artifactId>
+ <version>1.0.0.Alpha4</version>
+ </parent>
+
+ <!-- Properties -->
+ <properties>
+ <surefire.jpda.args />
+ <surefire.system.args>-Xmx512m
${surefire.jpda.args}</surefire.system.args>
+ </properties>
+
+ <!-- Dependencies -->
+ <dependencies>
+ <dependency>
+ <groupId>biz.aQute</groupId>
+ <artifactId>bnd</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.kernel</groupId>
+ <artifactId>jboss-jmx-aop-mc-int</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.kernel</groupId>
+ <artifactId>jboss-jmx-mc-int</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-log4j</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- Test bundles dependencies -->
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.configadmin</artifactId>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.log</artifactId>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.metatype</artifactId>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-apache-xerces</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-common</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-common-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-husky</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-jaxb</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.jmx</groupId>
+ <artifactId>jboss-osgi-jmx</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.jndi</groupId>
+ <artifactId>jboss-osgi-jndi</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-reflect</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-xml-binding</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.ops4j.pax.web</groupId>
+ <artifactId>pax-web-jetty-bundle</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- Test Dependencies -->
+ <dependency>
+ <groupId>org.jboss.test</groupId>
+ <artifactId>jboss-test</artifactId>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-common-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-spi</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>bundles</id>
+ <phase>test-compile</phase>
+ <goals>
+ <goal>directory-single</goal>
+ </goals>
+ <configuration>
+ <finalName>test-libs</finalName>
+ <ignoreDirFormatExtensions>true</ignoreDirFormatExtensions>
+ <appendAssemblyId>false</appendAssemblyId>
+ <descriptors>
+ <descriptor>scripts/assembly-bundles.xml</descriptor>
+ </descriptors>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>build-test-jars</id>
+ <phase>test-compile</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <tasks>
+ <property name="maven.runtime.classpath"
refid="maven.runtime.classpath" />
+ <property name="tests.output.dir"
value="${project.build.directory}" />
+ <ant antfile="scripts/antrun-test-jars.xml" />
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+ </archive>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <argLine>${surefire.system.args}</argLine>
+ <systemProperties>
+ <property>
+ <name>log4j.output.dir</name>
+ <value>${project.build.directory}</value>
+ </property>
+ <property>
+ <name>org.jboss.osgi.framework.launch.bootstrapPath</name>
+ <value>bootstrap/jboss-osgi-bootstrap.xml</value>
+ </property>
+ <property>
+ <name>jboss.osgi.framework.properties</name>
+ <value>${jboss.osgi.framework.properties}</value>
+ </property>
+ <property>
+ <name>test.archive.directory</name>
+ <value>${project.build.directory}/test-libs</value>
+ </property>
+ </systemProperties>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+
+ <!--
+ Name: all
+ Desc: Build the aggregated framework jar
+ -->
+ <profile>
+ <id>all</id>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.2-beta-5</version>
+ <executions>
+ <execution>
+ <id>all</id>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <configuration>
+ <descriptors>
+ <descriptor>scripts/assembly-all.xml</descriptor>
+ </descriptors>
+ <archive>
+
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+ </archive>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <!--
+ Name: framework-equinox
+ Descr: Setup for Equinox framework integration testing
+ -->
+ <profile>
+ <id>framework-equinox</id>
+ <activation>
+ <property>
+ <name>frwk</name>
+ <value>equinox</value>
+ </property>
+ </activation>
+ <properties>
+
<jboss.osgi.framework.properties>jboss-osgi-equinox.properties</jboss.osgi.framework.properties>
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.osgi.equinox</groupId>
+ <artifactId>jboss-osgi-equinox</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.vfs</groupId>
+ <artifactId>jboss-osgi-vfs30</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>compendium</id>
+ <phase>test-compile</phase>
+ <goals>
+ <goal>directory-single</goal>
+ </goals>
+ <configuration>
+ <finalName>test-libs</finalName>
+
<ignoreDirFormatExtensions>true</ignoreDirFormatExtensions>
+ <appendAssemblyId>false</appendAssemblyId>
+ <descriptors>
+
<descriptor>scripts/assembly-compendium-equinox.xml</descriptor>
+ </descriptors>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <!--
+ Name: framework-felix
+ Descr: Setup for Felix framework integration testing
+ -->
+ <profile>
+ <id>framework-felix</id>
+ <activation>
+ <property>
+ <name>frwk</name>
+ <value>felix</value>
+ </property>
+ </activation>
+ <properties>
+
<jboss.osgi.framework.properties>jboss-osgi-felix.properties</jboss.osgi.framework.properties>
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.osgi.felix</groupId>
+ <artifactId>jboss-osgi-felix</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.vfs</groupId>
+ <artifactId>jboss-osgi-vfs30</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>compendium</id>
+ <phase>test-compile</phase>
+ <goals>
+ <goal>directory-single</goal>
+ </goals>
+ <configuration>
+ <finalName>test-libs</finalName>
+
<ignoreDirFormatExtensions>true</ignoreDirFormatExtensions>
+ <appendAssemblyId>false</appendAssemblyId>
+ <descriptors>
+ <descriptor>scripts/assembly-compendium.xml</descriptor>
+ </descriptors>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <!--
+ Name: framework-native
+ Descr: Setup for Native Framework integration testing
+ -->
+ <profile>
+ <id>framework-jbossmc-default</id>
+ <activation>
+ <property>
+ <name>!frwk</name>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework-core</artifactId>
+ <version>${version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework-vfs30</artifactId>
+ <version>${version}</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>compendium</id>
+ <phase>test-compile</phase>
+ <goals>
+ <goal>directory-single</goal>
+ </goals>
+ <configuration>
+ <finalName>test-libs</finalName>
+
<ignoreDirFormatExtensions>true</ignoreDirFormatExtensions>
+ <appendAssemblyId>false</appendAssemblyId>
+ <descriptors>
+ <descriptor>scripts/assembly-compendium.xml</descriptor>
+ </descriptors>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <!--
+ Name: jpda
+ Descr: Enable JPDA remote debuging
+ -->
+ <profile>
+ <id>jpda</id>
+ <activation>
+ <property>
+ <name>jpda</name>
+ </property>
+ </activation>
+ <properties>
+
<surefire.jpda.args>-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y</surefire.jpda.args>
+ </properties>
+ </profile>
+
+ </profiles>
+</project>
Deleted:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/bundle/src/test/java/org/jboss/test/osgi/classloader/DynamicImportPackageTestCase.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/bundle/src/test/java/org/jboss/test/osgi/classloader/DynamicImportPackageTestCase.java 2010-04-01
12:33:35 UTC (rev 103420)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/bundle/src/test/java/org/jboss/test/osgi/classloader/DynamicImportPackageTestCase.java 2010-04-01
14:43:57 UTC (rev 103435)
@@ -1,485 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2009, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file in the
-* distribution for a full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
-*/
-package org.jboss.test.osgi.classloader;
-
-import java.io.InputStream;
-
-import org.jboss.osgi.testing.OSGiFrameworkTest;
-import org.jboss.osgi.testing.OSGiManifestBuilder;
-import org.jboss.shrinkwrap.api.Archives;
-import org.jboss.shrinkwrap.api.Asset;
-import org.jboss.shrinkwrap.api.spec.JavaArchive;
-import org.jboss.test.osgi.classloader.support.a.A;
-import org.jboss.test.osgi.classloader.support.b.B;
-import org.jboss.test.osgi.classloader.support.c.C;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.osgi.framework.Bundle;
-import org.osgi.service.log.LogService;
-
-/**
- * Test the DynamicImport-Package manifest header.
- *
- * @author thomas.diesler(a)jboss.com
- * @since 26-Mar-2010
- */
-public class DynamicImportPackageTestCase extends OSGiFrameworkTest
-{
- @Before
- public void setUp() throws Exception
- {
- super.setUp();
- getPackageAdmin().refreshPackages(null);
- }
-
- @Test
- public void testAllPackagesWildcardWired() throws Exception
- {
- // Bundle-SymbolicName: dynamic-log-service
- // DynamicImport-Package: org.osgi.service.log
- archiveC = Archives.create("dynamic-log-service", JavaArchive.class);
- archiveC.setManifest(new Asset()
- {
- public InputStream openStream()
- {
- OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
- builder.addBundleManifestVersion(2);
- builder.addBundleSymbolicName(archiveC.getName());
- builder.addDynamicImportPackages("org.osgi.service.log");
- return builder.openStream();
- }
- });
- }
-
- @Test
- public void testAllPackagesWildcard() throws Exception
- {
- // Bundle-SymbolicName: dynamic-wildcard-a
- // Export-Package: org.jboss.test.osgi.classloader.support.a
- // Import-Package: org.jboss.test.osgi.classloader.support.b
- // DynamicImport-Package: *
- final JavaArchive archiveA = Archives.create("dynamic-wildcard-a",
JavaArchive.class);
- archiveA.addClass(A.class);
- archiveA.setManifest(new Asset()
- {
- public InputStream openStream()
- {
- OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
- builder.addBundleManifestVersion(2);
- builder.addBundleSymbolicName(archiveA.getName());
- builder.addExportPackages(A.class.getPackage().getName());
- builder.addImportPackages(B.class.getPackage().getName());
- builder.addDynamicImportPackages("*");
- return builder.openStream();
- }
- });
-
- // Bundle-SymbolicName: dynamic-wildcard-bc
- // Export-Package: org.jboss.test.osgi.classloader.support.b,
org.jboss.test.osgi.classloader.support.c
- final JavaArchive archiveB = Archives.create("dynamic-wildcard-bc",
JavaArchive.class);
- archiveB.addClasses(B.class, C.class);
- archiveB.setManifest(new Asset()
- {
- public InputStream openStream()
- {
- OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
- builder.addBundleManifestVersion(2);
- builder.addBundleSymbolicName(archiveB.getName());
- builder.addExportPackages(B.class.getPackage().getName());
- builder.addExportPackages(C.class.getPackage().getName());
- return builder.openStream();
- }
- });
-
- Bundle bundleA = installBundle(archiveA);
- assertBundleState(Bundle.INSTALLED, bundleA.getState());
- try
- {
- Bundle bundleB = installBundle(archiveB);
- assertBundleState(Bundle.INSTALLED, bundleB.getState());
- try
- {
- assertLoadClass(bundleA, A.class.getName(), bundleA);
- assertLoadClass(bundleA, B.class.getName(), bundleB);
-
- System.out.println("FIXME [JBCL-131] Add a notion of on demand
resolution");
- //assertLoadClass(bundleA, C.class.getName(), bundleB);
-
- assertBundleState(Bundle.RESOLVED, bundleA.getState());
- assertBundleState(Bundle.RESOLVED, bundleB.getState());
- }
- finally
- {
- bundleB.uninstall();
- }
- }
- finally
- {
- bundleA.uninstall();
- }
- }
-
- @Test
- public void testAllPackagesWildcardNotWired() throws Exception
- {
- // Bundle-SymbolicName: dynamic-wildcard-a
- // Export-Package: org.jboss.test.osgi.classloader.support.a
- // DynamicImport-Package: *
- final JavaArchive archiveA = Archives.create("dynamic-wildcard-a",
JavaArchive.class);
- archiveA.addClass(A.class);
- archiveA.setManifest(new Asset()
- {
- public InputStream openStream()
- {
- OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
- builder.addBundleManifestVersion(2);
- builder.addBundleSymbolicName(archiveA.getName());
- builder.addExportPackages(A.class.getPackage().getName());
- builder.addDynamicImportPackages("*");
- return builder.openStream();
- }
- });
-
- // Bundle-SymbolicName: dynamic-wildcard-c
- // Export-Package: org.jboss.test.osgi.classloader.support.c
- final JavaArchive archiveC = Archives.create("dynamic-wildcard-c",
JavaArchive.class);
- archiveC.addClasses(C.class);
- archiveC.setManifest(new Asset()
- {
- public InputStream openStream()
- {
- OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
- builder.addBundleManifestVersion(2);
- builder.addBundleSymbolicName(archiveC.getName());
- builder.addExportPackages(C.class.getPackage().getName());
- return builder.openStream();
- }
- });
-
- Bundle bundleA = installBundle(archiveA);
- assertBundleState(Bundle.INSTALLED, bundleA.getState());
- try
- {
- Bundle bundleC = installBundle(archiveC);
- assertBundleState(Bundle.INSTALLED, bundleC.getState());
- try
- {
- assertLoadClass(bundleA, A.class.getName(), bundleA);
-
- System.out.println("FIXME [JBCL-131] Add a notion of on demand
resolution");
- //assertLoadClass(bundleA, C.class.getName(), bundleC);
-
- assertBundleState(Bundle.RESOLVED, bundleA.getState());
- //assertBundleState(Bundle.RESOLVED, bundleC.getState());
- }
- finally
- {
- bundleC.uninstall();
- }
- }
- finally
- {
- bundleA.uninstall();
- }
- }
-
- @Test
- public void testAllPackagesWildcardNotThere() throws Exception
- {
- // Bundle-SymbolicName: dynamic-wildcard-a
- // Export-Package: org.jboss.test.osgi.classloader.support.a
- // DynamicImport-Package: *
- final JavaArchive archiveA = Archives.create("dynamic-wildcard-a",
JavaArchive.class);
- archiveA.addClass(A.class);
- archiveA.setManifest(new Asset()
- {
- public InputStream openStream()
- {
- OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
- builder.addBundleManifestVersion(2);
- builder.addBundleSymbolicName(archiveA.getName());
- builder.addExportPackages(A.class.getPackage().getName());
- builder.addDynamicImportPackages("*");
- return builder.openStream();
- }
- });
-
- Bundle bundleA = installBundle(archiveA);
- assertBundleState(Bundle.INSTALLED, bundleA.getState());
- try
- {
- assertLoadClass(bundleA, A.class.getName(), bundleA);
-
- assertLoadClassFail(bundleA, C.class.getName());
-
- assertBundleState(Bundle.RESOLVED, bundleA.getState());
- }
- finally
- {
- bundleA.uninstall();
- }
- }
-
- @Test
- public void testPackageWildcardWired() throws Exception
- {
- // Bundle-SymbolicName: dynamic-wildcard-a
- // Export-Package: org.jboss.test.osgi.classloader.support.a
- // Import-Package: org.jboss.test.osgi.classloader.support.b
- // DynamicImport-Package: org.jboss.test.osgi.classloader.*
- final JavaArchive archiveA = Archives.create("dynamic-wildcard-a",
JavaArchive.class);
- archiveA.addClass(A.class);
- archiveA.setManifest(new Asset()
- {
- public InputStream openStream()
- {
- OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
- builder.addBundleManifestVersion(2);
- builder.addBundleSymbolicName(archiveA.getName());
- builder.addExportPackages(A.class.getPackage().getName());
- builder.addImportPackages(B.class.getPackage().getName());
-
builder.addDynamicImportPackages("org.jboss.test.osgi.classloader.*");
- return builder.openStream();
- }
- });
-
- // Bundle-SymbolicName: dynamic-wildcard-bc
- // Export-Package: org.jboss.test.osgi.classloader.support.b,
org.jboss.test.osgi.classloader.support.c
- final JavaArchive archiveB = Archives.create("dynamic-wildcard-bc",
JavaArchive.class);
- archiveB.addClasses(B.class, C.class);
- archiveB.setManifest(new Asset()
- {
- public InputStream openStream()
- {
- OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
- builder.addBundleManifestVersion(2);
- builder.addBundleSymbolicName(archiveB.getName());
- builder.addExportPackages(B.class.getPackage().getName());
- builder.addExportPackages(C.class.getPackage().getName());
- return builder.openStream();
- }
- });
-
- Bundle bundleA = installBundle(archiveA);
- assertBundleState(Bundle.INSTALLED, bundleA.getState());
- try
- {
- Bundle bundleB = installBundle(archiveB);
- assertBundleState(Bundle.INSTALLED, bundleB.getState());
- try
- {
- assertLoadClass(bundleA, A.class.getName(), bundleA);
- assertLoadClass(bundleA, B.class.getName(), bundleB);
-
- System.out.println("FIXME [JBCL-131] Add a notion of on demand
resolution");
- //assertLoadClass(bundleA, C.class.getName(), bundleB);
-
- assertBundleState(Bundle.RESOLVED, bundleA.getState());
- assertBundleState(Bundle.RESOLVED, bundleB.getState());
- }
- finally
- {
- bundleB.uninstall();
- }
- }
- finally
- {
- bundleA.uninstall();
- }
- }
-
- @Test
- public void testPackageWildcardNotWired() throws Exception
- {
- // Bundle-SymbolicName: dynamic-wildcard-a
- // Export-Package: org.jboss.test.osgi.classloader.support.a
- // DynamicImport-Package: org.jboss.test.osgi.classloader.*
- final JavaArchive archiveA = Archives.create("dynamic-wildcard-a",
JavaArchive.class);
- archiveA.addClass(A.class);
- archiveA.setManifest(new Asset()
- {
- public InputStream openStream()
- {
- OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
- builder.addBundleManifestVersion(2);
- builder.addBundleSymbolicName(archiveA.getName());
- builder.addExportPackages(A.class.getPackage().getName());
-
builder.addDynamicImportPackages("org.jboss.test.osgi.classloader.*");
- return builder.openStream();
- }
- });
-
- // Bundle-SymbolicName: dynamic-wildcard-c
- // Export-Package: org.jboss.test.osgi.classloader.support.c
- final JavaArchive archiveC = Archives.create("dynamic-wildcard-c",
JavaArchive.class);
- archiveC.addClasses(C.class);
- archiveC.setManifest(new Asset()
- {
- public InputStream openStream()
- {
- OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
- builder.addBundleManifestVersion(2);
- builder.addBundleSymbolicName(archiveC.getName());
- builder.addExportPackages(C.class.getPackage().getName());
- return builder.openStream();
- }
- });
-
- Bundle bundleA = installBundle(archiveA);
- assertBundleState(Bundle.INSTALLED, bundleA.getState());
- try
- {
- Bundle bundleC = installBundle(archiveC);
- assertBundleState(Bundle.INSTALLED, bundleC.getState());
- try
- {
- assertLoadClass(bundleA, A.class.getName(), bundleA);
-
- System.out.println("FIXME [JBCL-131] Add a notion of on demand
resolution");
- //assertLoadClass(bundleA, C.class.getName(), bundleC);
-
- assertBundleState(Bundle.RESOLVED, bundleA.getState());
- //assertBundleState(Bundle.RESOLVED, bundleC.getState());
- }
- finally
- {
- bundleC.uninstall();
- }
- }
- finally
- {
- bundleA.uninstall();
- }
- }
-
- @Test
- public void testPackageWildcardNotThere() throws Exception
- {
- // Bundle-SymbolicName: dynamic-wildcard-a
- // Export-Package: org.jboss.test.osgi.classloader.support.a
- // DynamicImport-Package: org.jboss.test.osgi.classloader.*
- final JavaArchive archiveA = Archives.create("dynamic-wildcard-a",
JavaArchive.class);
- archiveA.addClass(A.class);
- archiveA.setManifest(new Asset()
- {
- public InputStream openStream()
- {
- OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
- builder.addBundleManifestVersion(2);
- builder.addBundleSymbolicName(archiveA.getName());
- builder.addExportPackages(A.class.getPackage().getName());
- builder.addDynamicImportPackages("*");
- return builder.openStream();
- }
- });
-
- Bundle bundleA = installBundle(archiveA);
- assertBundleState(Bundle.INSTALLED, bundleA.getState());
- try
- {
- assertLoadClass(bundleA, A.class.getName(), bundleA);
-
- assertLoadClassFail(bundleA, C.class.getName());
-
- assertBundleState(Bundle.RESOLVED, bundleA.getState());
- }
- finally
- {
- bundleA.uninstall();
- }
- }
-
- @Test
- public void testLogServiceAvailableOnInstall() throws Exception
- {
- Bundle cmpd = installBundle("bundles/org.osgi.compendium.jar");
- assertBundleState(Bundle.INSTALLED, cmpd.getState());
- try
- {
- Bundle bundleC = installBundle(archiveC);
- assertBundleState(Bundle.INSTALLED, bundleC.getState());
- try
- {
- bundleC.start();
- assertBundleState(Bundle.ACTIVE, bundleC.getState());
- assertLoadClass(bundleC, LogService.class.getName());
- }
- finally
- {
- bundleC.uninstall();
- }
- }
- finally
- {
- cmpd.uninstall();
- }
- }
-
- @Test
- public void testLogServiceNotAvailableOnInstall() throws Exception
- {
- Bundle bundleC = installBundle(archiveC);
- assertBundleState(Bundle.INSTALLED, bundleC.getState());
- try
- {
- bundleC.start();
- assertBundleState(Bundle.ACTIVE, bundleC.getState());
- assertLoadClassFail(bundleC, LogService.class.getName());
-
- Bundle cmpd = installBundle("bundles/org.osgi.compendium.jar");
- try
- {
- assertLoadClass(bundleC, LogService.class.getName());
- }
- finally
- {
- cmpd.uninstall();
- }
- }
- finally
- {
- bundleC.uninstall();
- }
- }
-
- @BeforeClass
- public static void beforeTestCase()
- {
- // Bundle-SymbolicName: dynamic-log-service
- // DynamicImport-Package: org.osgi.service.log
- archiveC = Archives.create("dynamic-log-service", JavaArchive.class);
- archiveC.setManifest(new Asset()
- {
- public InputStream openStream()
- {
- OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
- builder.addBundleManifestVersion(2);
- builder.addBundleSymbolicName(archiveC.getName());
- builder.addDynamicImportPackages("org.osgi.service.log");
- return builder.openStream();
- }
- });
- }
-
- private static JavaArchive archiveC;
-}
Copied:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/bundle/src/test/java/org/jboss/test/osgi/classloader/DynamicImportPackageTestCase.java
(from rev 103423,
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/bundle/src/test/java/org/jboss/test/osgi/classloader/DynamicImportPackageTestCase.java)
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/bundle/src/test/java/org/jboss/test/osgi/classloader/DynamicImportPackageTestCase.java
(rev 0)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/bundle/src/test/java/org/jboss/test/osgi/classloader/DynamicImportPackageTestCase.java 2010-04-01
14:43:57 UTC (rev 103435)
@@ -0,0 +1,487 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2009, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+*/
+package org.jboss.test.osgi.classloader;
+
+import java.io.InputStream;
+
+import org.jboss.osgi.testing.OSGiFrameworkTest;
+import org.jboss.osgi.testing.OSGiManifestBuilder;
+import org.jboss.shrinkwrap.api.Archives;
+import org.jboss.shrinkwrap.api.Asset;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.test.osgi.classloader.support.a.A;
+import org.jboss.test.osgi.classloader.support.b.B;
+import org.jboss.test.osgi.classloader.support.c.C;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.Ignore;
+import org.osgi.framework.Bundle;
+import org.osgi.service.log.LogService;
+
+/**
+ * Test the DynamicImport-Package manifest header.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 26-Mar-2010
+ */
+@Ignore
+public class DynamicImportPackageTestCase extends OSGiFrameworkTest
+{
+ @Before
+ public void setUp() throws Exception
+ {
+ super.setUp();
+ getPackageAdmin().refreshPackages(null);
+ }
+
+ @Test
+ public void testAllPackagesWildcardWired() throws Exception
+ {
+ // Bundle-SymbolicName: dynamic-log-service
+ // DynamicImport-Package: org.osgi.service.log
+ archiveC = Archives.create("dynamic-log-service", JavaArchive.class);
+ archiveC.setManifest(new Asset()
+ {
+ public InputStream openStream()
+ {
+ OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
+ builder.addBundleManifestVersion(2);
+ builder.addBundleSymbolicName(archiveC.getName());
+ builder.addDynamicImportPackages("org.osgi.service.log");
+ return builder.openStream();
+ }
+ });
+ }
+
+ @Test
+ public void testAllPackagesWildcard() throws Exception
+ {
+ // Bundle-SymbolicName: dynamic-wildcard-a
+ // Export-Package: org.jboss.test.osgi.classloader.support.a
+ // Import-Package: org.jboss.test.osgi.classloader.support.b
+ // DynamicImport-Package: *
+ final JavaArchive archiveA = Archives.create("dynamic-wildcard-a",
JavaArchive.class);
+ archiveA.addClass(A.class);
+ archiveA.setManifest(new Asset()
+ {
+ public InputStream openStream()
+ {
+ OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
+ builder.addBundleManifestVersion(2);
+ builder.addBundleSymbolicName(archiveA.getName());
+ builder.addExportPackages(A.class.getPackage().getName());
+ builder.addImportPackages(B.class.getPackage().getName());
+ builder.addDynamicImportPackages("*");
+ return builder.openStream();
+ }
+ });
+
+ // Bundle-SymbolicName: dynamic-wildcard-bc
+ // Export-Package: org.jboss.test.osgi.classloader.support.b,
org.jboss.test.osgi.classloader.support.c
+ final JavaArchive archiveB = Archives.create("dynamic-wildcard-bc",
JavaArchive.class);
+ archiveB.addClasses(B.class, C.class);
+ archiveB.setManifest(new Asset()
+ {
+ public InputStream openStream()
+ {
+ OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
+ builder.addBundleManifestVersion(2);
+ builder.addBundleSymbolicName(archiveB.getName());
+ builder.addExportPackages(B.class.getPackage().getName());
+ builder.addExportPackages(C.class.getPackage().getName());
+ return builder.openStream();
+ }
+ });
+
+ Bundle bundleA = installBundle(archiveA);
+ assertBundleState(Bundle.INSTALLED, bundleA.getState());
+ try
+ {
+ Bundle bundleB = installBundle(archiveB);
+ assertBundleState(Bundle.INSTALLED, bundleB.getState());
+ try
+ {
+ assertLoadClass(bundleA, A.class.getName(), bundleA);
+ assertLoadClass(bundleA, B.class.getName(), bundleB);
+
+ System.out.println("FIXME [JBCL-131] Add a notion of on demand
resolution");
+ //assertLoadClass(bundleA, C.class.getName(), bundleB);
+
+ assertBundleState(Bundle.RESOLVED, bundleA.getState());
+ assertBundleState(Bundle.RESOLVED, bundleB.getState());
+ }
+ finally
+ {
+ bundleB.uninstall();
+ }
+ }
+ finally
+ {
+ bundleA.uninstall();
+ }
+ }
+
+ @Test
+ public void testAllPackagesWildcardNotWired() throws Exception
+ {
+ // Bundle-SymbolicName: dynamic-wildcard-a
+ // Export-Package: org.jboss.test.osgi.classloader.support.a
+ // DynamicImport-Package: *
+ final JavaArchive archiveA = Archives.create("dynamic-wildcard-a",
JavaArchive.class);
+ archiveA.addClass(A.class);
+ archiveA.setManifest(new Asset()
+ {
+ public InputStream openStream()
+ {
+ OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
+ builder.addBundleManifestVersion(2);
+ builder.addBundleSymbolicName(archiveA.getName());
+ builder.addExportPackages(A.class.getPackage().getName());
+ builder.addDynamicImportPackages("*");
+ return builder.openStream();
+ }
+ });
+
+ // Bundle-SymbolicName: dynamic-wildcard-c
+ // Export-Package: org.jboss.test.osgi.classloader.support.c
+ final JavaArchive archiveC = Archives.create("dynamic-wildcard-c",
JavaArchive.class);
+ archiveC.addClasses(C.class);
+ archiveC.setManifest(new Asset()
+ {
+ public InputStream openStream()
+ {
+ OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
+ builder.addBundleManifestVersion(2);
+ builder.addBundleSymbolicName(archiveC.getName());
+ builder.addExportPackages(C.class.getPackage().getName());
+ return builder.openStream();
+ }
+ });
+
+ Bundle bundleA = installBundle(archiveA);
+ assertBundleState(Bundle.INSTALLED, bundleA.getState());
+ try
+ {
+ Bundle bundleC = installBundle(archiveC);
+ assertBundleState(Bundle.INSTALLED, bundleC.getState());
+ try
+ {
+ assertLoadClass(bundleA, A.class.getName(), bundleA);
+
+ System.out.println("FIXME [JBCL-131] Add a notion of on demand
resolution");
+ //assertLoadClass(bundleA, C.class.getName(), bundleC);
+
+ assertBundleState(Bundle.RESOLVED, bundleA.getState());
+ //assertBundleState(Bundle.RESOLVED, bundleC.getState());
+ }
+ finally
+ {
+ bundleC.uninstall();
+ }
+ }
+ finally
+ {
+ bundleA.uninstall();
+ }
+ }
+
+ @Test
+ public void testAllPackagesWildcardNotThere() throws Exception
+ {
+ // Bundle-SymbolicName: dynamic-wildcard-a
+ // Export-Package: org.jboss.test.osgi.classloader.support.a
+ // DynamicImport-Package: *
+ final JavaArchive archiveA = Archives.create("dynamic-wildcard-a",
JavaArchive.class);
+ archiveA.addClass(A.class);
+ archiveA.setManifest(new Asset()
+ {
+ public InputStream openStream()
+ {
+ OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
+ builder.addBundleManifestVersion(2);
+ builder.addBundleSymbolicName(archiveA.getName());
+ builder.addExportPackages(A.class.getPackage().getName());
+ builder.addDynamicImportPackages("*");
+ return builder.openStream();
+ }
+ });
+
+ Bundle bundleA = installBundle(archiveA);
+ assertBundleState(Bundle.INSTALLED, bundleA.getState());
+ try
+ {
+ assertLoadClass(bundleA, A.class.getName(), bundleA);
+
+ assertLoadClassFail(bundleA, C.class.getName());
+
+ assertBundleState(Bundle.RESOLVED, bundleA.getState());
+ }
+ finally
+ {
+ bundleA.uninstall();
+ }
+ }
+
+ @Test
+ public void testPackageWildcardWired() throws Exception
+ {
+ // Bundle-SymbolicName: dynamic-wildcard-a
+ // Export-Package: org.jboss.test.osgi.classloader.support.a
+ // Import-Package: org.jboss.test.osgi.classloader.support.b
+ // DynamicImport-Package: org.jboss.test.osgi.classloader.*
+ final JavaArchive archiveA = Archives.create("dynamic-wildcard-a",
JavaArchive.class);
+ archiveA.addClass(A.class);
+ archiveA.setManifest(new Asset()
+ {
+ public InputStream openStream()
+ {
+ OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
+ builder.addBundleManifestVersion(2);
+ builder.addBundleSymbolicName(archiveA.getName());
+ builder.addExportPackages(A.class.getPackage().getName());
+ builder.addImportPackages(B.class.getPackage().getName());
+
builder.addDynamicImportPackages("org.jboss.test.osgi.classloader.*");
+ return builder.openStream();
+ }
+ });
+
+ // Bundle-SymbolicName: dynamic-wildcard-bc
+ // Export-Package: org.jboss.test.osgi.classloader.support.b,
org.jboss.test.osgi.classloader.support.c
+ final JavaArchive archiveB = Archives.create("dynamic-wildcard-bc",
JavaArchive.class);
+ archiveB.addClasses(B.class, C.class);
+ archiveB.setManifest(new Asset()
+ {
+ public InputStream openStream()
+ {
+ OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
+ builder.addBundleManifestVersion(2);
+ builder.addBundleSymbolicName(archiveB.getName());
+ builder.addExportPackages(B.class.getPackage().getName());
+ builder.addExportPackages(C.class.getPackage().getName());
+ return builder.openStream();
+ }
+ });
+
+ Bundle bundleA = installBundle(archiveA);
+ assertBundleState(Bundle.INSTALLED, bundleA.getState());
+ try
+ {
+ Bundle bundleB = installBundle(archiveB);
+ assertBundleState(Bundle.INSTALLED, bundleB.getState());
+ try
+ {
+ assertLoadClass(bundleA, A.class.getName(), bundleA);
+ assertLoadClass(bundleA, B.class.getName(), bundleB);
+
+ System.out.println("FIXME [JBCL-131] Add a notion of on demand
resolution");
+ //assertLoadClass(bundleA, C.class.getName(), bundleB);
+
+ assertBundleState(Bundle.RESOLVED, bundleA.getState());
+ assertBundleState(Bundle.RESOLVED, bundleB.getState());
+ }
+ finally
+ {
+ bundleB.uninstall();
+ }
+ }
+ finally
+ {
+ bundleA.uninstall();
+ }
+ }
+
+ @Test
+ public void testPackageWildcardNotWired() throws Exception
+ {
+ // Bundle-SymbolicName: dynamic-wildcard-a
+ // Export-Package: org.jboss.test.osgi.classloader.support.a
+ // DynamicImport-Package: org.jboss.test.osgi.classloader.*
+ final JavaArchive archiveA = Archives.create("dynamic-wildcard-a",
JavaArchive.class);
+ archiveA.addClass(A.class);
+ archiveA.setManifest(new Asset()
+ {
+ public InputStream openStream()
+ {
+ OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
+ builder.addBundleManifestVersion(2);
+ builder.addBundleSymbolicName(archiveA.getName());
+ builder.addExportPackages(A.class.getPackage().getName());
+
builder.addDynamicImportPackages("org.jboss.test.osgi.classloader.*");
+ return builder.openStream();
+ }
+ });
+
+ // Bundle-SymbolicName: dynamic-wildcard-c
+ // Export-Package: org.jboss.test.osgi.classloader.support.c
+ final JavaArchive archiveC = Archives.create("dynamic-wildcard-c",
JavaArchive.class);
+ archiveC.addClasses(C.class);
+ archiveC.setManifest(new Asset()
+ {
+ public InputStream openStream()
+ {
+ OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
+ builder.addBundleManifestVersion(2);
+ builder.addBundleSymbolicName(archiveC.getName());
+ builder.addExportPackages(C.class.getPackage().getName());
+ return builder.openStream();
+ }
+ });
+
+ Bundle bundleA = installBundle(archiveA);
+ assertBundleState(Bundle.INSTALLED, bundleA.getState());
+ try
+ {
+ Bundle bundleC = installBundle(archiveC);
+ assertBundleState(Bundle.INSTALLED, bundleC.getState());
+ try
+ {
+ assertLoadClass(bundleA, A.class.getName(), bundleA);
+
+ System.out.println("FIXME [JBCL-131] Add a notion of on demand
resolution");
+ //assertLoadClass(bundleA, C.class.getName(), bundleC);
+
+ assertBundleState(Bundle.RESOLVED, bundleA.getState());
+ //assertBundleState(Bundle.RESOLVED, bundleC.getState());
+ }
+ finally
+ {
+ bundleC.uninstall();
+ }
+ }
+ finally
+ {
+ bundleA.uninstall();
+ }
+ }
+
+ @Test
+ public void testPackageWildcardNotThere() throws Exception
+ {
+ // Bundle-SymbolicName: dynamic-wildcard-a
+ // Export-Package: org.jboss.test.osgi.classloader.support.a
+ // DynamicImport-Package: org.jboss.test.osgi.classloader.*
+ final JavaArchive archiveA = Archives.create("dynamic-wildcard-a",
JavaArchive.class);
+ archiveA.addClass(A.class);
+ archiveA.setManifest(new Asset()
+ {
+ public InputStream openStream()
+ {
+ OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
+ builder.addBundleManifestVersion(2);
+ builder.addBundleSymbolicName(archiveA.getName());
+ builder.addExportPackages(A.class.getPackage().getName());
+ builder.addDynamicImportPackages("*");
+ return builder.openStream();
+ }
+ });
+
+ Bundle bundleA = installBundle(archiveA);
+ assertBundleState(Bundle.INSTALLED, bundleA.getState());
+ try
+ {
+ assertLoadClass(bundleA, A.class.getName(), bundleA);
+
+ assertLoadClassFail(bundleA, C.class.getName());
+
+ assertBundleState(Bundle.RESOLVED, bundleA.getState());
+ }
+ finally
+ {
+ bundleA.uninstall();
+ }
+ }
+
+ @Test
+ public void testLogServiceAvailableOnInstall() throws Exception
+ {
+ Bundle cmpd = installBundle("bundles/org.osgi.compendium.jar");
+ assertBundleState(Bundle.INSTALLED, cmpd.getState());
+ try
+ {
+ Bundle bundleC = installBundle(archiveC);
+ assertBundleState(Bundle.INSTALLED, bundleC.getState());
+ try
+ {
+ bundleC.start();
+ assertBundleState(Bundle.ACTIVE, bundleC.getState());
+ assertLoadClass(bundleC, LogService.class.getName());
+ }
+ finally
+ {
+ bundleC.uninstall();
+ }
+ }
+ finally
+ {
+ cmpd.uninstall();
+ }
+ }
+
+ @Test
+ public void testLogServiceNotAvailableOnInstall() throws Exception
+ {
+ Bundle bundleC = installBundle(archiveC);
+ assertBundleState(Bundle.INSTALLED, bundleC.getState());
+ try
+ {
+ bundleC.start();
+ assertBundleState(Bundle.ACTIVE, bundleC.getState());
+ assertLoadClassFail(bundleC, LogService.class.getName());
+
+ Bundle cmpd = installBundle("bundles/org.osgi.compendium.jar");
+ try
+ {
+ assertLoadClass(bundleC, LogService.class.getName());
+ }
+ finally
+ {
+ cmpd.uninstall();
+ }
+ }
+ finally
+ {
+ bundleC.uninstall();
+ }
+ }
+
+ @BeforeClass
+ public static void beforeTestCase()
+ {
+ // Bundle-SymbolicName: dynamic-log-service
+ // DynamicImport-Package: org.osgi.service.log
+ archiveC = Archives.create("dynamic-log-service", JavaArchive.class);
+ archiveC.setManifest(new Asset()
+ {
+ public InputStream openStream()
+ {
+ OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
+ builder.addBundleManifestVersion(2);
+ builder.addBundleSymbolicName(archiveC.getName());
+ builder.addDynamicImportPackages("org.osgi.service.log");
+ return builder.openStream();
+ }
+ });
+ }
+
+ private static JavaArchive archiveC;
+}
Deleted:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/pom.xml
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/core/pom.xml 2010-04-01
12:33:35 UTC (rev 103420)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/pom.xml 2010-04-01
14:43:57 UTC (rev 103435)
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- ====================================================================== -->
-<!-- -->
-<!-- JBoss, the OpenSource J2EE webOS -->
-<!-- -->
-<!-- Distributable under LGPL license. -->
-<!-- See terms of license at
http://www.gnu.org. -->
-<!-- -->
-<!-- ====================================================================== -->
-
-<!-- $Id$ -->
-
-<!-- Set these VM properties in your IDE debugger
-Dlog4j.output.dir=${workspace_loc:jboss-osgi-framework/target}
-Dlog4j.configuration=log4j-console.xml -->
-
-<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <name>JBossOSGi Framework - Core</name>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework-core</artifactId>
- <packaging>jar</packaging>
-
- <parent>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework-parent</artifactId>
- <version>1.0.0.Alpha5-SNAPSHOT</version>
- </parent>
-
- <dependencies>
- <dependency>
- <groupId>biz.aQute</groupId>
- <artifactId>bnd</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework-metadata</artifactId>
- <version>${version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-mdr</artifactId>
- </dependency>
-
- <!-- JBoss OSGi Dependencies -->
- <dependency>
- <groupId>org.jboss.osgi</groupId>
- <artifactId>jboss-osgi-spi</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.deployment</groupId>
- <artifactId>jboss-osgi-deployment</artifactId>
- </dependency>
-
- <!-- OSGi Dependencies -->
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.compendium</artifactId>
- </dependency>
- </dependencies>
-
-</project>
Copied:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/pom.xml
(from rev 103434,
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/core/pom.xml)
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/pom.xml
(rev 0)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/pom.xml 2010-04-01
14:43:57 UTC (rev 103435)
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!-- -->
+<!-- JBoss, the OpenSource J2EE webOS -->
+<!-- -->
+<!-- Distributable under LGPL license. -->
+<!-- See terms of license at
http://www.gnu.org. -->
+<!-- -->
+<!-- ====================================================================== -->
+
+<!-- $Id$ -->
+
+<!-- Set these VM properties in your IDE debugger
-Dlog4j.output.dir=${workspace_loc:jboss-osgi-framework/target}
-Dlog4j.configuration=log4j-console.xml -->
+
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <name>JBossOSGi Framework - Core</name>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework-core</artifactId>
+ <packaging>jar</packaging>
+
+ <parent>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework-parent</artifactId>
+ <version>1.0.0.Alpha4</version>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>biz.aQute</groupId>
+ <artifactId>bnd</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework-metadata</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-mdr</artifactId>
+ </dependency>
+
+ <!-- JBoss OSGi Dependencies -->
+ <dependency>
+ <groupId>org.jboss.osgi</groupId>
+ <artifactId>jboss-osgi-spi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.deployment</groupId>
+ <artifactId>jboss-osgi-deployment</artifactId>
+ </dependency>
+
+ <!-- OSGi Dependencies -->
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ </dependency>
+ </dependencies>
+
+</project>
Deleted:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/deployers/AbstractClassLoadingDeployer.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/deployers/AbstractClassLoadingDeployer.java 2010-04-01
12:33:35 UTC (rev 103420)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/deployers/AbstractClassLoadingDeployer.java 2010-04-01
14:43:57 UTC (rev 103435)
@@ -1,172 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2009, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file in the
-* distribution for a full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
-*/
-package org.jboss.osgi.framework.deployers;
-
-// $Id$
-
-import java.util.List;
-
-import org.jboss.classloader.spi.ClassLoaderDomain;
-import org.jboss.classloader.spi.ShutdownPolicy;
-import org.jboss.classloading.spi.metadata.CapabilitiesMetaData;
-import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;
-import org.jboss.classloading.spi.metadata.RequirementsMetaData;
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.spi.deployer.DeploymentStages;
-import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
-import org.jboss.deployers.structure.spi.ClassLoaderFactory;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.osgi.framework.bundle.AbstractBundleState;
-import org.jboss.osgi.framework.bundle.OSGiBundleManager;
-import org.jboss.osgi.framework.classloading.OSGiBundleCapability;
-import org.jboss.osgi.framework.classloading.OSGiBundleRequirement;
-import org.jboss.osgi.framework.classloading.OSGiClassLoadingMetaData;
-import org.jboss.osgi.framework.classloading.OSGiPackageCapability;
-import org.jboss.osgi.framework.classloading.OSGiPackageRequirement;
-import org.jboss.osgi.framework.metadata.OSGiMetaData;
-import org.jboss.osgi.framework.metadata.PackageAttribute;
-import org.jboss.osgi.framework.metadata.ParameterizedAttribute;
-import org.jboss.osgi.framework.plugins.SystemPackagesPlugin;
-
-/**
- * An abstract OSGi classloading deployer, that maps {@link OSGiMetaData} into {@link
ClassLoadingMetaData}.
- *
- * @author thomas.diesler(a)jboss.com
- * @since 07-Jan-2010
- */
-public class AbstractClassLoadingDeployer extends
AbstractSimpleRealDeployer<OSGiMetaData>
-{
- private ClassLoaderDomain domain;
- private ClassLoaderFactory factory;
-
- public AbstractClassLoadingDeployer()
- {
- super(OSGiMetaData.class);
- addInput(AbstractBundleState.class);
- addInput(ClassLoadingMetaData.class);
- addOutput(ClassLoadingMetaData.class);
- setStage(DeploymentStages.POST_PARSE);
- setTopLevelOnly(true);
- }
-
- public void setDomain(ClassLoaderDomain domain)
- {
- this.domain = domain;
- }
-
- public void setFactory(ClassLoaderFactory factory)
- {
- this.factory = factory;
- }
-
- @Override
- public void deploy(DeploymentUnit unit, OSGiMetaData osgiMetaData) throws
DeploymentException
- {
- if (unit.isAttachmentPresent(ClassLoadingMetaData.class))
- return;
-
- AbstractBundleState bundleState = unit.getAttachment(AbstractBundleState.class);
- if (bundleState == null)
- throw new IllegalStateException("No bundle state");
-
- OSGiBundleManager bundleManager = bundleState.getBundleManager();
-
- OSGiClassLoadingMetaData classLoadingMetaData = new OSGiClassLoadingMetaData();
- classLoadingMetaData.setName(bundleState.getSymbolicName());
- classLoadingMetaData.setVersion(bundleState.getVersion());
- classLoadingMetaData.setDomain(domain != null ? domain.getName() : null);
- classLoadingMetaData.setShutdownPolicy(ShutdownPolicy.GARBAGE_COLLECTION);
-
- CapabilitiesMetaData capabilities = classLoadingMetaData.getCapabilities();
- RequirementsMetaData requirements = classLoadingMetaData.getRequirements();
-
- OSGiBundleCapability bundleCapability = OSGiBundleCapability.create(bundleState);
- capabilities.addCapability(bundleCapability);
-
- // Required Bundles
- List<ParameterizedAttribute> requireBundles =
osgiMetaData.getRequireBundles();
- if (requireBundles != null && requireBundles.isEmpty() == false)
- {
- for (ParameterizedAttribute requireBundle : requireBundles)
- {
- OSGiBundleRequirement requirement =
OSGiBundleRequirement.create(requireBundle);
- requirements.addRequirement(requirement);
- }
- }
-
- // Export-Package
- List<PackageAttribute> exports = osgiMetaData.getExportPackages();
- if (exports != null && exports.isEmpty() == false)
- {
- for (PackageAttribute packageAttribute : exports)
- {
- OSGiPackageCapability packageCapability =
OSGiPackageCapability.create(bundleState, packageAttribute);
- capabilities.addCapability(packageCapability);
- }
- }
-
- // Import-Package
- List<PackageAttribute> imports = osgiMetaData.getImportPackages();
- if (imports != null && imports.isEmpty() == false)
- {
- SystemPackagesPlugin syspackPlugin =
bundleManager.getPlugin(SystemPackagesPlugin.class);
- for (PackageAttribute packageAttribute : imports)
- {
- String packageName = packageAttribute.getAttribute();
-
- // [TODO] Should system packages be added as capabilities?
- if (syspackPlugin.isSystemPackage(packageName) == true)
- continue;
-
- OSGiPackageRequirement requirement =
OSGiPackageRequirement.create(bundleState, packageAttribute, false);
- requirements.addRequirement(requirement);
- }
- }
-
- // DynamicImport-Package
- List<PackageAttribute> dynamicImports = osgiMetaData.getDynamicImports();
- if (dynamicImports != null && dynamicImports.isEmpty() == false)
- {
- SystemPackagesPlugin syspackPlugin =
bundleManager.getPlugin(SystemPackagesPlugin.class);
- for (PackageAttribute packageAttribute : dynamicImports)
- {
- String packageName = packageAttribute.getAttribute();
-
- // [TODO] Should system packages be added as capabilities?
- if (syspackPlugin.isSystemPackage(packageName) == true)
- continue;
-
- OSGiPackageRequirement requirement =
OSGiPackageRequirement.create(bundleState, packageAttribute, true);
- requirements.addRequirement(requirement);
- }
- }
-
- unit.addAttachment(ClassLoadingMetaData.class, classLoadingMetaData);
-
- // AnnotationMetaDataDeployer.ANNOTATION_META_DATA_COMPLETE
- unit.addAttachment("org.jboss.deployment.annotation.metadata.complete",
Boolean.TRUE);
-
- // Add the OSGi ClassLoaderFactory if configured
- if (factory != null)
- unit.addAttachment(ClassLoaderFactory.class, factory);
- }
-}
Copied:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/deployers/AbstractClassLoadingDeployer.java
(from rev 103431,
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/deployers/AbstractClassLoadingDeployer.java)
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/deployers/AbstractClassLoadingDeployer.java
(rev 0)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/deployers/AbstractClassLoadingDeployer.java 2010-04-01
14:43:57 UTC (rev 103435)
@@ -0,0 +1,177 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2009, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+*/
+package org.jboss.osgi.framework.deployers;
+
+// $Id$
+
+import java.util.List;
+
+import org.jboss.classloader.spi.ClassLoaderDomain;
+import org.jboss.classloader.spi.ShutdownPolicy;
+import org.jboss.classloading.spi.metadata.CapabilitiesMetaData;
+import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;
+import org.jboss.classloading.spi.metadata.RequirementsMetaData;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.DeploymentStages;
+import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
+import org.jboss.deployers.structure.spi.ClassLoaderFactory;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.osgi.framework.bundle.AbstractBundleState;
+import org.jboss.osgi.framework.bundle.OSGiBundleManager;
+import org.jboss.osgi.framework.classloading.OSGiBundleCapability;
+import org.jboss.osgi.framework.classloading.OSGiBundleRequirement;
+import org.jboss.osgi.framework.classloading.OSGiClassLoadingMetaData;
+import org.jboss.osgi.framework.classloading.OSGiPackageCapability;
+import org.jboss.osgi.framework.classloading.OSGiPackageRequirement;
+import org.jboss.osgi.framework.metadata.OSGiMetaData;
+import org.jboss.osgi.framework.metadata.PackageAttribute;
+import org.jboss.osgi.framework.metadata.ParameterizedAttribute;
+import org.jboss.osgi.framework.plugins.SystemPackagesPlugin;
+
+/**
+ * An abstract OSGi classloading deployer, that maps {@link OSGiMetaData} into {@link
ClassLoadingMetaData}.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 07-Jan-2010
+ */
+public class AbstractClassLoadingDeployer extends
AbstractSimpleRealDeployer<OSGiMetaData>
+{
+ private ClassLoaderDomain domain;
+ private ClassLoaderFactory factory;
+
+ public AbstractClassLoadingDeployer()
+ {
+ super(OSGiMetaData.class);
+ addInput(AbstractBundleState.class);
+ addInput(ClassLoadingMetaData.class);
+ addOutput(ClassLoadingMetaData.class);
+ setStage(DeploymentStages.POST_PARSE);
+ setTopLevelOnly(true);
+ }
+
+ public void setDomain(ClassLoaderDomain domain)
+ {
+ this.domain = domain;
+ }
+
+ public void setFactory(ClassLoaderFactory factory)
+ {
+ this.factory = factory;
+ }
+
+ @Override
+ public void deploy(DeploymentUnit unit, OSGiMetaData osgiMetaData) throws
DeploymentException
+ {
+ if (unit.isAttachmentPresent(ClassLoadingMetaData.class))
+ return;
+
+ AbstractBundleState bundleState = unit.getAttachment(AbstractBundleState.class);
+ if (bundleState == null)
+ throw new IllegalStateException("No bundle state");
+
+ OSGiBundleManager bundleManager = bundleState.getBundleManager();
+
+ OSGiClassLoadingMetaData classLoadingMetaData = new OSGiClassLoadingMetaData();
+ classLoadingMetaData.setName(bundleState.getSymbolicName());
+ classLoadingMetaData.setVersion(bundleState.getVersion());
+ classLoadingMetaData.setDomain(domain != null ? domain.getName() : null);
+ classLoadingMetaData.setShutdownPolicy(ShutdownPolicy.GARBAGE_COLLECTION);
+
+ CapabilitiesMetaData capabilities = classLoadingMetaData.getCapabilities();
+ RequirementsMetaData requirements = classLoadingMetaData.getRequirements();
+
+ OSGiBundleCapability bundleCapability = OSGiBundleCapability.create(bundleState);
+ capabilities.addCapability(bundleCapability);
+
+ // Required Bundles
+ List<ParameterizedAttribute> requireBundles =
osgiMetaData.getRequireBundles();
+ if (requireBundles != null && requireBundles.isEmpty() == false)
+ {
+ for (ParameterizedAttribute requireBundle : requireBundles)
+ {
+ OSGiBundleRequirement requirement =
OSGiBundleRequirement.create(requireBundle);
+ requirements.addRequirement(requirement);
+ }
+ }
+
+ // Export-Package
+ List<PackageAttribute> exports = osgiMetaData.getExportPackages();
+ if (exports != null && exports.isEmpty() == false)
+ {
+ for (PackageAttribute packageAttribute : exports)
+ {
+ OSGiPackageCapability packageCapability =
OSGiPackageCapability.create(bundleState, packageAttribute);
+ capabilities.addCapability(packageCapability);
+ }
+ }
+
+ // Import-Package
+ List<PackageAttribute> imports = osgiMetaData.getImportPackages();
+ if (imports != null && imports.isEmpty() == false)
+ {
+ SystemPackagesPlugin syspackPlugin =
bundleManager.getPlugin(SystemPackagesPlugin.class);
+ for (PackageAttribute packageAttribute : imports)
+ {
+ String packageName = packageAttribute.getAttribute();
+
+ // [TODO] Should system packages be added as capabilities?
+ if (syspackPlugin.isSystemPackage(packageName) == true)
+ continue;
+
+ OSGiPackageRequirement requirement =
OSGiPackageRequirement.create(bundleState, packageAttribute, false);
+ requirements.addRequirement(requirement);
+ }
+ }
+
+ // DynamicImport-Package
+ List<PackageAttribute> dynamicImports = osgiMetaData.getDynamicImports();
+ if (dynamicImports != null && dynamicImports.isEmpty() == false)
+ {
+ SystemPackagesPlugin syspackPlugin =
bundleManager.getPlugin(SystemPackagesPlugin.class);
+ for (PackageAttribute packageAttribute : dynamicImports)
+ {
+ String packageName = packageAttribute.getAttribute();
+
+ // [TODO] Should system packages be added as capabilities?
+ if (syspackPlugin.isSystemPackage(packageName) == true)
+ continue;
+
+ // Wildcards not yet supported
+ if (packageName.endsWith("*") == false)
+ {
+ OSGiPackageRequirement requirement =
OSGiPackageRequirement.create(bundleState, packageAttribute, true);
+ requirements.addRequirement(requirement);
+ }
+ }
+ }
+
+
+ unit.addAttachment(ClassLoadingMetaData.class, classLoadingMetaData);
+
+ // AnnotationMetaDataDeployer.ANNOTATION_META_DATA_COMPLETE
+ unit.addAttachment("org.jboss.deployment.annotation.metadata.complete",
Boolean.TRUE);
+
+ // Add the OSGi ClassLoaderFactory if configured
+ if (factory != null)
+ unit.addAttachment(ClassLoaderFactory.class, factory);
+ }
+}
Deleted:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/plugins/internal/FrameworkEventsPluginImpl.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/plugins/internal/FrameworkEventsPluginImpl.java 2010-04-01
12:33:35 UTC (rev 103420)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/plugins/internal/FrameworkEventsPluginImpl.java 2010-04-01
14:43:57 UTC (rev 103435)
@@ -1,857 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.osgi.framework.plugins.internal;
-
-//$Id: SystemPackagesPluginImpl.java 92858 2009-08-27 10:58:32Z thomas.diesler(a)jboss.com
$
-
-import java.security.AccessControlContext;
-import java.security.AccessController;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.Map.Entry;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-import org.jboss.logging.Logger;
-import org.jboss.osgi.framework.bundle.AbstractBundleState;
-import org.jboss.osgi.framework.bundle.OSGiBundleManager;
-import org.jboss.osgi.framework.bundle.OSGiServiceState;
-import org.jboss.osgi.framework.plugins.FrameworkEventsPlugin;
-import org.jboss.osgi.framework.util.NoFilter;
-import org.jboss.osgi.framework.util.RemoveOnlyCollection;
-import org.jboss.osgi.spi.util.ConstantsHelper;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleEvent;
-import org.osgi.framework.BundleListener;
-import org.osgi.framework.Filter;
-import org.osgi.framework.FrameworkEvent;
-import org.osgi.framework.FrameworkListener;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceEvent;
-import org.osgi.framework.ServiceListener;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.SynchronousBundleListener;
-import org.osgi.framework.hooks.service.EventHook;
-import org.osgi.framework.hooks.service.ListenerHook;
-import org.osgi.framework.hooks.service.ListenerHook.ListenerInfo;
-
-/**
- * A plugin that manages {@link FrameworkListener}, {@link BundleListener}, {@link
ServiceListener} and their
- * associated {@link FrameworkEvent}, {@link BundleEvent}, {@link ServiceEvent}.
- *
- * @author thomas.diesler(a)jboss.com
- * @since 18-Aug-2009
- */
-public class FrameworkEventsPluginImpl extends AbstractPlugin implements
FrameworkEventsPlugin
-{
- // Provide logging
- final Logger log = Logger.getLogger(FrameworkEventsPluginImpl.class);
-
- /** The active state of this plugin */
- private boolean active;
- /** The bundle listeners */
- private final Map<Bundle, List<BundleListener>> bundleListeners = new
ConcurrentHashMap<Bundle, List<BundleListener>>();
- /** The framework listeners */
- private final Map<Bundle, List<FrameworkListener>> frameworkListeners =
new ConcurrentHashMap<Bundle, List<FrameworkListener>>();
- /** The service listeners */
- private final Map<Bundle, List<ServiceListenerRegistration>>
serviceListeners = new ConcurrentHashMap<Bundle,
List<ServiceListenerRegistration>>();
-
- /** The executor service */
- private ExecutorService executorService;
- /** True for synchronous event delivery */
- private boolean synchronous;
- /** The set of bundle events that are delivered to an (asynchronous) BundleListener
*/
- private Set<Integer> asyncBundleEvents = new HashSet<Integer>();
-
- public FrameworkEventsPluginImpl(OSGiBundleManager bundleManager)
- {
- super(bundleManager);
- executorService = Executors.newCachedThreadPool();
- asyncBundleEvents.add(new Integer(BundleEvent.INSTALLED));
- asyncBundleEvents.add(new Integer(BundleEvent.RESOLVED));
- asyncBundleEvents.add(new Integer(BundleEvent.STARTED));
- asyncBundleEvents.add(new Integer(BundleEvent.STOPPED));
- asyncBundleEvents.add(new Integer(BundleEvent.UPDATED));
- asyncBundleEvents.add(new Integer(BundleEvent.UNRESOLVED));
- asyncBundleEvents.add(new Integer(BundleEvent.UNINSTALLED));
- }
-
- public void setSynchronous(boolean synchronous)
- {
- this.synchronous = synchronous;
- }
-
- @Override
- public boolean isActive()
- {
- return active;
- }
-
- @Override
- public void setActive(boolean active)
- {
- this.active = active;
- }
-
- @Override
- public void addBundleListener(Bundle bundle, BundleListener listener)
- {
- if (listener == null)
- throw new IllegalArgumentException("Null listener");
-
- bundle = assertBundle(bundle);
-
- synchronized (bundleListeners)
- {
- List<BundleListener> listeners = bundleListeners.get(bundle);
- if (listeners == null)
- {
- listeners = new CopyOnWriteArrayList<BundleListener>();
- bundleListeners.put(bundle, listeners);
- }
- if (listeners.contains(listener) == false)
- listeners.add(listener);
- }
- }
-
- @Override
- public void removeBundleListener(Bundle bundle, BundleListener listener)
- {
- if (listener == null)
- throw new IllegalArgumentException("Null listener");
-
- bundle = assertBundle(bundle);
-
- synchronized (bundleListeners)
- {
- List<BundleListener> listeners = bundleListeners.get(bundle);
- if (listeners != null)
- {
- if (listeners.size() > 1)
- listeners.remove(listener);
- else
- removeBundleListeners(bundle);
- }
- }
- }
-
- @Override
- public void removeBundleListeners(Bundle bundle)
- {
- synchronized (bundleListeners)
- {
- bundle = assertBundle(bundle);
- bundleListeners.remove(bundle);
- }
- }
-
- @Override
- public void addFrameworkListener(Bundle bundle, FrameworkListener listener)
- {
- if (listener == null)
- throw new IllegalArgumentException("Null listener");
-
- bundle = assertBundle(bundle);
-
- synchronized (frameworkListeners)
- {
- List<FrameworkListener> listeners = frameworkListeners.get(bundle);
- if (listeners == null)
- {
- listeners = new CopyOnWriteArrayList<FrameworkListener>();
- frameworkListeners.put(bundle, listeners);
- }
- if (listeners.contains(listener) == false)
- listeners.add(listener);
- }
- }
-
- @Override
- public void removeFrameworkListener(Bundle bundle, FrameworkListener listener)
- {
- if (listener == null)
- throw new IllegalArgumentException("Null listener");
-
- bundle = assertBundle(bundle);
-
- synchronized (frameworkListeners)
- {
- List<FrameworkListener> listeners = frameworkListeners.get(bundle);
- if (listeners != null)
- {
- if (listeners.size() > 1)
- listeners.remove(listener);
- else
- removeFrameworkListeners(bundle);
- }
- }
- }
-
- @Override
- public void removeFrameworkListeners(Bundle bundle)
- {
- synchronized (frameworkListeners)
- {
- bundle = assertBundle(bundle);
- frameworkListeners.remove(bundle);
- }
- }
-
- @Override
- public void addServiceListener(Bundle bundle, ServiceListener listener, String
filterstr) throws InvalidSyntaxException
- {
- if (listener == null)
- throw new IllegalArgumentException("Null listener");
-
- bundle = assertBundle(bundle);
-
- synchronized (serviceListeners)
- {
- List<ServiceListenerRegistration> listeners =
serviceListeners.get(bundle);
- if (listeners == null)
- {
- listeners = new CopyOnWriteArrayList<ServiceListenerRegistration>();
- serviceListeners.put(bundle, listeners);
- }
-
- // If the context bundle's list of listeners already contains a listener l
such that (l==listener),
- // then this method replaces that listener's filter (which may be null) with
the specified one (which may be null).
- removeServiceListener(bundle, listener);
-
- // Create the new listener registration
- Filter filter = (filterstr != null ? FrameworkUtil.createFilter(filterstr) :
NoFilter.INSTANCE);
- ServiceListenerRegistration slreg = new ServiceListenerRegistration(bundle,
listener, filter);
-
- // The {@link ListenerHook} added method is called to provide the hook
implementation with information on newly added service listeners.
- // This method will be called as service listeners are added while this hook is
registered
- for (ListenerHook hook : getServiceListenerHooks())
- {
- try
- {
- hook.added(Collections.singleton(slreg.getListenerInfo()));
- }
- catch (RuntimeException ex)
- {
- log.error("Error processing ListenerHook: " + hook, ex);
- }
- }
-
- // Add the listener to the list
- listeners.add(slreg);
- }
- }
-
- @Override
- public Collection<ListenerInfo> getServiceListenerInfos(Bundle bundle)
- {
- Collection<ListenerInfo> listeners = new ArrayList<ListenerInfo>();
- for (Entry<Bundle, List<ServiceListenerRegistration>> entry :
serviceListeners.entrySet())
- {
- if (bundle == null || assertBundle(bundle).equals(entry.getKey()))
- {
- for (ServiceListenerRegistration aux : entry.getValue())
- {
- ListenerInfo info = aux.getListenerInfo();
- listeners.add(info);
- }
- }
- }
- return Collections.unmodifiableCollection(listeners);
- }
-
- @Override
- public void removeServiceListener(Bundle bundle, ServiceListener listener)
- {
- if (listener == null)
- throw new IllegalArgumentException("Null listener");
-
- bundle = assertBundle(bundle);
-
- synchronized (serviceListeners)
- {
- List<ServiceListenerRegistration> listeners =
serviceListeners.get(bundle);
- if (listeners != null)
- {
- ServiceListenerRegistration slreg = new ServiceListenerRegistration(bundle,
listener, NoFilter.INSTANCE);
- int index = listeners.indexOf(slreg);
- if (index >= 0)
- {
- slreg = listeners.remove(index);
-
- // The {@link ListenerHook} 'removed' method is called to provide
the hook implementation with information on newly removed service listeners.
- // This method will be called as service listeners are removed while this
hook is registered.
- for (ListenerHook hook : getServiceListenerHooks())
- {
- try
- {
- ListenerInfoImpl info = (ListenerInfoImpl)slreg.getListenerInfo();
- info.setRemoved(true);
- hook.removed(Collections.singleton(info));
- }
- catch (RuntimeException ex)
- {
- log.error("Error processing ListenerHook: " + hook, ex);
- }
- }
- }
- }
- }
- }
-
- @Override
- public void removeServiceListeners(Bundle bundle)
- {
- synchronized (serviceListeners)
- {
- Collection<ListenerInfo> listenerInfos = getServiceListenerInfos(bundle);
- serviceListeners.remove(assertBundle(bundle));
-
- // The {@link ListenerHook} 'removed' method is called to provide the
hook implementation with information on newly removed service listeners.
- // This method will be called as service listeners are removed while this hook
is registered.
- for (ListenerHook hook : getServiceListenerHooks())
- {
- try
- {
- hook.removed(listenerInfos);
- }
- catch (RuntimeException ex)
- {
- log.error("Error processing ListenerHook: " + hook, ex);
- }
- }
- }
- }
-
- private List<ListenerHook> getServiceListenerHooks()
- {
- BundleContext context = getBundleManager().getSystemContext();
- ServiceReference[] srefs = null;
- try
- {
- srefs = context.getServiceReferences(ListenerHook.class.getName(), null);
- }
- catch (InvalidSyntaxException e)
- {
- // ignore
- }
- if (srefs == null)
- return Collections.emptyList();
-
- List<ListenerHook> hooks = new ArrayList<ListenerHook>();
- for (ServiceReference sref : srefs)
- hooks.add((ListenerHook)context.getService(sref));
-
- return Collections.unmodifiableList(hooks);
- }
-
- @Override
- public void fireBundleEvent(final Bundle bundle, final int type)
- {
- // Get a snapshot of the current listeners
- final List<BundleListener> listeners = new
ArrayList<BundleListener>();
- synchronized (bundleListeners)
- {
- for (Entry<Bundle, List<BundleListener>> entry :
bundleListeners.entrySet())
- {
- for (BundleListener listener : entry.getValue())
- {
- listeners.add(listener);
- }
- }
- }
-
- // Expose the bundl wrapper not the state itself
- final BundleEvent event = new OSGiBundleEvent(type, assertBundle(bundle));
- final String typeName = ConstantsHelper.bundleEvent(event.getType());
-
- if (asyncBundleEvents.contains(event.getType()))
- log.info("Bundle " + typeName + ": " + bundle);
- else
- log.debug("Bundle " + typeName + ": " + bundle);
-
- // Nobody is interested
- if (listeners.isEmpty())
- return;
-
- // Are we active?
- if (getBundleManager().isFrameworkActive() == false)
- return;
-
- Runnable runnable = new Runnable()
- {
- public void run()
- {
- // Synchronous listeners first
- for (BundleListener listener : listeners)
- {
- try
- {
- if (listener instanceof SynchronousBundleListener)
- listener.bundleChanged(event);
- }
- catch (Throwable t)
- {
- log.warn("Error while firing " + typeName + " for bundle
" + bundle, t);
- }
- }
-
- // BundleListeners are called with a BundleEvent object when a bundle has
been
- // installed, resolved, started, stopped, updated, unresolved, or
uninstalled
- if (asyncBundleEvents.contains(type))
- {
- for (BundleListener listener : listeners)
- {
- try
- {
- if (listener instanceof SynchronousBundleListener == false)
- listener.bundleChanged(event);
- }
- catch (Throwable t)
- {
- log.warn("Error while firing " + typeName + " for
bundle " + this, t);
- }
- }
- }
- }
- };
-
- // Fire the event in a runnable
- fireEvent(runnable, synchronous);
- }
-
- @Override
- public void fireFrameworkEvent(final Bundle bundle, final int type, final Throwable
throwable)
- {
- // Get a snapshot of the current listeners
- final ArrayList<FrameworkListener> listeners = new
ArrayList<FrameworkListener>();
- synchronized (frameworkListeners)
- {
- for (Entry<Bundle, List<FrameworkListener>> entry :
frameworkListeners.entrySet())
- {
- for (FrameworkListener listener : entry.getValue())
- {
- listeners.add(listener);
- }
- }
- }
-
- // Nobody is interested
- if (listeners.isEmpty())
- return;
-
- // Are we active?
- if (getBundleManager().isFrameworkActive() == false)
- return;
-
- Runnable runnable = new Runnable()
- {
- public void run()
- {
- // Expose the wrapper not the state itself
- FrameworkEvent event = new OSGiFrameworkEvent(type, assertBundle(bundle),
throwable);
- String typeName = ConstantsHelper.frameworkEvent(event.getType());
-
- log.info("Framwork " + typeName);
-
- // Nobody is interested
- if (frameworkListeners.isEmpty())
- return;
-
- // Are we active?
- if (getBundleManager().isFrameworkActive() == false)
- return;
-
- // Call the listeners
- for (FrameworkListener listener : listeners)
- {
- try
- {
- listener.frameworkEvent(event);
- }
- catch (RuntimeException ex)
- {
- log.warn("Error while firing " + typeName + " for
framework", ex);
-
- // The Framework must publish a FrameworkEvent.ERROR if a callback to
an
- // event listener generates an unchecked exception - except when the
callback
- // happens while delivering a FrameworkEvent.ERROR
- if (type != FrameworkEvent.ERROR)
- {
- fireFrameworkEvent(bundle, FrameworkEvent.ERROR, ex);
- }
- }
- catch (Throwable t)
- {
- log.warn("Error while firing " + typeName + " for
framework", t);
- }
- }
- }
- };
-
- // Fire the event in a runnable
- fireEvent(runnable, synchronous);
- }
-
- @Override
- public void fireServiceEvent(Bundle bundle, int type, final OSGiServiceState service)
- {
- // Get a snapshot of the current listeners
- List<ServiceListenerRegistration> listeners = new
ArrayList<ServiceListenerRegistration>();
- synchronized (serviceListeners)
- {
- for (Entry<Bundle, List<ServiceListenerRegistration>> entry :
serviceListeners.entrySet())
- {
- for (ServiceListenerRegistration listener : entry.getValue())
- {
- BundleContext context = listener.getBundleContext();
- if (context != null)
- listeners.add(listener);
- }
- }
- }
-
- // Expose the wrapper not the state itself
- ServiceEvent event = new OSGiServiceEvent(type, service.getReferenceInternal());
- String typeName = ConstantsHelper.serviceEvent(event.getType());
-
- log.info("Service " + typeName + ": " + service);
-
- // Do nothing if the Framework is not active
- if (getBundleManager().isFrameworkActive() == false)
- return;
-
- // Call the registered event hooks
- listeners = processEventHooks(listeners, event);
-
- // Nobody is interested
- if (listeners.isEmpty())
- return;
-
- // Call the listeners. All service events are synchronously delivered
- for (ServiceListenerRegistration listener : listeners)
- {
- try
- {
- String filterstr = listener.filter.toString();
- if (listener.filter.match(service))
- {
- AccessControlContext accessControlContext =
listener.accessControlContext;
- if (accessControlContext == null ||
service.hasPermission(accessControlContext))
- listener.listener.serviceChanged(event);
- }
-
- // The MODIFIED_ENDMATCH event is synchronously delivered after the service
properties have been modified.
- // This event is only delivered to listeners which were added with a non-null
filter where
- // the filter matched the service properties prior to the modification but
the filter does
- // not match the modified service properties.
- else if (filterstr != null && ServiceEvent.MODIFIED ==
event.getType())
- {
- if (listener.filter.match(service.getPreviousProperties()))
- {
- event = new OSGiServiceEvent(ServiceEvent.MODIFIED_ENDMATCH,
service.getReferenceInternal());
- AccessControlContext accessControlContext =
listener.accessControlContext;
- if (accessControlContext == null ||
service.hasPermission(accessControlContext))
- listener.listener.serviceChanged(event);
- }
- }
- }
- catch (Throwable t)
- {
- log.warn("Error while firing " + typeName + " for service
" + service, t);
- }
- }
- }
-
- private List<ServiceListenerRegistration>
processEventHooks(List<ServiceListenerRegistration> listeners, final ServiceEvent
event)
- {
- // Collect the BundleContexts
- Collection<BundleContext> contexts = new HashSet<BundleContext>();
- for (ServiceListenerRegistration listener : listeners)
- {
- BundleContext context = listener.getBundleContext();
- if (context != null)
- contexts.add(context);
- }
- contexts = new RemoveOnlyCollection<BundleContext>(contexts);
-
- // Call the registered event hooks
- List<EventHook> eventHooks = getEventHooks();
- for (EventHook hook : eventHooks)
- {
- try
- {
- hook.event(event, contexts);
- }
- catch (Exception ex)
- {
- log.warn("Error while calling EventHook: " + hook, ex);
- }
- }
-
- // Remove the listeners that have been filtered by the EventHooks
- if (contexts.size() != listeners.size())
- {
- Iterator<ServiceListenerRegistration> it = listeners.iterator();
- while (it.hasNext())
- {
- ServiceListenerRegistration slreg = it.next();
- if (contexts.contains(slreg.getBundleContext()) == false)
- it.remove();
- }
- }
- return listeners;
- }
-
- private List<EventHook> getEventHooks()
- {
- List<EventHook> hooks = new ArrayList<EventHook>();
- BundleContext context = getBundleManager().getSystemContext();
- ServiceReference[] srefs = null;
- try
- {
- srefs = context.getServiceReferences(EventHook.class.getName(), null);
- }
- catch (InvalidSyntaxException e)
- {
- // ignore
- }
- if (srefs != null)
- {
- // The calling order of the hooks is defined by the reversed compareTo ordering
of their Service
- // Reference objects. That is, the service with the highest ranking number is
called first.
- List<ServiceReference> sortedRefs = new
ArrayList<ServiceReference>(Arrays.asList(srefs));
- Collections.reverse(sortedRefs);
-
- for (ServiceReference sref : sortedRefs)
- hooks.add((EventHook)context.getService(sref));
- }
- return hooks;
- }
-
- private static Bundle assertBundle(Bundle bundle)
- {
- if (bundle == null)
- throw new IllegalArgumentException("Null bundle");
-
- // Expose the wrapper not the state itself
- if (bundle instanceof AbstractBundleState)
- bundle = ((AbstractBundleState)bundle).getBundleInternal();
-
- return bundle;
- }
-
- private void fireEvent(Runnable runnable, boolean synchronous)
- {
- if (synchronous)
- {
- runnable.run();
- }
- else
- {
- executorService.execute(runnable);
- }
- }
-
- /**
- * Filter and AccessControl for service events
- */
- static class ServiceListenerRegistration
- {
- private Bundle bundle;
- private ServiceListener listener;
- private Filter filter;
- private ListenerInfo info;
-
- // Any access control context
- AccessControlContext accessControlContext;
-
- ServiceListenerRegistration(Bundle bundle, ServiceListener listener, Filter
filter)
- {
- if (bundle == null)
- throw new IllegalArgumentException("Null bundle");
- if (listener == null)
- throw new IllegalArgumentException("Null listener");
- if (filter == null)
- throw new IllegalArgumentException("Null filter");
-
- this.bundle = assertBundle(bundle);
- this.listener = listener;
- this.filter = filter;
- this.info = new ListenerInfoImpl(this);
-
- if (System.getSecurityManager() != null)
- accessControlContext = AccessController.getContext();
- }
-
- public BundleContext getBundleContext()
- {
- return bundle.getBundleContext();
- }
-
- public ListenerInfo getListenerInfo()
- {
- return info;
- }
-
- @Override
- public int hashCode()
- {
- return listener.hashCode();
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (obj instanceof ServiceListenerRegistration == false)
- return false;
-
- // Only the ServiceListener instance determins equality
- ServiceListenerRegistration other = (ServiceListenerRegistration)obj;
- return other.listener.equals(listener);
- }
-
- @Override
- public String toString()
- {
- String className = listener.getClass().getName();
- return "ServiceListener[" + bundle + "," + className +
"," + filter + "]";
- }
- }
-
- static class ListenerInfoImpl implements ListenerInfo
- {
- private BundleContext context;
- private ServiceListener listener;
- private String filter;
- private boolean removed;
-
- ListenerInfoImpl(ServiceListenerRegistration slreg)
- {
- this.context = slreg.bundle.getBundleContext();
- this.listener = slreg.listener;
- this.filter = slreg.filter.toString();
- }
-
- @Override
- public BundleContext getBundleContext()
- {
- return context;
- }
-
- @Override
- public String getFilter()
- {
- return filter;
- }
-
- @Override
- public boolean isRemoved()
- {
- return removed;
- }
-
- public void setRemoved(boolean removed)
- {
- this.removed = removed;
- }
-
- @Override
- public int hashCode()
- {
- return toString().hashCode();
- }
-
- @Override
- public boolean equals(Object obj)
- {
- // Two ListenerInfos are equals if they refer to the same listener for a given
addition and removal life cycle.
- // If the same listener is added again, it must have a different ListenerInfo
which is not equal to this ListenerInfo.
- return super.equals(obj);
- }
-
- @Override
- public String toString()
- {
- String className = listener.getClass().getName();
- return "ListenerInfo[" + context + "," + className +
"," + removed + "]";
- }
- }
-
- static class OSGiFrameworkEvent extends FrameworkEvent
- {
- private static final long serialVersionUID = 6505331543651318189L;
-
- public OSGiFrameworkEvent(int type, Bundle bundle, Throwable throwable)
- {
- super(type, bundle, throwable);
- }
-
- @Override
- public String toString()
- {
- return "FrameworkEvent[type=" +
ConstantsHelper.frameworkEvent(getType()) + ",source=" + getSource() +
"]";
- }
- }
-
- static class OSGiBundleEvent extends BundleEvent
- {
- private static final long serialVersionUID = -2705304702665185935L;
-
- public OSGiBundleEvent(int type, Bundle bundle)
- {
- super(type, bundle);
- }
-
- @Override
- public String toString()
- {
- return "BundleEvent[type=" + ConstantsHelper.bundleEvent(getType()) +
",source=" + getSource() + "]";
- }
- }
-
- static class OSGiServiceEvent extends ServiceEvent
- {
- private static final long serialVersionUID = 62018288275708239L;
-
- public OSGiServiceEvent(int type, ServiceReference reference)
- {
- super(type, reference);
- }
-
- @Override
- public String toString()
- {
- return "ServiceEvent[type=" + ConstantsHelper.serviceEvent(getType())
+ ",source=" + getSource() + "]";
- }
- }
-}
\ No newline at end of file
Copied:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/plugins/internal/FrameworkEventsPluginImpl.java
(from rev 103431,
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/plugins/internal/FrameworkEventsPluginImpl.java)
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/plugins/internal/FrameworkEventsPluginImpl.java
(rev 0)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/core/src/main/java/org/jboss/osgi/framework/plugins/internal/FrameworkEventsPluginImpl.java 2010-04-01
14:43:57 UTC (rev 103435)
@@ -0,0 +1,896 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.osgi.framework.plugins.internal;
+
+//$Id: SystemPackagesPluginImpl.java 92858 2009-08-27 10:58:32Z thomas.diesler(a)jboss.com
$
+
+import java.security.AccessControlContext;
+import java.security.AccessController;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Map.Entry;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import org.jboss.logging.Logger;
+import org.jboss.osgi.framework.bundle.AbstractBundleState;
+import org.jboss.osgi.framework.bundle.OSGiBundleManager;
+import org.jboss.osgi.framework.bundle.OSGiServiceState;
+import org.jboss.osgi.framework.plugins.FrameworkEventsPlugin;
+import org.jboss.osgi.framework.util.NoFilter;
+import org.jboss.osgi.framework.util.RemoveOnlyCollection;
+import org.jboss.osgi.spi.util.ConstantsHelper;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.BundleListener;
+import org.osgi.framework.Filter;
+import org.osgi.framework.FrameworkEvent;
+import org.osgi.framework.FrameworkListener;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceEvent;
+import org.osgi.framework.ServiceListener;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.SynchronousBundleListener;
+import org.osgi.framework.hooks.service.EventHook;
+import org.osgi.framework.hooks.service.ListenerHook;
+import org.osgi.framework.hooks.service.ListenerHook.ListenerInfo;
+
+/**
+ * A plugin that manages {@link FrameworkListener}, {@link BundleListener},
+ * {@link ServiceListener} and their associated {@link FrameworkEvent},
+ * {@link BundleEvent}, {@link ServiceEvent}.
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 18-Aug-2009
+ */
+public class FrameworkEventsPluginImpl extends AbstractPlugin implements
FrameworkEventsPlugin
+{
+ // Provide logging
+ final Logger log = Logger.getLogger(FrameworkEventsPluginImpl.class);
+
+ /** The active state of this plugin */
+ private boolean active;
+ /** The bundle listeners */
+ private final Map<Bundle, List<BundleListener>> bundleListeners = new
ConcurrentHashMap<Bundle, List<BundleListener>>();
+ /** The framework listeners */
+ private final Map<Bundle, List<FrameworkListener>> frameworkListeners =
new ConcurrentHashMap<Bundle, List<FrameworkListener>>();
+ /** The service listeners */
+ private final Map<Bundle, List<ServiceListenerRegistration>>
serviceListeners = new ConcurrentHashMap<Bundle,
List<ServiceListenerRegistration>>();
+
+ /** The executor service */
+ private ExecutorService executorService;
+ /** True for synchronous event delivery */
+ private boolean synchronous;
+ /**
+ * The set of bundle events that are delivered to an (asynchronous)
+ * BundleListener
+ */
+ private Set<Integer> asyncBundleEvents = new HashSet<Integer>();
+ /** The set of events that are logged at INFO level */
+ private Set<String> infoEvents = new HashSet<String>();
+
+ public FrameworkEventsPluginImpl(OSGiBundleManager bundleManager)
+ {
+ super(bundleManager);
+ executorService = Executors.newCachedThreadPool();
+ asyncBundleEvents.add(new Integer(BundleEvent.INSTALLED));
+ asyncBundleEvents.add(new Integer(BundleEvent.RESOLVED));
+ asyncBundleEvents.add(new Integer(BundleEvent.STARTED));
+ asyncBundleEvents.add(new Integer(BundleEvent.STOPPED));
+ asyncBundleEvents.add(new Integer(BundleEvent.UPDATED));
+ asyncBundleEvents.add(new Integer(BundleEvent.UNRESOLVED));
+ asyncBundleEvents.add(new Integer(BundleEvent.UNINSTALLED));
+ infoEvents.add(ConstantsHelper.frameworkEvent(FrameworkEvent.PACKAGES_REFRESHED));
+ infoEvents.add(ConstantsHelper.bundleEvent(BundleEvent.INSTALLED));
+ infoEvents.add(ConstantsHelper.bundleEvent(BundleEvent.STARTED));
+ infoEvents.add(ConstantsHelper.bundleEvent(BundleEvent.STOPPED));
+ infoEvents.add(ConstantsHelper.bundleEvent(BundleEvent.UNINSTALLED));
+ }
+
+ public void setSynchronous(boolean synchronous)
+ {
+ this.synchronous = synchronous;
+ }
+
+ @Override
+ public boolean isActive()
+ {
+ return active;
+ }
+
+ @Override
+ public void setActive(boolean active)
+ {
+ this.active = active;
+ }
+
+ @Override
+ public void addBundleListener(Bundle bundle, BundleListener listener)
+ {
+ if (listener == null)
+ throw new IllegalArgumentException("Null listener");
+
+ bundle = assertBundle(bundle);
+
+ synchronized (bundleListeners)
+ {
+ List<BundleListener> listeners = bundleListeners.get(bundle);
+ if (listeners == null)
+ {
+ listeners = new CopyOnWriteArrayList<BundleListener>();
+ bundleListeners.put(bundle, listeners);
+ }
+ if (listeners.contains(listener) == false)
+ listeners.add(listener);
+ }
+ }
+
+ @Override
+ public void removeBundleListener(Bundle bundle, BundleListener listener)
+ {
+ if (listener == null)
+ throw new IllegalArgumentException("Null listener");
+
+ bundle = assertBundle(bundle);
+
+ synchronized (bundleListeners)
+ {
+ List<BundleListener> listeners = bundleListeners.get(bundle);
+ if (listeners != null)
+ {
+ if (listeners.size() > 1)
+ listeners.remove(listener);
+ else
+ removeBundleListeners(bundle);
+ }
+ }
+ }
+
+ @Override
+ public void removeBundleListeners(Bundle bundle)
+ {
+ synchronized (bundleListeners)
+ {
+ bundle = assertBundle(bundle);
+ bundleListeners.remove(bundle);
+ }
+ }
+
+ @Override
+ public void addFrameworkListener(Bundle bundle, FrameworkListener listener)
+ {
+ if (listener == null)
+ throw new IllegalArgumentException("Null listener");
+
+ bundle = assertBundle(bundle);
+
+ synchronized (frameworkListeners)
+ {
+ List<FrameworkListener> listeners = frameworkListeners.get(bundle);
+ if (listeners == null)
+ {
+ listeners = new CopyOnWriteArrayList<FrameworkListener>();
+ frameworkListeners.put(bundle, listeners);
+ }
+ if (listeners.contains(listener) == false)
+ listeners.add(listener);
+ }
+ }
+
+ @Override
+ public void removeFrameworkListener(Bundle bundle, FrameworkListener listener)
+ {
+ if (listener == null)
+ throw new IllegalArgumentException("Null listener");
+
+ bundle = assertBundle(bundle);
+
+ synchronized (frameworkListeners)
+ {
+ List<FrameworkListener> listeners = frameworkListeners.get(bundle);
+ if (listeners != null)
+ {
+ if (listeners.size() > 1)
+ listeners.remove(listener);
+ else
+ removeFrameworkListeners(bundle);
+ }
+ }
+ }
+
+ @Override
+ public void removeFrameworkListeners(Bundle bundle)
+ {
+ synchronized (frameworkListeners)
+ {
+ bundle = assertBundle(bundle);
+ frameworkListeners.remove(bundle);
+ }
+ }
+
+ @Override
+ public void addServiceListener(Bundle bundle, ServiceListener listener, String
filterstr) throws InvalidSyntaxException
+ {
+ if (listener == null)
+ throw new IllegalArgumentException("Null listener");
+
+ bundle = assertBundle(bundle);
+
+ synchronized (serviceListeners)
+ {
+ List<ServiceListenerRegistration> listeners =
serviceListeners.get(bundle);
+ if (listeners == null)
+ {
+ listeners = new CopyOnWriteArrayList<ServiceListenerRegistration>();
+ serviceListeners.put(bundle, listeners);
+ }
+
+ // If the context bundle's list of listeners already contains a
+ // listener l such that (l==listener),
+ // then this method replaces that listener's filter (which may be
+ // null) with the specified one (which may be null).
+ removeServiceListener(bundle, listener);
+
+ // Create the new listener registration
+ Filter filter = (filterstr != null ? FrameworkUtil.createFilter(filterstr) :
NoFilter.INSTANCE);
+ ServiceListenerRegistration slreg = new ServiceListenerRegistration(bundle,
listener, filter);
+
+ // The {@link ListenerHook} added method is called to provide the
+ // hook implementation with information on newly added service
+ // listeners.
+ // This method will be called as service listeners are added while
+ // this hook is registered
+ for (ListenerHook hook : getServiceListenerHooks())
+ {
+ try
+ {
+ hook.added(Collections.singleton(slreg.getListenerInfo()));
+ }
+ catch (RuntimeException ex)
+ {
+ log.error("Error processing ListenerHook: " + hook, ex);
+ }
+ }
+
+ // Add the listener to the list
+ listeners.add(slreg);
+ }
+ }
+
+ @Override
+ public Collection<ListenerInfo> getServiceListenerInfos(Bundle bundle)
+ {
+ Collection<ListenerInfo> listeners = new ArrayList<ListenerInfo>();
+ for (Entry<Bundle, List<ServiceListenerRegistration>> entry :
serviceListeners.entrySet())
+ {
+ if (bundle == null || assertBundle(bundle).equals(entry.getKey()))
+ {
+ for (ServiceListenerRegistration aux : entry.getValue())
+ {
+ ListenerInfo info = aux.getListenerInfo();
+ listeners.add(info);
+ }
+ }
+ }
+ return Collections.unmodifiableCollection(listeners);
+ }
+
+ @Override
+ public void removeServiceListener(Bundle bundle, ServiceListener listener)
+ {
+ if (listener == null)
+ throw new IllegalArgumentException("Null listener");
+
+ bundle = assertBundle(bundle);
+
+ synchronized (serviceListeners)
+ {
+ List<ServiceListenerRegistration> listeners =
serviceListeners.get(bundle);
+ if (listeners != null)
+ {
+ ServiceListenerRegistration slreg = new ServiceListenerRegistration(bundle,
listener, NoFilter.INSTANCE);
+ int index = listeners.indexOf(slreg);
+ if (index >= 0)
+ {
+ slreg = listeners.remove(index);
+
+ // The {@link ListenerHook} 'removed' method is called to
+ // provide the hook implementation with information on newly
+ // removed service listeners.
+ // This method will be called as service listeners are
+ // removed while this hook is registered.
+ for (ListenerHook hook : getServiceListenerHooks())
+ {
+ try
+ {
+ ListenerInfoImpl info = (ListenerInfoImpl)slreg.getListenerInfo();
+ info.setRemoved(true);
+ hook.removed(Collections.singleton(info));
+ }
+ catch (RuntimeException ex)
+ {
+ log.error("Error processing ListenerHook: " + hook, ex);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public void removeServiceListeners(Bundle bundle)
+ {
+ synchronized (serviceListeners)
+ {
+ Collection<ListenerInfo> listenerInfos = getServiceListenerInfos(bundle);
+ serviceListeners.remove(assertBundle(bundle));
+
+ // The {@link ListenerHook} 'removed' method is called to provide
+ // the hook implementation with information on newly removed service
+ // listeners.
+ // This method will be called as service listeners are removed while
+ // this hook is registered.
+ for (ListenerHook hook : getServiceListenerHooks())
+ {
+ try
+ {
+ hook.removed(listenerInfos);
+ }
+ catch (RuntimeException ex)
+ {
+ log.error("Error processing ListenerHook: " + hook, ex);
+ }
+ }
+ }
+ }
+
+ private List<ListenerHook> getServiceListenerHooks()
+ {
+ BundleContext context = getBundleManager().getSystemContext();
+ ServiceReference[] srefs = null;
+ try
+ {
+ srefs = context.getServiceReferences(ListenerHook.class.getName(), null);
+ }
+ catch (InvalidSyntaxException e)
+ {
+ // ignore
+ }
+ if (srefs == null)
+ return Collections.emptyList();
+
+ List<ListenerHook> hooks = new ArrayList<ListenerHook>();
+ for (ServiceReference sref : srefs)
+ hooks.add((ListenerHook)context.getService(sref));
+
+ return Collections.unmodifiableList(hooks);
+ }
+
+ @Override
+ public void fireBundleEvent(final Bundle bundle, final int type)
+ {
+ // Get a snapshot of the current listeners
+ final List<BundleListener> listeners = new
ArrayList<BundleListener>();
+ synchronized (bundleListeners)
+ {
+ for (Entry<Bundle, List<BundleListener>> entry :
bundleListeners.entrySet())
+ {
+ for (BundleListener listener : entry.getValue())
+ {
+ listeners.add(listener);
+ }
+ }
+ }
+
+ // Expose the bundl wrapper not the state itself
+ final BundleEvent event = new OSGiBundleEvent(type, assertBundle(bundle));
+ final String typeName = ConstantsHelper.bundleEvent(event.getType());
+
+ if (infoEvents.contains(ConstantsHelper.bundleEvent(event.getType())))
+ log.info("Bundle " + typeName + ": " + bundle);
+ else
+ log.debug("Bundle " + typeName + ": " + bundle);
+
+ // Nobody is interested
+ if (listeners.isEmpty())
+ return;
+
+ // Are we active?
+ if (getBundleManager().isFrameworkActive() == false)
+ return;
+
+ Runnable runnable = new Runnable()
+ {
+ public void run()
+ {
+ // Synchronous listeners first
+ for (BundleListener listener : listeners)
+ {
+ try
+ {
+ if (listener instanceof SynchronousBundleListener)
+ listener.bundleChanged(event);
+ }
+ catch (Throwable t)
+ {
+ log.warn("Error while firing " + typeName + " for bundle
" + bundle, t);
+ }
+ }
+
+ // BundleListeners are called with a BundleEvent object when a
+ // bundle has been
+ // installed, resolved, started, stopped, updated, unresolved,
+ // or uninstalled
+ if (asyncBundleEvents.contains(type))
+ {
+ for (BundleListener listener : listeners)
+ {
+ try
+ {
+ if (listener instanceof SynchronousBundleListener == false)
+ listener.bundleChanged(event);
+ }
+ catch (Throwable t)
+ {
+ log.warn("Error while firing " + typeName + " for
bundle " + this, t);
+ }
+ }
+ }
+ }
+ };
+
+ // Fire the event in a runnable
+ fireEvent(runnable, synchronous);
+ }
+
+ @Override
+ public void fireFrameworkEvent(final Bundle bundle, final int type, final Throwable
throwable)
+ {
+ // Get a snapshot of the current listeners
+ final ArrayList<FrameworkListener> listeners = new
ArrayList<FrameworkListener>();
+ synchronized (frameworkListeners)
+ {
+ for (Entry<Bundle, List<FrameworkListener>> entry :
frameworkListeners.entrySet())
+ {
+ for (FrameworkListener listener : entry.getValue())
+ {
+ listeners.add(listener);
+ }
+ }
+ }
+
+ // Nobody is interested
+ if (listeners.isEmpty())
+ return;
+
+ // Are we active?
+ if (getBundleManager().isFrameworkActive() == false)
+ return;
+
+ Runnable runnable = new Runnable()
+ {
+ public void run()
+ {
+ // Expose the wrapper not the state itself
+ FrameworkEvent event = new OSGiFrameworkEvent(type, assertBundle(bundle),
throwable);
+ String typeName = ConstantsHelper.frameworkEvent(event.getType());
+
+ if (infoEvents.contains(ConstantsHelper.frameworkEvent(event.getType())))
+ log.info("Framwork " + typeName);
+ else
+ log.debug("Framwork " + typeName);
+
+ // Nobody is interested
+ if (frameworkListeners.isEmpty())
+ return;
+
+ // Are we active?
+ if (getBundleManager().isFrameworkActive() == false)
+ return;
+
+ // Call the listeners
+ for (FrameworkListener listener : listeners)
+ {
+ try
+ {
+ listener.frameworkEvent(event);
+ }
+ catch (RuntimeException ex)
+ {
+ log.warn("Error while firing " + typeName + " for
framework", ex);
+
+ // The Framework must publish a FrameworkEvent.ERROR if
+ // a callback to an
+ // event listener generates an unchecked exception -
+ // except when the callback
+ // happens while delivering a FrameworkEvent.ERROR
+ if (type != FrameworkEvent.ERROR)
+ {
+ fireFrameworkEvent(bundle, FrameworkEvent.ERROR, ex);
+ }
+ }
+ catch (Throwable t)
+ {
+ log.warn("Error while firing " + typeName + " for
framework", t);
+ }
+ }
+ }
+ };
+
+ // Fire the event in a runnable
+ fireEvent(runnable, synchronous);
+ }
+
+ @Override
+ public void fireServiceEvent(Bundle bundle, int type, final OSGiServiceState service)
+ {
+ // Get a snapshot of the current listeners
+ List<ServiceListenerRegistration> listeners = new
ArrayList<ServiceListenerRegistration>();
+ synchronized (serviceListeners)
+ {
+ for (Entry<Bundle, List<ServiceListenerRegistration>> entry :
serviceListeners.entrySet())
+ {
+ for (ServiceListenerRegistration listener : entry.getValue())
+ {
+ BundleContext context = listener.getBundleContext();
+ if (context != null)
+ listeners.add(listener);
+ }
+ }
+ }
+
+ // Expose the wrapper not the state itself
+ ServiceEvent event = new OSGiServiceEvent(type, service.getReferenceInternal());
+ String typeName = ConstantsHelper.serviceEvent(event.getType());
+
+ if (infoEvents.contains(ConstantsHelper.serviceEvent(event.getType())))
+ log.info("Service " + typeName + ": " + service);
+ else
+ log.debug("Service " + typeName + ": " + service);
+
+ // Do nothing if the Framework is not active
+ if (getBundleManager().isFrameworkActive() == false)
+ return;
+
+ // Call the registered event hooks
+ listeners = processEventHooks(listeners, event);
+
+ // Nobody is interested
+ if (listeners.isEmpty())
+ return;
+
+ // Call the listeners. All service events are synchronously delivered
+ for (ServiceListenerRegistration listener : listeners)
+ {
+ try
+ {
+ String filterstr = listener.filter.toString();
+ if (listener.filter.match(service))
+ {
+ AccessControlContext accessControlContext =
listener.accessControlContext;
+ if (accessControlContext == null ||
service.hasPermission(accessControlContext))
+ listener.listener.serviceChanged(event);
+ }
+
+ // The MODIFIED_ENDMATCH event is synchronously delivered after
+ // the service properties have been modified.
+ // This event is only delivered to listeners which were added
+ // with a non-null filter where
+ // the filter matched the service properties prior to the
+ // modification but the filter does
+ // not match the modified service properties.
+ else if (filterstr != null && ServiceEvent.MODIFIED ==
event.getType())
+ {
+ if (listener.filter.match(service.getPreviousProperties()))
+ {
+ event = new OSGiServiceEvent(ServiceEvent.MODIFIED_ENDMATCH,
service.getReferenceInternal());
+ AccessControlContext accessControlContext =
listener.accessControlContext;
+ if (accessControlContext == null ||
service.hasPermission(accessControlContext))
+ listener.listener.serviceChanged(event);
+ }
+ }
+ }
+ catch (Throwable t)
+ {
+ log.warn("Error while firing " + typeName + " for service
" + service, t);
+ }
+ }
+ }
+
+ private List<ServiceListenerRegistration>
processEventHooks(List<ServiceListenerRegistration> listeners, final ServiceEvent
event)
+ {
+ // Collect the BundleContexts
+ Collection<BundleContext> contexts = new HashSet<BundleContext>();
+ for (ServiceListenerRegistration listener : listeners)
+ {
+ BundleContext context = listener.getBundleContext();
+ if (context != null)
+ contexts.add(context);
+ }
+ contexts = new RemoveOnlyCollection<BundleContext>(contexts);
+
+ // Call the registered event hooks
+ List<EventHook> eventHooks = getEventHooks();
+ for (EventHook hook : eventHooks)
+ {
+ try
+ {
+ hook.event(event, contexts);
+ }
+ catch (Exception ex)
+ {
+ log.warn("Error while calling EventHook: " + hook, ex);
+ }
+ }
+
+ // Remove the listeners that have been filtered by the EventHooks
+ if (contexts.size() != listeners.size())
+ {
+ Iterator<ServiceListenerRegistration> it = listeners.iterator();
+ while (it.hasNext())
+ {
+ ServiceListenerRegistration slreg = it.next();
+ if (contexts.contains(slreg.getBundleContext()) == false)
+ it.remove();
+ }
+ }
+ return listeners;
+ }
+
+ private List<EventHook> getEventHooks()
+ {
+ List<EventHook> hooks = new ArrayList<EventHook>();
+ BundleContext context = getBundleManager().getSystemContext();
+ ServiceReference[] srefs = null;
+ try
+ {
+ srefs = context.getServiceReferences(EventHook.class.getName(), null);
+ }
+ catch (InvalidSyntaxException e)
+ {
+ // ignore
+ }
+ if (srefs != null)
+ {
+ // The calling order of the hooks is defined by the reversed
+ // compareTo ordering of their Service
+ // Reference objects. That is, the service with the highest ranking
+ // number is called first.
+ List<ServiceReference> sortedRefs = new
ArrayList<ServiceReference>(Arrays.asList(srefs));
+ Collections.reverse(sortedRefs);
+
+ for (ServiceReference sref : sortedRefs)
+ hooks.add((EventHook)context.getService(sref));
+ }
+ return hooks;
+ }
+
+ private static Bundle assertBundle(Bundle bundle)
+ {
+ if (bundle == null)
+ throw new IllegalArgumentException("Null bundle");
+
+ // Expose the wrapper not the state itself
+ if (bundle instanceof AbstractBundleState)
+ bundle = ((AbstractBundleState)bundle).getBundleInternal();
+
+ return bundle;
+ }
+
+ private void fireEvent(Runnable runnable, boolean synchronous)
+ {
+ if (synchronous)
+ {
+ runnable.run();
+ }
+ else
+ {
+ executorService.execute(runnable);
+ }
+ }
+
+ /**
+ * Filter and AccessControl for service events
+ */
+ static class ServiceListenerRegistration
+ {
+ private Bundle bundle;
+ private ServiceListener listener;
+ private Filter filter;
+ private ListenerInfo info;
+
+ // Any access control context
+ AccessControlContext accessControlContext;
+
+ ServiceListenerRegistration(Bundle bundle, ServiceListener listener, Filter
filter)
+ {
+ if (bundle == null)
+ throw new IllegalArgumentException("Null bundle");
+ if (listener == null)
+ throw new IllegalArgumentException("Null listener");
+ if (filter == null)
+ throw new IllegalArgumentException("Null filter");
+
+ this.bundle = assertBundle(bundle);
+ this.listener = listener;
+ this.filter = filter;
+ this.info = new ListenerInfoImpl(this);
+
+ if (System.getSecurityManager() != null)
+ accessControlContext = AccessController.getContext();
+ }
+
+ public BundleContext getBundleContext()
+ {
+ return bundle.getBundleContext();
+ }
+
+ public ListenerInfo getListenerInfo()
+ {
+ return info;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return listener.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (obj instanceof ServiceListenerRegistration == false)
+ return false;
+
+ // Only the ServiceListener instance determins equality
+ ServiceListenerRegistration other = (ServiceListenerRegistration)obj;
+ return other.listener.equals(listener);
+ }
+
+ @Override
+ public String toString()
+ {
+ String className = listener.getClass().getName();
+ return "ServiceListener[" + bundle + "," + className +
"," + filter + "]";
+ }
+ }
+
+ static class ListenerInfoImpl implements ListenerInfo
+ {
+ private BundleContext context;
+ private ServiceListener listener;
+ private String filter;
+ private boolean removed;
+
+ ListenerInfoImpl(ServiceListenerRegistration slreg)
+ {
+ this.context = slreg.bundle.getBundleContext();
+ this.listener = slreg.listener;
+ this.filter = slreg.filter.toString();
+ }
+
+ @Override
+ public BundleContext getBundleContext()
+ {
+ return context;
+ }
+
+ @Override
+ public String getFilter()
+ {
+ return filter;
+ }
+
+ @Override
+ public boolean isRemoved()
+ {
+ return removed;
+ }
+
+ public void setRemoved(boolean removed)
+ {
+ this.removed = removed;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return toString().hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ // Two ListenerInfos are equals if they refer to the same listener
+ // for a given addition and removal life cycle.
+ // If the same listener is added again, it must have a different
+ // ListenerInfo which is not equal to this ListenerInfo.
+ return super.equals(obj);
+ }
+
+ @Override
+ public String toString()
+ {
+ String className = listener.getClass().getName();
+ return "ListenerInfo[" + context + "," + className +
"," + removed + "]";
+ }
+ }
+
+ static class OSGiFrameworkEvent extends FrameworkEvent
+ {
+ private static final long serialVersionUID = 6505331543651318189L;
+
+ public OSGiFrameworkEvent(int type, Bundle bundle, Throwable throwable)
+ {
+ super(type, bundle, throwable);
+ }
+
+ @Override
+ public String toString()
+ {
+ return "FrameworkEvent[type=" +
ConstantsHelper.frameworkEvent(getType()) + ",source=" + getSource() +
"]";
+ }
+ }
+
+ static class OSGiBundleEvent extends BundleEvent
+ {
+ private static final long serialVersionUID = -2705304702665185935L;
+
+ public OSGiBundleEvent(int type, Bundle bundle)
+ {
+ super(type, bundle);
+ }
+
+ @Override
+ public String toString()
+ {
+ return "BundleEvent[type=" + ConstantsHelper.bundleEvent(getType()) +
",source=" + getSource() + "]";
+ }
+ }
+
+ static class OSGiServiceEvent extends ServiceEvent
+ {
+ private static final long serialVersionUID = 62018288275708239L;
+
+ public OSGiServiceEvent(int type, ServiceReference reference)
+ {
+ super(type, reference);
+ }
+
+ @Override
+ public String toString()
+ {
+ return "ServiceEvent[type=" + ConstantsHelper.serviceEvent(getType())
+ ",source=" + getSource() + "]";
+ }
+ }
+}
Deleted:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/metadata/pom.xml
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/metadata/pom.xml 2010-04-01
12:33:35 UTC (rev 103420)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/metadata/pom.xml 2010-04-01
14:43:57 UTC (rev 103435)
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
- <!-- ====================================================================== -->
- <!-- -->
- <!-- JBoss, the OpenSource J2EE webOS -->
- <!-- -->
- <!-- Distributable under LGPL license. -->
- <!-- See terms of license at
http://www.gnu.org. -->
- <!-- -->
- <!-- ====================================================================== -->
-
- <!-- $Id$ -->
-
- <!--
- Set these VM properties in your IDE debugger
-
- -Dlog4j.output.dir=${workspace_loc:jboss-osgi-framework/target}
- -Dlog4j.configuration=log4j-console.xml
- -->
-
-<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <name>JBossOSGi Framework - Metadata</name>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework-metadata</artifactId>
- <packaging>jar</packaging>
-
- <parent>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework-parent</artifactId>
- <version>1.0.0.Alpha5-SNAPSHOT</version>
- </parent>
-
- <dependencies>
- <dependency>
- <groupId>org.jboss.deployers</groupId>
- <artifactId>jboss-deployers-client-spi</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.deployers</groupId>
- <artifactId>jboss-deployers-spi</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.deployers</groupId>
- <artifactId>jboss-deployers-vfs</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.kernel</groupId>
- <artifactId>jboss-kernel</artifactId>
- </dependency>
-
- <!-- OSGi Dependencies -->
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- </plugins>
- </build>
-</project>
Copied:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/metadata/pom.xml
(from rev 103434,
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/metadata/pom.xml)
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/metadata/pom.xml
(rev 0)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/metadata/pom.xml 2010-04-01
14:43:57 UTC (rev 103435)
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+ <!-- ====================================================================== -->
+ <!-- -->
+ <!-- JBoss, the OpenSource J2EE webOS -->
+ <!-- -->
+ <!-- Distributable under LGPL license. -->
+ <!-- See terms of license at
http://www.gnu.org. -->
+ <!-- -->
+ <!-- ====================================================================== -->
+
+ <!-- $Id$ -->
+
+ <!--
+ Set these VM properties in your IDE debugger
+
+ -Dlog4j.output.dir=${workspace_loc:jboss-osgi-framework/target}
+ -Dlog4j.configuration=log4j-console.xml
+ -->
+
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <name>JBossOSGi Framework - Metadata</name>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework-metadata</artifactId>
+ <packaging>jar</packaging>
+
+ <parent>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework-parent</artifactId>
+ <version>1.0.0.Alpha4</version>
+ </parent>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.deployers</groupId>
+ <artifactId>jboss-deployers-client-spi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.deployers</groupId>
+ <artifactId>jboss-deployers-spi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.deployers</groupId>
+ <artifactId>jboss-deployers-vfs</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.kernel</groupId>
+ <artifactId>jboss-kernel</artifactId>
+ </dependency>
+
+ <!-- OSGi Dependencies -->
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ </plugins>
+ </build>
+</project>
Deleted:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/pom.xml
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/pom.xml 2010-04-01
12:33:35 UTC (rev 103420)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/pom.xml 2010-04-01
14:43:57 UTC (rev 103435)
@@ -1,307 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
- <!-- ====================================================================== -->
- <!-- -->
- <!-- JBoss, the OpenSource J2EE webOS -->
- <!-- -->
- <!-- Distributable under LGPL license. -->
- <!-- See terms of license at
http://www.gnu.org. -->
- <!-- -->
- <!-- ====================================================================== -->
-
- <!-- $Id$ -->
-
-<!--
- Set these VM properties in your IDE debugger
-
- -Dlog4j.output.dir=${workspace_loc:jboss-osgi-framework/target}
- -Dlog4j.configuration=log4j-console.xml
--->
-
-<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <name>JBossOSGi Framework</name>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework-parent</artifactId>
- <packaging>pom</packaging>
-
- <version>1.0.0.Alpha5-SNAPSHOT</version>
-
- <parent>
- <groupId>org.jboss.osgi</groupId>
- <artifactId>jboss-osgi-parent</artifactId>
- <version>1.0.5</version>
- </parent>
-
- <!-- Subversion -->
- <scm>
-
<
connection>scm:svn:http://anonsvn.jboss.org/repos/jbossas/projects/jbo...
-
<
developerConnection>scm:svn:https://svn.jboss.org/repos/jbossas/projec...
- <
url>http://fisheye.jboss.com/qsearch/JBossOSGi</url>
- </scm>
-
- <!-- Modules -->
- <modules>
- <module>core</module>
- <module>metadata</module>
- <module>vfs21</module>
- <module>vfs30</module>
- <module>bundle</module>
- </modules>
-
- <!-- Properties -->
- <properties>
-
<version.apache.felix.configadmin>1.0.10</version.apache.felix.configadmin>
- <version.apache.felix.log>1.0.0</version.apache.felix.log>
- <version.apache.felix.metatype>1.0.2</version.apache.felix.metatype>
- <version.jboss.classloading>2.2.0.Alpha4</version.jboss.classloading>
- <version.jboss.deployers>2.2.0.Alpha4</version.jboss.deployers>
- <version.jboss.kernel>2.2.0.Alpha9</version.jboss.kernel>
- <version.jboss.logging>2.2.0.CR1</version.jboss.logging>
- <version.jboss.mdr>2.2.0.Alpha2</version.jboss.mdr>
-
<version.jboss.osgi.apache.xerces>2.9.1.SP3</version.jboss.osgi.apache.xerces>
- <version.jboss.osgi.common>1.0.3</version.jboss.osgi.common>
-
<version.jboss.osgi.common.core>2.2.13.GA</version.jboss.osgi.common.core>
-
<version.jboss.osgi.deployers>1.0.6-SNAPSHOT</version.jboss.osgi.deployers>
- <version.jboss.osgi.deployment>1.0.2</version.jboss.osgi.deployment>
- <version.jboss.osgi.equinox>3.5.2</version.jboss.osgi.equinox>
- <version.jboss.osgi.felix>2.0.4</version.jboss.osgi.felix>
- <version.jboss.osgi.husky>1.0.4</version.jboss.osgi.husky>
- <version.jboss.osgi.jaxb>2.1.10.SP3</version.jboss.osgi.jaxb>
- <version.jboss.osgi.jmx>1.0.4</version.jboss.osgi.jmx>
- <version.jboss.osgi.jndi>1.0.3</version.jboss.osgi.jndi>
- <version.jboss.osgi.reflect>2.2.0</version.jboss.osgi.reflect>
- <version.jboss.osgi.spi>1.0.5.SP1</version.jboss.osgi.spi>
- <version.jboss.osgi.vfs>1.0.0</version.jboss.osgi.vfs>
-
<version.jboss.osgi.xml.binding>2.0.2.Beta4</version.jboss.osgi.xml.binding>
- <version.jboss.test>1.1.4.GA</version.jboss.test>
- <version.ops4j.pax.web>0.7.2</version.ops4j.pax.web>
- <version.osgi>4.2.0</version.osgi>
- </properties>
-
- <!-- Dependency Management -->
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.jboss.cl</groupId>
- <artifactId>jboss-classloading</artifactId>
- <version>${version.jboss.classloading}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.cl</groupId>
- <artifactId>jboss-classloading-vfs</artifactId>
- <version>${version.jboss.classloading}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.deployers</groupId>
- <artifactId>jboss-deployers-client-spi</artifactId>
- <version>${version.jboss.deployers}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.deployers</groupId>
- <artifactId>jboss-deployers-spi</artifactId>
- <version>${version.jboss.deployers}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.deployers</groupId>
- <artifactId>jboss-deployers-vfs</artifactId>
- <version>${version.jboss.deployers}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.kernel</groupId>
- <artifactId>jboss-kernel</artifactId>
- <version>${version.jboss.kernel}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.kernel</groupId>
- <artifactId>jboss-jmx-aop-mc-int</artifactId>
- <version>${version.jboss.kernel}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.kernel</groupId>
- <artifactId>jboss-jmx-mc-int</artifactId>
- <version>${version.jboss.kernel}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-mdr</artifactId>
- <version>${version.jboss.mdr}</version>
- </dependency>
-
- <!-- JBoss OSGi Dependencies -->
- <dependency>
- <groupId>org.jboss.osgi</groupId>
- <artifactId>jboss-osgi-spi</artifactId>
- <version>${version.jboss.osgi.spi}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.deployers</groupId>
- <artifactId>jboss-osgi-deployers-vfs21</artifactId>
- <version>${version.jboss.osgi.deployers}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.deployers</groupId>
- <artifactId>jboss-osgi-deployers-vfs30</artifactId>
- <version>${version.jboss.osgi.deployers}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.deployment</groupId>
- <artifactId>jboss-osgi-deployment</artifactId>
- <version>${version.jboss.osgi.deployment}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.equinox</groupId>
- <artifactId>jboss-osgi-equinox</artifactId>
- <version>${version.jboss.osgi.equinox}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.felix</groupId>
- <artifactId>jboss-osgi-felix</artifactId>
- <version>${version.jboss.osgi.felix}</version>
- </dependency>
-
- <!-- OSGi Dependencies -->
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- <version>${version.osgi}</version>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.compendium</artifactId>
- <version>${version.osgi}</version>
- </dependency>
-
- <!-- Test bundles dependencies -->
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.configadmin</artifactId>
- <version>${version.apache.felix.configadmin}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.log</artifactId>
- <version>${version.apache.felix.log}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.metatype</artifactId>
- <version>${version.apache.felix.metatype}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.bundles</groupId>
- <artifactId>jboss-osgi-apache-xerces</artifactId>
- <version>${version.jboss.osgi.apache.xerces}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.bundles</groupId>
- <artifactId>jboss-osgi-common</artifactId>
- <version>${version.jboss.osgi.common}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.bundles</groupId>
- <artifactId>jboss-osgi-common-core</artifactId>
- <version>${version.jboss.osgi.common.core}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.bundles</groupId>
- <artifactId>jboss-osgi-husky</artifactId>
- <version>${version.jboss.osgi.husky}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.bundles</groupId>
- <artifactId>jboss-osgi-jaxb</artifactId>
- <version>${version.jboss.osgi.jaxb}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.jmx</groupId>
- <artifactId>jboss-osgi-jmx</artifactId>
- <version>${version.jboss.osgi.jmx}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.jndi</groupId>
- <artifactId>jboss-osgi-jndi</artifactId>
- <version>${version.jboss.osgi.jndi}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.bundles</groupId>
- <artifactId>jboss-osgi-reflect</artifactId>
- <version>${version.jboss.osgi.reflect}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.bundles</groupId>
- <artifactId>jboss-osgi-xml-binding</artifactId>
- <version>${version.jboss.osgi.xml.binding}</version>
- </dependency>
- <dependency>
- <groupId>org.ops4j.pax.web</groupId>
- <artifactId>pax-web-jetty-bundle</artifactId>
- <version>${version.ops4j.pax.web}</version>
- </dependency>
-
- <!-- Test Dependencies -->
- <dependency>
- <groupId>org.jboss.test</groupId>
- <artifactId>jboss-test</artifactId>
- <version>${version.jboss.test}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.vfs</groupId>
- <artifactId>jboss-osgi-vfs21</artifactId>
- <version>${version.jboss.osgi.vfs}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.vfs</groupId>
- <artifactId>jboss-osgi-vfs30</artifactId>
- <version>${version.jboss.osgi.vfs}</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
-
- <!-- Profiles -->
- <profiles>
-
- <!--
- Name: distro
- Desc: Build the distribution
- -->
- <profile>
- <id>distro</id>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <skipTests>true</skipTests>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
-
- <!--
- Name: remote-testing
- Descr: Setup for remote integration testing
- -->
- <profile>
- <id>remote-testing</id>
- <activation>
- <property>
- <name>target.container</name>
- </property>
- </activation>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <skipTests>true</skipTests>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
-</project>
Copied:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/pom.xml
(from rev 103434,
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/pom.xml)
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/pom.xml
(rev 0)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/pom.xml 2010-04-01
14:43:57 UTC (rev 103435)
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+ <!-- ====================================================================== -->
+ <!-- -->
+ <!-- JBoss, the OpenSource J2EE webOS -->
+ <!-- -->
+ <!-- Distributable under LGPL license. -->
+ <!-- See terms of license at
http://www.gnu.org. -->
+ <!-- -->
+ <!-- ====================================================================== -->
+
+ <!-- $Id$ -->
+
+<!--
+ Set these VM properties in your IDE debugger
+
+ -Dlog4j.output.dir=${workspace_loc:jboss-osgi-framework/target}
+ -Dlog4j.configuration=log4j-console.xml
+-->
+
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <name>JBossOSGi Framework</name>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework-parent</artifactId>
+ <packaging>pom</packaging>
+
+ <version>1.0.0.Alpha4</version>
+
+ <parent>
+ <groupId>org.jboss.osgi</groupId>
+ <artifactId>jboss-osgi-parent</artifactId>
+ <version>1.0.5</version>
+ </parent>
+
+ <!-- Subversion -->
+ <scm>
+
<
connection>scm:svn:http://anonsvn.jboss.org/repos/jbossas/projects/jbo...
+
<
developerConnection>scm:svn:https://svn.jboss.org/repos/jbossas/projec...
+
<
url>http://fisheye.jboss.com/qsearch/JBossOSGi/tags/jboss-osgi-framewo...
+ </scm>
+
+ <!-- Modules -->
+ <modules>
+ <module>core</module>
+ <module>metadata</module>
+ <module>vfs21</module>
+ <module>vfs30</module>
+ <module>bundle</module>
+ </modules>
+
+ <!-- Properties -->
+ <properties>
+
<version.apache.felix.configadmin>1.0.10</version.apache.felix.configadmin>
+ <version.apache.felix.log>1.0.0</version.apache.felix.log>
+ <version.apache.felix.metatype>1.0.2</version.apache.felix.metatype>
+ <version.jboss.classloading>2.2.0.Alpha4</version.jboss.classloading>
+ <version.jboss.deployers>2.2.0.Alpha4</version.jboss.deployers>
+ <version.jboss.kernel>2.2.0.Alpha9</version.jboss.kernel>
+ <version.jboss.logging>2.2.0.CR1</version.jboss.logging>
+ <version.jboss.mdr>2.2.0.Alpha2</version.jboss.mdr>
+
<version.jboss.osgi.apache.xerces>2.9.1.SP3</version.jboss.osgi.apache.xerces>
+ <version.jboss.osgi.common>1.0.3</version.jboss.osgi.common>
+
<version.jboss.osgi.common.core>2.2.13.GA</version.jboss.osgi.common.core>
+ <version.jboss.osgi.deployers>1.0.6</version.jboss.osgi.deployers>
+ <version.jboss.osgi.deployment>1.0.2</version.jboss.osgi.deployment>
+ <version.jboss.osgi.equinox>3.5.2</version.jboss.osgi.equinox>
+ <version.jboss.osgi.felix>2.0.4</version.jboss.osgi.felix>
+ <version.jboss.osgi.husky>1.0.4</version.jboss.osgi.husky>
+ <version.jboss.osgi.jaxb>2.1.10.SP3</version.jboss.osgi.jaxb>
+ <version.jboss.osgi.jmx>1.0.4</version.jboss.osgi.jmx>
+ <version.jboss.osgi.jndi>1.0.3</version.jboss.osgi.jndi>
+ <version.jboss.osgi.reflect>2.2.0</version.jboss.osgi.reflect>
+ <version.jboss.osgi.spi>1.0.5.SP1</version.jboss.osgi.spi>
+ <version.jboss.osgi.vfs>1.0.0</version.jboss.osgi.vfs>
+
<version.jboss.osgi.xml.binding>2.0.2.Beta4</version.jboss.osgi.xml.binding>
+ <version.jboss.test>1.1.4.GA</version.jboss.test>
+ <version.ops4j.pax.web>0.7.2</version.ops4j.pax.web>
+ <version.osgi>4.2.0</version.osgi>
+ </properties>
+
+ <!-- Dependency Management -->
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.cl</groupId>
+ <artifactId>jboss-classloading</artifactId>
+ <version>${version.jboss.classloading}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.cl</groupId>
+ <artifactId>jboss-classloading-vfs</artifactId>
+ <version>${version.jboss.classloading}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.deployers</groupId>
+ <artifactId>jboss-deployers-client-spi</artifactId>
+ <version>${version.jboss.deployers}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.deployers</groupId>
+ <artifactId>jboss-deployers-spi</artifactId>
+ <version>${version.jboss.deployers}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.deployers</groupId>
+ <artifactId>jboss-deployers-vfs</artifactId>
+ <version>${version.jboss.deployers}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.kernel</groupId>
+ <artifactId>jboss-kernel</artifactId>
+ <version>${version.jboss.kernel}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.kernel</groupId>
+ <artifactId>jboss-jmx-aop-mc-int</artifactId>
+ <version>${version.jboss.kernel}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.kernel</groupId>
+ <artifactId>jboss-jmx-mc-int</artifactId>
+ <version>${version.jboss.kernel}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-mdr</artifactId>
+ <version>${version.jboss.mdr}</version>
+ </dependency>
+
+ <!-- JBoss OSGi Dependencies -->
+ <dependency>
+ <groupId>org.jboss.osgi</groupId>
+ <artifactId>jboss-osgi-spi</artifactId>
+ <version>${version.jboss.osgi.spi}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.deployers</groupId>
+ <artifactId>jboss-osgi-deployers-vfs21</artifactId>
+ <version>${version.jboss.osgi.deployers}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.deployers</groupId>
+ <artifactId>jboss-osgi-deployers-vfs30</artifactId>
+ <version>${version.jboss.osgi.deployers}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.deployment</groupId>
+ <artifactId>jboss-osgi-deployment</artifactId>
+ <version>${version.jboss.osgi.deployment}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.equinox</groupId>
+ <artifactId>jboss-osgi-equinox</artifactId>
+ <version>${version.jboss.osgi.equinox}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.felix</groupId>
+ <artifactId>jboss-osgi-felix</artifactId>
+ <version>${version.jboss.osgi.felix}</version>
+ </dependency>
+
+ <!-- OSGi Dependencies -->
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <version>${version.osgi}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ <version>${version.osgi}</version>
+ </dependency>
+
+ <!-- Test bundles dependencies -->
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.configadmin</artifactId>
+ <version>${version.apache.felix.configadmin}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.log</artifactId>
+ <version>${version.apache.felix.log}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.metatype</artifactId>
+ <version>${version.apache.felix.metatype}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-apache-xerces</artifactId>
+ <version>${version.jboss.osgi.apache.xerces}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-common</artifactId>
+ <version>${version.jboss.osgi.common}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-common-core</artifactId>
+ <version>${version.jboss.osgi.common.core}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-husky</artifactId>
+ <version>${version.jboss.osgi.husky}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-jaxb</artifactId>
+ <version>${version.jboss.osgi.jaxb}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.jmx</groupId>
+ <artifactId>jboss-osgi-jmx</artifactId>
+ <version>${version.jboss.osgi.jmx}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.jndi</groupId>
+ <artifactId>jboss-osgi-jndi</artifactId>
+ <version>${version.jboss.osgi.jndi}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-reflect</artifactId>
+ <version>${version.jboss.osgi.reflect}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.bundles</groupId>
+ <artifactId>jboss-osgi-xml-binding</artifactId>
+ <version>${version.jboss.osgi.xml.binding}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.ops4j.pax.web</groupId>
+ <artifactId>pax-web-jetty-bundle</artifactId>
+ <version>${version.ops4j.pax.web}</version>
+ </dependency>
+
+ <!-- Test Dependencies -->
+ <dependency>
+ <groupId>org.jboss.test</groupId>
+ <artifactId>jboss-test</artifactId>
+ <version>${version.jboss.test}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.vfs</groupId>
+ <artifactId>jboss-osgi-vfs21</artifactId>
+ <version>${version.jboss.osgi.vfs}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.vfs</groupId>
+ <artifactId>jboss-osgi-vfs30</artifactId>
+ <version>${version.jboss.osgi.vfs}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <!-- Profiles -->
+ <profiles>
+
+ <!--
+ Name: distro
+ Desc: Build the distribution
+ -->
+ <profile>
+ <id>distro</id>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <!--
+ Name: remote-testing
+ Descr: Setup for remote integration testing
+ -->
+ <profile>
+ <id>remote-testing</id>
+ <activation>
+ <property>
+ <name>target.container</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
Deleted:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/vfs21/pom.xml
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/vfs21/pom.xml 2010-04-01
12:33:35 UTC (rev 103420)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/vfs21/pom.xml 2010-04-01
14:43:57 UTC (rev 103435)
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- ====================================================================== -->
-<!-- -->
-<!-- JBoss, the OpenSource J2EE webOS -->
-<!-- -->
-<!-- Distributable under LGPL license. -->
-<!-- See terms of license at
http://www.gnu.org. -->
-<!-- -->
-<!-- ====================================================================== -->
-
-<!-- $Id$ -->
-
-<!-- Set these VM properties in your IDE debugger
-Dlog4j.output.dir=${workspace_loc:jboss-osgi-framework/target}
-Dlog4j.configuration=log4j-console.xml -->
-
-<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <name>JBossOSGi Framework - VFS21</name>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework-vfs21</artifactId>
- <packaging>jar</packaging>
-
- <parent>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework-parent</artifactId>
- <version>1.0.0.Alpha5-SNAPSHOT</version>
- </parent>
-
- <!-- Properties -->
- <properties>
- <version.jboss.classloading>2.2.0.Alpha1</version.jboss.classloading>
- <version.jboss.deployers>2.2.0.Alpha1</version.jboss.deployers>
- <version.jboss.kernel>2.2.0.Alpha1</version.jboss.kernel>
- </properties>
-
- <!-- Dependencies -->
- <dependencies>
- <dependency>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework-core</artifactId>
- <version>${version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.deployers</groupId>
- <artifactId>jboss-osgi-deployers-vfs21</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.vfs</groupId>
- <artifactId>jboss-osgi-vfs21</artifactId>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- </plugins>
- </build>
-</project>
Copied:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/vfs21/pom.xml
(from rev 103434,
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/vfs21/pom.xml)
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/vfs21/pom.xml
(rev 0)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/vfs21/pom.xml 2010-04-01
14:43:57 UTC (rev 103435)
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!-- -->
+<!-- JBoss, the OpenSource J2EE webOS -->
+<!-- -->
+<!-- Distributable under LGPL license. -->
+<!-- See terms of license at
http://www.gnu.org. -->
+<!-- -->
+<!-- ====================================================================== -->
+
+<!-- $Id$ -->
+
+<!-- Set these VM properties in your IDE debugger
-Dlog4j.output.dir=${workspace_loc:jboss-osgi-framework/target}
-Dlog4j.configuration=log4j-console.xml -->
+
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <name>JBossOSGi Framework - VFS21</name>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework-vfs21</artifactId>
+ <packaging>jar</packaging>
+
+ <parent>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework-parent</artifactId>
+ <version>1.0.0.Alpha4</version>
+ </parent>
+
+ <!-- Properties -->
+ <properties>
+ <version.jboss.classloading>2.2.0.Alpha1</version.jboss.classloading>
+ <version.jboss.deployers>2.2.0.Alpha1</version.jboss.deployers>
+ <version.jboss.kernel>2.2.0.Alpha1</version.jboss.kernel>
+ </properties>
+
+ <!-- Dependencies -->
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework-core</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.deployers</groupId>
+ <artifactId>jboss-osgi-deployers-vfs21</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.vfs</groupId>
+ <artifactId>jboss-osgi-vfs21</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ </plugins>
+ </build>
+</project>
Deleted:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/vfs30/pom.xml
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/vfs30/pom.xml 2010-04-01
12:33:35 UTC (rev 103420)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/vfs30/pom.xml 2010-04-01
14:43:57 UTC (rev 103435)
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- ====================================================================== -->
-<!-- -->
-<!-- JBoss, the OpenSource J2EE webOS -->
-<!-- -->
-<!-- Distributable under LGPL license. -->
-<!-- See terms of license at
http://www.gnu.org. -->
-<!-- -->
-<!-- ====================================================================== -->
-
-<!-- $Id$ -->
-
-<!-- Set these VM properties in your IDE debugger
-Dlog4j.output.dir=${workspace_loc:jboss-osgi-framework/target}
-Dlog4j.configuration=log4j-console.xml -->
-
-<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <name>JBossOSGi Framework - VFS30</name>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework-vfs30</artifactId>
- <packaging>jar</packaging>
-
- <parent>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework-parent</artifactId>
- <version>1.0.0.Alpha5-SNAPSHOT</version>
- </parent>
-
- <!-- Properties -->
- <properties>
- <version.jboss.vfs>3.0.0.CR5</version.jboss.vfs>
- </properties>
-
- <!-- Dependencies -->
- <dependencies>
- <dependency>
- <groupId>org.jboss.osgi.framework</groupId>
- <artifactId>jboss-osgi-framework-core</artifactId>
- <version>${version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.deployers</groupId>
- <artifactId>jboss-osgi-deployers-vfs30</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.osgi.vfs</groupId>
- <artifactId>jboss-osgi-vfs30</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-vfs</artifactId>
- <version>${version.jboss.vfs}</version>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- </plugins>
- </build>
-</project>
Copied:
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/vfs30/pom.xml
(from rev 103434,
projects/jboss-osgi/projects/runtime/framework/branches/1.0.0.Alpha4/vfs30/pom.xml)
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/vfs30/pom.xml
(rev 0)
+++
projects/jboss-osgi/projects/runtime/framework/tags/jboss-osgi-framework-1.0.0.Alpha4/vfs30/pom.xml 2010-04-01
14:43:57 UTC (rev 103435)
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!-- -->
+<!-- JBoss, the OpenSource J2EE webOS -->
+<!-- -->
+<!-- Distributable under LGPL license. -->
+<!-- See terms of license at
http://www.gnu.org. -->
+<!-- -->
+<!-- ====================================================================== -->
+
+<!-- $Id$ -->
+
+<!-- Set these VM properties in your IDE debugger
-Dlog4j.output.dir=${workspace_loc:jboss-osgi-framework/target}
-Dlog4j.configuration=log4j-console.xml -->
+
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <name>JBossOSGi Framework - VFS30</name>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework-vfs30</artifactId>
+ <packaging>jar</packaging>
+
+ <parent>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework-parent</artifactId>
+ <version>1.0.0.Alpha4</version>
+ </parent>
+
+ <!-- Properties -->
+ <properties>
+ <version.jboss.vfs>3.0.0.CR5</version.jboss.vfs>
+ </properties>
+
+ <!-- Dependencies -->
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.osgi.framework</groupId>
+ <artifactId>jboss-osgi-framework-core</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.deployers</groupId>
+ <artifactId>jboss-osgi-deployers-vfs30</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.osgi.vfs</groupId>
+ <artifactId>jboss-osgi-vfs30</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-vfs</artifactId>
+ <version>${version.jboss.vfs}</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ </plugins>
+ </build>
+</project>