JBoss-OSGI SVN: r96723 - in projects/jboss-osgi/trunk: testsuite and 1 other directory.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-23 06:14:28 -0500 (Mon, 23 Nov 2009)
New Revision: 96723
Modified:
projects/jboss-osgi/trunk/distribution/installer/pom.xml
projects/jboss-osgi/trunk/testsuite/pom.xml
Log:
Add support for AS600M1
Modified: projects/jboss-osgi/trunk/distribution/installer/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/distribution/installer/pom.xml 2009-11-23 10:18:39 UTC (rev 96722)
+++ projects/jboss-osgi/trunk/distribution/installer/pom.xml 2009-11-23 11:14:28 UTC (rev 96723)
@@ -95,8 +95,8 @@
<property name="jboss.home" value="${jboss.home}" />
<property name="jboss501.home" value="${jboss501.home}" />
<property name="jboss510.home" value="${jboss510.home}" />
- <property name="jboss520.home" value="${jboss520.home}" />
<property name="jboss600.home" value="${jboss600.home}" />
+ <property name="jboss601.home" value="${jboss601.home}" />
<property name="product.name" value="${project.name}" />
<property name="product.short.name" value="${artifactId}" />
<property name="product.version" value="${project.version}" />
Modified: projects/jboss-osgi/trunk/testsuite/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/testsuite/pom.xml 2009-11-23 10:18:39 UTC (rev 96722)
+++ projects/jboss-osgi/trunk/testsuite/pom.xml 2009-11-23 11:14:28 UTC (rev 96723)
@@ -395,15 +395,15 @@
</profile>
<!--
- Name: jboss520
- Descr: Setup for jboss520 integration testing
+ Name: jboss600
+ Descr: Setup for jboss600 integration testing
-->
<profile>
- <id>jboss520</id>
+ <id>jboss600</id>
<activation>
<property>
<name>target.container</name>
- <value>jboss520</value>
+ <value>jboss600</value>
</property>
</activation>
<properties>
@@ -420,15 +420,15 @@
</profile>
<!--
- Name: jboss600
- Descr: Setup for jboss600 integration testing
+ Name: jboss601
+ Descr: Setup for jboss601 integration testing
-->
<profile>
- <id>jboss600</id>
+ <id>jboss601</id>
<activation>
<property>
<name>target.container</name>
- <value>jboss600</value>
+ <value>jboss601</value>
</property>
</activation>
<properties>
14 years, 7 months
JBoss-OSGI SVN: r96719 - in projects/jboss-osgi/trunk: distribution/installer/src/main/resources/installer and 1 other directories.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-23 04:05:03 -0500 (Mon, 23 Nov 2009)
New Revision: 96719
Modified:
projects/jboss-osgi/trunk/distribution/installer/scripts/antrun-installer.xml
projects/jboss-osgi/trunk/distribution/installer/src/main/resources/installer/install-definition.xml
projects/jboss-osgi/trunk/distribution/installer/src/main/resources/installer/user-input-spec.xml
projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.0/config.xml
Log:
Add support for AS600M1
Modified: projects/jboss-osgi/trunk/distribution/installer/scripts/antrun-installer.xml
===================================================================
--- projects/jboss-osgi/trunk/distribution/installer/scripts/antrun-installer.xml 2009-11-23 08:09:57 UTC (rev 96718)
+++ projects/jboss-osgi/trunk/distribution/installer/scripts/antrun-installer.xml 2009-11-23 09:05:03 UTC (rev 96719)
@@ -31,8 +31,8 @@
<echo message="jboss.home=${jboss.home}"/>
<echo message="jboss501.home=${jboss501.home}"/>
<echo message="jboss510.home=${jboss510.home}"/>
- <echo message="jboss520.home=${jboss520.home}"/>
<echo message="jboss600.home=${jboss600.home}"/>
+ <echo message="jboss601.home=${jboss601.home}"/>
</target>
<!-- ================================================================== -->
Modified: projects/jboss-osgi/trunk/distribution/installer/src/main/resources/installer/install-definition.xml
===================================================================
--- projects/jboss-osgi/trunk/distribution/installer/src/main/resources/installer/install-definition.xml 2009-11-23 08:09:57 UTC (rev 96718)
+++ projects/jboss-osgi/trunk/distribution/installer/src/main/resources/installer/install-definition.xml 2009-11-23 09:05:03 UTC (rev 96719)
@@ -41,16 +41,16 @@
<variables>
<variable name="jboss501.home" value="@{jboss501.home}" />
<variable name="jboss510.home" value="@{jboss510.home}" />
- <variable name="jboss520.home" value="@{jboss520.home}" />
<variable name="jboss600.home" value="@{jboss600.home}" />
+ <variable name="jboss601.home" value="@{jboss601.home}" />
</variables>
<!-- Dynamic Variables -->
<dynamicvariables>
<variable name="jboss.home" value="${jboss501.home}" condition="isJBoss501" />
<variable name="jboss.home" value="${jboss510.home}" condition="isJBoss510" />
- <variable name="jboss.home" value="${jboss520.home}" condition="isJBoss520" />
<variable name="jboss.home" value="${jboss600.home}" condition="isJBoss600" />
+ <variable name="jboss.home" value="${jboss601.home}" condition="isJBoss601" />
</dynamicvariables>
<!-- Conditions -->
@@ -75,14 +75,14 @@
<name>jbossSelection</name>
<value>jboss510</value>
</condition>
- <condition type="variable" id="isJBoss520">
- <name>jbossSelection</name>
- <value>jboss520</value>
- </condition>
<condition type="variable" id="isJBoss600">
<name>jbossSelection</name>
<value>jboss600</value>
</condition>
+ <condition type="variable" id="isJBoss601">
+ <name>jbossSelection</name>
+ <value>jboss601</value>
+ </condition>
<condition type="variable" id="isServerMinimal">
<name>jbossTargetServer</name>
<value>minimal</value>
Modified: projects/jboss-osgi/trunk/distribution/installer/src/main/resources/installer/user-input-spec.xml
===================================================================
--- projects/jboss-osgi/trunk/distribution/installer/src/main/resources/installer/user-input-spec.xml 2009-11-23 08:09:57 UTC (rev 96718)
+++ projects/jboss-osgi/trunk/distribution/installer/src/main/resources/installer/user-input-spec.xml 2009-11-23 09:05:03 UTC (rev 96719)
@@ -14,10 +14,10 @@
<field type="radio" variable="jbossSelection">
<description align="left" txt="Please choose your target container" />
<spec>
- <choice txt="JBoss-5.0.1" value="jboss501" set="true"/>
+ <choice txt="JBoss-5.0.1" value="jboss501"/>
<choice txt="JBoss-5.1.0" value="jboss510"/>
- <choice txt="JBoss-5.2.0" value="jboss520"/>
- <choice txt="JBoss-6.0.0" value="jboss600"/>
+ <choice txt="JBoss-6.0.0.M1" value="jboss600" set="true"/>
+ <choice txt="JBoss-6.0.0-SNAPSHOT" value="jboss601"/>
</spec>
</field>
<field type="text" variable="jbossTargetServer">
@@ -29,8 +29,8 @@
<field type="radio" variable="jbossSelection">
<description align="left" txt="Please choose your target container" />
<spec>
- <choice txt="JBoss-5.2.0" value="jboss520" set="true"/>
- <choice txt="JBoss-6.0.0" value="jboss600"/>
+ <choice txt="JBoss-6.0.0.M1" value="jboss600" set="true"/>
+ <choice txt="JBoss-6.0.0-SNAPSHOT" value="jboss601"/>
</spec>
</field>
<field type="text" variable="jbossTargetServer">
Modified: projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.0/config.xml
===================================================================
--- projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.0/config.xml 2009-11-23 08:09:57 UTC (rev 96718)
+++ projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.0/config.xml 2009-11-23 09:05:03 UTC (rev 96719)
@@ -48,7 +48,7 @@
# Build JBoss
#
cd jbossas
-mvn clean install
+build/build.sh clean main
#
# Start JBossAS
14 years, 7 months
JBoss-OSGI SVN: r96685 - projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.0.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-22 10:25:12 -0500 (Sun, 22 Nov 2009)
New Revision: 96685
Modified:
projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.0/config.xml
Log:
JBOSS_VERSION=jboss-6.0.0.M1
Modified: projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.0/config.xml
===================================================================
--- projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.0/config.xml 2009-11-22 14:36:25 UTC (rev 96684)
+++ projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.0/config.xml 2009-11-22 15:25:12 UTC (rev 96685)
@@ -37,7 +37,7 @@
HUDSONDIR=$OSGIDIR/hudson
HUDSONBIN=$HUDSONDIR/hudson-home/bin
-JBOSS_VERSION=jboss-6.0.1.M1
+JBOSS_VERSION=jboss-6.0.0.M1
SERVER_NAME=default
JBOSS_HOME=$WORKSPACE/jbossas/build/output/$JBOSS_VERSION
14 years, 7 months
JBoss-OSGI SVN: r96684 - in projects/jboss-osgi/trunk/hudson: hudson-home and 1 other directory.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-22 09:36:25 -0500 (Sun, 22 Nov 2009)
New Revision: 96684
Modified:
projects/jboss-osgi/trunk/hudson/ant.properties.example
projects/jboss-osgi/trunk/hudson/hudson-home/config.xml
projects/jboss-osgi/trunk/hudson/hudson-home/hudson.tasks.Mailer.xml
Log:
Hudson user based security
Modified: projects/jboss-osgi/trunk/hudson/ant.properties.example
===================================================================
--- projects/jboss-osgi/trunk/hudson/ant.properties.example 2009-11-22 14:28:03 UTC (rev 96683)
+++ projects/jboss-osgi/trunk/hudson/ant.properties.example 2009-11-22 14:36:25 UTC (rev 96684)
@@ -8,8 +8,8 @@
jboss.bind.address=127.0.0.1
# JDK settings
-java.home.jdk15=/usr/java/jdk1.5.0_19
-java.home.jdk16=/usr/java/jdk1.6.0_14
+java.home.jdk15=/usr/java/jdk1.5.0_22
+java.home.jdk16=/usr/java/jdk1.6.0_17
# Hudson QA Environment
hudson.username=changeme
@@ -30,6 +30,7 @@
#hudson.jboss510.zip=file:///home/hudson/download/java/jboss/jboss-5.1.0.GA.zip
hudson.mail.recipients=
+hudson.mail.admin=yourname(a)yourdomain.com
hudson.smtp.host=localhost
# Hudson (1.290)
Modified: projects/jboss-osgi/trunk/hudson/hudson-home/config.xml
===================================================================
--- projects/jboss-osgi/trunk/hudson/hudson-home/config.xml 2009-11-22 14:28:03 UTC (rev 96683)
+++ projects/jboss-osgi/trunk/hudson/hudson-home/config.xml 2009-11-22 14:36:25 UTC (rev 96684)
@@ -2,6 +2,27 @@
<hudson>
<numExecutors>2</numExecutors>
<useSecurity>true</useSecurity>
+ <authorizationStrategy class="hudson.security.GlobalMatrixAuthorizationStrategy">
+ <permission>hudson.model.Hudson.Read:anonymous</permission>
+ <permission>hudson.model.Hudson.Read:@hudson.username@</permission>
+ <permission>hudson.model.Item.Build:@hudson.username@</permission>
+ <permission>hudson.model.Item.Workspace:@hudson.username@</permission>
+ <permission>hudson.model.Item.Delete:@hudson.username@</permission>
+ <permission>hudson.model.View.Configure:@hudson.username@</permission>
+ <permission>hudson.model.Computer.Configure:@hudson.username@</permission>
+ <permission>hudson.model.Computer.Delete:@hudson.username@</permission>
+ <permission>hudson.model.Run.Update:@hudson.username@</permission>
+ <permission>hudson.model.Item.Create:@hudson.username@</permission>
+ <permission>hudson.model.Item.Configure:@hudson.username@</permission>
+ <permission>hudson.model.View.Delete:@hudson.username@</permission>
+ <permission>hudson.model.View.Create:@hudson.username@</permission>
+ <permission>hudson.scm.SCM.Tag:@hudson.username@</permission>
+ <permission>hudson.model.Run.Delete:@hudson.username@</permission>
+ <permission>hudson.model.Hudson.Administer:@hudson.username@</permission>
+ </authorizationStrategy>
+ <securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
+ <disableSignup>false</disableSignup>
+ </securityRealm>
<systemMessage>
<![CDATA[
<h2>JBossOSGi QA Environment</h2>
Modified: projects/jboss-osgi/trunk/hudson/hudson-home/hudson.tasks.Mailer.xml
===================================================================
--- projects/jboss-osgi/trunk/hudson/hudson-home/hudson.tasks.Mailer.xml 2009-11-22 14:28:03 UTC (rev 96683)
+++ projects/jboss-osgi/trunk/hudson/hudson-home/hudson.tasks.Mailer.xml 2009-11-22 14:36:25 UTC (rev 96684)
@@ -2,6 +2,6 @@
<hudson.tasks.Mailer-DescriptorImpl>
<defaultSuffix></defaultSuffix>
<hudsonUrl>http://@hudson.host@:@hudson.http.port@/hudson/</hudsonUrl>
- <adminAddress>thomas.diesler(a)jboss.com</adminAddress>
+ <adminAddress>@hudson.mail.admin@</adminAddress>
<smtpHost>@hudson.smtp.host@</smtpHost>
</hudson.tasks.Mailer-DescriptorImpl>
14 years, 7 months
JBoss-OSGI SVN: r96683 - in projects/jboss-osgi/trunk/hudson/hudson-home: jobs and 5 other directories.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-22 09:28:03 -0500 (Sun, 22 Nov 2009)
New Revision: 96683
Added:
projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.1/
Removed:
projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-5.2.0/
Modified:
projects/jboss-osgi/trunk/hudson/hudson-home/command.sh
projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.0/config.xml
projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.1/config.xml
projects/jboss-osgi/trunk/hudson/hudson-home/jobs/jbossosgi-matrix-equinox/config.xml
projects/jboss-osgi/trunk/hudson/hudson-home/jobs/jbossosgi-matrix-felix/config.xml
projects/jboss-osgi/trunk/hudson/hudson-home/jobs/jbossosgi-matrix-jbossmc/config.xml
Log:
Replace AS520 by AS600M1
Modified: projects/jboss-osgi/trunk/hudson/hudson-home/command.sh
===================================================================
--- projects/jboss-osgi/trunk/hudson/hudson-home/command.sh 2009-11-22 13:47:00 UTC (rev 96682)
+++ projects/jboss-osgi/trunk/hudson/hudson-home/command.sh 2009-11-22 14:28:03 UTC (rev 96683)
@@ -31,7 +31,7 @@
cp $RUNTIME_HOME/bin/run.sh $RUNTIME_HOME/bin/run.sh.org
cp $HUDSONBIN/run-with-pid.sh $RUNTIME_HOME/bin/run.sh
;;
- 'jboss520')
+ 'jboss600')
SERVER_NAME=default
JBOSS_BUILD=jboss-6.0.0.M1
JBOSS_ZIP=$HUDSON_HOME/../jboss/$JBOSS_BUILD.zip
@@ -41,7 +41,7 @@
cp $RUNTIME_HOME/bin/run.sh $RUNTIME_HOME/bin/run.sh.org
cp $HUDSONBIN/run-with-pid.sh $RUNTIME_HOME/bin/run.sh
;;
- 'jboss600')
+ 'jboss601')
SERVER_NAME=default
JBOSS_BUILD=jboss-6.0.0-SNAPSHOT
JBOSS_ZIP=$HUDSON_HOME/../jboss/$JBOSS_BUILD.zip
Modified: projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.0/config.xml
===================================================================
--- projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.0/config.xml 2009-11-22 13:47:00 UTC (rev 96682)
+++ projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.0/config.xml 2009-11-22 14:28:03 UTC (rev 96683)
@@ -7,7 +7,7 @@
<scm class="hudson.scm.SubversionSCM">
<locations>
<hudson.scm.SubversionSCM_-ModuleLocation>
- <remote>https://svn.jboss.org/repos/jbossas/trunk</remote>
+ <remote>https://svn.jboss.org/repos/jbossas/tags/JBoss_6_0_0_M1</remote>
<local>jbossas</local>
</hudson.scm.SubversionSCM_-ModuleLocation>
<hudson.scm.SubversionSCM_-ModuleLocation>
@@ -27,7 +27,7 @@
<jdk>jdk1.6</jdk>
<triggers class="vector">
<hudson.triggers.TimerTrigger>
- <spec>0 22 * * *</spec>
+ <spec>0 21 * * *</spec>
</hudson.triggers.TimerTrigger>
</triggers>
<builders>
@@ -37,7 +37,7 @@
HUDSONDIR=$OSGIDIR/hudson
HUDSONBIN=$HUDSONDIR/hudson-home/bin
-JBOSS_VERSION=jboss-6.0.0-SNAPSHOT
+JBOSS_VERSION=jboss-6.0.1.M1
SERVER_NAME=default
JBOSS_HOME=$WORKSPACE/jbossas/build/output/$JBOSS_VERSION
Copied: projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.1 (from rev 96642, projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-5.2.0)
Modified: projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.1/config.xml
===================================================================
--- projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-5.2.0/config.xml 2009-11-20 15:31:05 UTC (rev 96642)
+++ projects/jboss-osgi/trunk/hudson/hudson-home/jobs/JBoss-6.0.1/config.xml 2009-11-22 14:28:03 UTC (rev 96683)
@@ -7,7 +7,7 @@
<scm class="hudson.scm.SubversionSCM">
<locations>
<hudson.scm.SubversionSCM_-ModuleLocation>
- <remote>https://svn.jboss.org/repos/jbossas/branches/Branch_5_x</remote>
+ <remote>https://svn.jboss.org/repos/jbossas/trunk</remote>
<local>jbossas</local>
</hudson.scm.SubversionSCM_-ModuleLocation>
<hudson.scm.SubversionSCM_-ModuleLocation>
@@ -27,7 +27,7 @@
<jdk>jdk1.6</jdk>
<triggers class="vector">
<hudson.triggers.TimerTrigger>
- <spec>0 21 * * *</spec>
+ <spec>0 22 * * *</spec>
</hudson.triggers.TimerTrigger>
</triggers>
<builders>
@@ -37,7 +37,7 @@
HUDSONDIR=$OSGIDIR/hudson
HUDSONBIN=$HUDSONDIR/hudson-home/bin
-JBOSS_VERSION=jboss-6.0.0.M1
+JBOSS_VERSION=jboss-6.0.0-SNAPSHOT
SERVER_NAME=default
JBOSS_HOME=$WORKSPACE/jbossas/build/output/$JBOSS_VERSION
@@ -48,7 +48,7 @@
# Build JBoss
#
cd jbossas
-build/build.sh clean main
+mvn clean install
#
# Start JBossAS
@@ -83,4 +83,4 @@
</builders>
<publishers/>
<buildWrappers/>
-</project>
+</project>
\ No newline at end of file
Modified: projects/jboss-osgi/trunk/hudson/hudson-home/jobs/jbossosgi-matrix-equinox/config.xml
===================================================================
--- projects/jboss-osgi/trunk/hudson/hudson-home/jobs/jbossosgi-matrix-equinox/config.xml 2009-11-22 13:47:00 UTC (rev 96682)
+++ projects/jboss-osgi/trunk/hudson/hudson-home/jobs/jbossosgi-matrix-equinox/config.xml 2009-11-22 14:28:03 UTC (rev 96683)
@@ -43,8 +43,8 @@
<string>runtime</string>
<string>jboss501</string>
<string>jboss510</string>
- <string>jboss520</string>
<string>jboss600</string>
+ <string>jboss601</string>
</values>
</axis>
<axis>
@@ -55,7 +55,7 @@
</values>
</axis>
</axes>
- <combinationFilter>!((container=='jboss600' || container=='jboss520') && jdk=='jdk1.5')</combinationFilter>
+ <combinationFilter>!((container=='jboss600' || container=='jboss601') && jdk=='jdk1.5')</combinationFilter>
<builders>
<hudson.tasks.Shell>
<command>
Modified: projects/jboss-osgi/trunk/hudson/hudson-home/jobs/jbossosgi-matrix-felix/config.xml
===================================================================
--- projects/jboss-osgi/trunk/hudson/hudson-home/jobs/jbossosgi-matrix-felix/config.xml 2009-11-22 13:47:00 UTC (rev 96682)
+++ projects/jboss-osgi/trunk/hudson/hudson-home/jobs/jbossosgi-matrix-felix/config.xml 2009-11-22 14:28:03 UTC (rev 96683)
@@ -43,8 +43,8 @@
<string>runtime</string>
<string>jboss501</string>
<string>jboss510</string>
- <string>jboss520</string>
<string>jboss600</string>
+ <string>jboss601</string>
</values>
</axis>
<axis>
@@ -55,7 +55,7 @@
</values>
</axis>
</axes>
- <combinationFilter>!((container=='jboss600' || container=='jboss520') && jdk=='jdk1.5')</combinationFilter>
+ <combinationFilter>!((container=='jboss600' || container=='jboss601') && jdk=='jdk1.5')</combinationFilter>
<builders>
<hudson.tasks.Shell>
<command>
Modified: projects/jboss-osgi/trunk/hudson/hudson-home/jobs/jbossosgi-matrix-jbossmc/config.xml
===================================================================
--- projects/jboss-osgi/trunk/hudson/hudson-home/jobs/jbossosgi-matrix-jbossmc/config.xml 2009-11-22 13:47:00 UTC (rev 96682)
+++ projects/jboss-osgi/trunk/hudson/hudson-home/jobs/jbossosgi-matrix-jbossmc/config.xml 2009-11-22 14:28:03 UTC (rev 96683)
@@ -41,8 +41,8 @@
<name>container</name>
<values>
<string>runtime</string>
- <string>jboss520</string>
<string>jboss600</string>
+ <string>jboss601</string>
</values>
</axis>
<axis>
14 years, 7 months
JBoss-OSGI SVN: r96681 - in projects/jboss-osgi/trunk/reactor/framework/src: test/java/org/jboss/test/osgi and 4 other directories.
by jboss-osgi-commits@lists.jboss.org
Author: alesj
Date: 2009-11-22 07:30:32 -0500 (Sun, 22 Nov 2009)
New Revision: 96681
Added:
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/PackageAdminTestCase.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/support/
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/support/a/
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/support/a/PA.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/support/b/
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/support/b/Other.java
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java
Log:
[JBOSGI-149]; initial test for PackageAdmin impl.
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java 2009-11-22 06:59:19 UTC (rev 96680)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java 2009-11-22 12:30:32 UTC (rev 96681)
@@ -28,10 +28,13 @@
import java.util.List;
import org.jboss.classloading.plugins.metadata.PackageCapability;
+import org.jboss.classloading.spi.dependency.ClassLoading;
+import org.jboss.classloading.spi.dependency.Module;
import org.jboss.classloading.spi.metadata.CapabilitiesMetaData;
import org.jboss.classloading.spi.metadata.Capability;
import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;
import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.plugins.classloading.AbstractDeploymentClassLoaderPolicyModule;
import org.jboss.logging.Logger;
import org.jboss.osgi.framework.bundle.AbstractBundleState;
import org.jboss.osgi.framework.bundle.OSGiBundleManager;
@@ -39,8 +42,8 @@
import org.jboss.osgi.framework.plugins.PackageAdminServicePlugin;
import org.jboss.osgi.framework.plugins.ResolverPlugin;
import org.jboss.osgi.framework.plugins.internal.AbstractServicePlugin;
-import org.jboss.osgi.framework.resolver.ResolverBundle;
import org.jboss.osgi.framework.resolver.Resolver;
+import org.jboss.osgi.framework.resolver.ResolverBundle;
import org.jboss.osgi.spi.NotImplementedException;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
@@ -91,28 +94,17 @@
if (clazz == null)
throw new IllegalArgumentException("Null class");
- Bundle retBundle = null;
ClassLoader classLoader = clazz.getClassLoader();
- for (AbstractBundleState aux : bundleManager.getBundles())
+ Module module = ClassLoading.getModuleForClassLoader(classLoader);
+ if (module instanceof AbstractDeploymentClassLoaderPolicyModule)
{
- if (aux instanceof OSGiBundleState)
- {
- OSGiBundleState bundleState = (OSGiBundleState)aux;
-
- // The classloader is only available if the bundle
- // is in state RESOLVED or higher
- if (aux.getState() != Bundle.INSTALLED)
- {
- ClassLoader bundleLoader = bundleState.getDeploymentUnit().getClassLoader();
- if (bundleLoader == classLoader)
- {
- retBundle = aux.getBundleInternal();
- break;
- }
- }
- }
+ AbstractDeploymentClassLoaderPolicyModule deploymentModule = (AbstractDeploymentClassLoaderPolicyModule)module;
+ DeploymentUnit unit = deploymentModule.getDeploymentUnit();
+ OSGiBundleState bundleState = unit.getAttachment(OSGiBundleState.class);
+ if (bundleState != null && bundleState.getState() != Bundle.INSTALLED)
+ return bundleState.getBundleInternal();
}
- return retBundle;
+ return null;
}
public int getBundleType(Bundle bundle)
Added: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/PackageAdminTestCase.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/PackageAdminTestCase.java (rev 0)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/PackageAdminTestCase.java 2009-11-22 12:30:32 UTC (rev 96681)
@@ -0,0 +1,90 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, 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.compendium;
+
+import junit.framework.Test;
+
+import org.jboss.osgi.framework.service.internal.PackageAdminImpl;
+import org.jboss.test.osgi.FrameworkTest;
+import org.jboss.test.osgi.compendium.support.b.Other;
+import org.jboss.test.osgi.compendium.support.a.PA;
+import org.osgi.framework.Bundle;
+import org.osgi.service.packageadmin.PackageAdmin;
+
+/**
+ * Test PackageAdmin service.
+ *
+ * @author <a href="mailto:ales.justin@jboss.org">Ales Justin</a>
+ */
+public class PackageAdminTestCase extends FrameworkTest
+{
+ public PackageAdminTestCase(String name)
+ {
+ super(name);
+ }
+
+ public static Test suite()
+ {
+ return suite(PackageAdminTestCase.class);
+ }
+
+ protected PackageAdmin createPackageAdmin()
+ {
+ return new PackageAdminImpl(getBundleManager());
+ }
+
+ public void testGetBudleFromClass() throws Exception
+ {
+ Bundle bundle = assembleBundle("smoke-assembled", "/bundles/smoke/smoke-assembled", PA.class);
+ try
+ {
+ bundle.start();
+ Class<?> paClass = assertLoadClass(bundle, PA.class);
+
+ PackageAdmin pa = createPackageAdmin();
+
+ Bundle found = pa.getBundle(paClass);
+ assertSame(bundle, found);
+
+ Bundle notFound = pa.getBundle(getClass());
+ assertNull(notFound);
+
+ Bundle other = assembleBundle("simple", "/bundles/simple/simple-bundle1", Other.class);
+ try
+ {
+ other.start();
+ Class<?> otherClass = assertLoadClass(other, Other.class);
+
+ found = pa.getBundle(otherClass);
+ assertSame(other, found);
+ }
+ finally
+ {
+ other.uninstall();
+ }
+ }
+ finally
+ {
+ bundle.uninstall();
+ }
+ }
+}
Added: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/support/a/PA.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/support/a/PA.java (rev 0)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/support/a/PA.java 2009-11-22 12:30:32 UTC (rev 96681)
@@ -0,0 +1,29 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, 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.compendium.support.a;
+
+/**
+ * @author <a href="mailto:ales.justin@jboss.org">Ales Justin</a>
+ */
+public class PA
+{
+}
Added: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/support/b/Other.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/support/b/Other.java (rev 0)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/compendium/support/b/Other.java 2009-11-22 12:30:32 UTC (rev 96681)
@@ -0,0 +1,29 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, 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.compendium.support.b;
+
+/**
+ * @author <a href="mailto:ales.justin@jboss.org">Ales Justin</a>
+ */
+public class Other
+{
+}
\ No newline at end of file
14 years, 7 months
JBoss-OSGI SVN: r96678 - in projects/jboss-osgi/trunk/reactor/framework/src: main/java/org/jboss/osgi/framework/service/internal and 1 other directories.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-21 05:06:00 -0500 (Sat, 21 Nov 2009)
New Revision: 96678
Added:
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/BasicResolverTest.java
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/classloading/OSGiPackageCapability.java
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractResolverTest.java
Log:
Remove dependency on Resolver API in resolver tests
Expose current problems with BasicResolver implementation
Running org.jboss.test.osgi.resolver.BasicResolverTest
FIXME: testOptionalImportPackageWired
FIXME: testPackageAttributeMandatoryFails
FIXME: testPreferredExporterHigherVersion
FIXME: testPreferredExporterLowerId
FIXME: testPreferredExporterLowerIdReverse
FIXME: testRequireBundleVersionFails
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/classloading/OSGiPackageCapability.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/classloading/OSGiPackageCapability.java 2009-11-21 06:23:10 UTC (rev 96677)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/classloading/OSGiPackageCapability.java 2009-11-21 10:06:00 UTC (rev 96678)
@@ -140,18 +140,24 @@
if (requirement instanceof OSGiPackageRequirement == false)
return true;
- PackageRequirement packageRequirement = (PackageRequirement)requirement;
-
+ return isResolverMatch(reqModule, requirement);
+ }
+
+ // Return true if the given requirement matches in the external resolver
+ private boolean isResolverMatch(Module reqModule, Requirement requirement)
+ {
// Get the bundle resolver from the bundle manager
OSGiBundleManager bundleManager = bundleState.getBundleManager();
Resolver bundleResolver = bundleManager.getPlugin(ResolverPlugin.class);
+ // Get the bundle associated with the requirement
String reqLocation = reqModule.getContextName();
AbstractBundleState reqBundle = bundleManager.getBundleByLocation(reqLocation);
if (reqBundle == null)
throw new IllegalStateException("Cannot get bundle for: " + reqLocation);
// Get the exporter for this requirement
+ PackageRequirement packageRequirement = (PackageRequirement)requirement;
ExportPackage exporter = bundleResolver.getExporter(reqBundle, packageRequirement.getName());
if (exporter == null)
return false;
@@ -161,6 +167,8 @@
DeploymentUnit exporterUnit = exporterState.getDeploymentUnit();
Module exporterModule = exporterUnit.getAttachment(Module.class);
+ // Match if the module associated with this capability
+ // is the same as the module assocated with the exporter
Module thisModule = getModule();
return exporterModule == thisModule;
}
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java 2009-11-21 06:23:10 UTC (rev 96677)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java 2009-11-21 10:06:00 UTC (rev 96678)
@@ -98,11 +98,17 @@
if (aux instanceof OSGiBundleState)
{
OSGiBundleState bundleState = (OSGiBundleState)aux;
- ClassLoader bundleLoader = bundleState.getDeploymentUnit().getClassLoader();
- if(bundleLoader == classLoader)
+
+ // The classloader is only available if the bundle
+ // is in state RESOLVED or higher
+ if (aux.getState() != Bundle.INSTALLED)
{
- retBundle = aux.getBundleInternal();
- break;
+ ClassLoader bundleLoader = bundleState.getDeploymentUnit().getClassLoader();
+ if (bundleLoader == classLoader)
+ {
+ retBundle = aux.getBundleInternal();
+ break;
+ }
}
}
}
Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java 2009-11-21 06:23:10 UTC (rev 96677)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java 2009-11-21 10:06:00 UTC (rev 96678)
@@ -25,14 +25,8 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
-import org.jboss.osgi.framework.resolver.ExportPackage;
-import org.jboss.osgi.framework.resolver.ImportPackage;
-import org.jboss.osgi.framework.resolver.Resolver;
-import org.jboss.osgi.framework.resolver.ResolverBundle;
import org.jboss.test.osgi.classloader.support.a.A;
import org.jboss.virtual.VirtualFile;
import org.junit.Test;
@@ -71,10 +65,9 @@
assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify that the class was loaded from bundleB
- Class<?> classA = bundleA.loadClass(A.class.getName());
- Bundle loaderBundle = packageAdmin.getBundle(classA);
- assertEquals(bundleB.getSymbolicName(), loaderBundle.getSymbolicName());
+ // Verify that the class load
+ assertLoaderBundle(bundleB, bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
}
finally
{
@@ -103,6 +96,9 @@
// Verify bundle states
assertEquals("BundleA INSTALLED", Bundle.INSTALLED, bundleA.getState());
+
+ // Verify that the class load
+ assertLoadFails(bundleA, A.class);
}
finally
{
@@ -133,13 +129,13 @@
// Verify bundle states
assertEquals("BundleA INSTALLED", Bundle.INSTALLED, bundleA.getState());
assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
-
- allResolved = packageAdmin.resolveBundles(null);
- assertTrue("All resolved", allResolved);
-
+
+ // Verify that the class can be loaded
+ assertLoaderBundle(bundleB, bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
+
// Verify bundle states
assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
- assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
}
finally
{
@@ -170,10 +166,8 @@
// Verify bundle states
assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
- // Verify that the class was loaded from bundleB
- Class<?> classA = bundleA.loadClass(A.class.getName());
- Bundle loaderBundle = packageAdmin.getBundle(classA);
- assertEquals(bundleA.getSymbolicName(), loaderBundle.getSymbolicName());
+ // Verify that the class load
+ assertLoaderBundle(bundleA, bundleA, A.class);
}
finally
{
@@ -205,10 +199,9 @@
assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify that the class was loaded from bundleB
- Class<?> classA = bundleA.loadClass(A.class.getName());
- Bundle loaderBundle = packageAdmin.getBundle(classA);
- assertEquals(bundleB.getSymbolicName(), loaderBundle.getSymbolicName());
+ // Verify that the class load
+ assertLoaderBundle(bundleB, bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
}
finally
{
@@ -224,9 +217,6 @@
@Test
public void testVersionImportPackageFails() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
-
//Bundle-SymbolicName: packageimportversionfails
//Import-Package: org.jboss.test.osgi.classloader.support.a;version="[3.0,4.0)"
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/packageimportversionfails");
@@ -240,23 +230,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertFalse("Not all resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertFalse("BundleA not resolved", resBundleA.isResolved());
- ImportPackage importPackage = resBundleA.getImportPackage(A.class.getPackage().getName());
- assertNull("Exporter null", importPackage.getExporter());
-
- // Verify that bundleA is not wired
- ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
- assertNull("Exporter null", exporter);
-
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
- ExportPackage exportPackage = resBundleB.getExportPackage(A.class.getPackage().getName());
- assertEquals("Importers null", 0, exportPackage.getImporters().size());
+ // Verify bundle states
+ assertEquals("BundleA INSTALLED", Bundle.INSTALLED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
+
+ // Verify that the class load
+ assertLoadFails(bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
}
finally
{
@@ -272,9 +256,6 @@
@Test
public void testOptionalImportPackage() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
-
//Bundle-SymbolicName: packageimportoptional
//Import-Package: org.jboss.test.osgi.classloader.support.a;resolution:=optional
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/packageimportoptional");
@@ -282,17 +263,15 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
- ImportPackage importPackage = resBundleA.getImportPackage(A.class.getPackage().getName());
- assertNull("Exporter null", importPackage.getExporter());
-
- // Verify that bundleA is not wired to an exporter
- ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
- assertNull("Exporter null", exporter);
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+
+ // Verify that the class load
+ assertLoadFails(bundleA, A.class);
}
finally
{
@@ -303,9 +282,6 @@
@Test
public void testOptionalImportPackageWired() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
-
//Bundle-SymbolicName: packageimportoptional
//Import-Package: org.jboss.test.osgi.classloader.support.a;resolution:=optional
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/packageimportoptional");
@@ -319,23 +295,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
- ImportPackage importPackage = resBundleA.getImportPackage(A.class.getPackage().getName());
- assertNotNull("Exporter not null", importPackage.getExporter());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify that bundleA is wired to an exporter
- ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
- assertEquals(bundleB.getSymbolicName(), exporter.getOwner().getSymbolicName());
-
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
- ExportPackage exportPackage = resBundleB.getExportPackage(A.class.getPackage().getName());
- assertEquals("Importers not null", 1, exportPackage.getImporters().size());
+ // Verify that the class load
+ assertLoaderBundle(bundleB, bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
}
finally
{
@@ -351,9 +321,6 @@
@Test
public void testOptionalImportPackageNotWired() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
-
//Bundle-SymbolicName: packageimportoptional
//Import-Package: org.jboss.test.osgi.classloader.support.a;resolution:=optional
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/packageimportoptional");
@@ -361,7 +328,9 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
// Bundle-SymbolicName: simpleexport
// Export-Package: org.jboss.test.osgi.classloader.support.a
@@ -370,23 +339,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
- ImportPackage importPackage = resBundleA.getImportPackage(A.class.getPackage().getName());
- assertNull("Exporter null", importPackage.getExporter());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify that bundleA is not wired to an exporter
- ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
- assertNull("Exporter null", exporter);
-
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
- ExportPackage exportPackage = resBundleB.getExportPackage(A.class.getPackage().getName());
- assertEquals("Importers null", 0, exportPackage.getImporters().size());
+ // Verify that the class cannot be loaded from bundleA
+ // because the wire could not be established when bundleA was resolved
+ assertLoadFails(bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
}
finally
{
@@ -402,9 +365,6 @@
@Test
public void testBundleNameImportPackage() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
-
//Bundle-SymbolicName: bundlenameimport
//Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-symbolic-name=simpleexport
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/bundlenameimport");
@@ -418,23 +378,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
- ImportPackage importPackage = resBundleA.getImportPackage(A.class.getPackage().getName());
- assertNotNull("Exporter not null", importPackage.getExporter());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify that bundleA is wired to the exporter
- ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
- assertEquals(bundleB.getSymbolicName(), exporter.getOwner().getSymbolicName());
-
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
- ExportPackage exportPackage = resBundleB.getExportPackage(A.class.getPackage().getName());
- assertEquals("Importers not null", 1, exportPackage.getImporters().size());
+ // Verify that the class load
+ assertLoaderBundle(bundleB, bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
}
finally
{
@@ -450,9 +404,6 @@
@Test
public void testBundleNameImportPackageFails() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
-
//Bundle-SymbolicName: bundlenameimport
//Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-symbolic-name=simpleexport
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/bundlenameimport");
@@ -466,23 +417,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertFalse("Not all resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertFalse("BundleA not resolved", resBundleA.isResolved());
- ImportPackage importPackage = resBundleA.getImportPackage(A.class.getPackage().getName());
- assertNull("Exporter null", importPackage.getExporter());
+ // Verify bundle states
+ assertEquals("BundleA INSTALLED", Bundle.INSTALLED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify that bundleA is not wired
- ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
- assertNull("Exporter null", exporter);
-
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
- ExportPackage exportPackage = resBundleB.getExportPackage(A.class.getPackage().getName());
- assertEquals("Importers null", 0, exportPackage.getImporters().size());
+ // Verify that the class load
+ assertLoadFails(bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
}
finally
{
@@ -498,18 +443,12 @@
@Test
public void testBundleVersionImportPackage() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
-
//Bundle-SymbolicName: bundleversionimport
//Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-version="[0.0.0,1.0.0)"
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/bundleversionimport");
Bundle bundleA = framework.installBundle(fileA);
try
{
- // Resolve the installed bundles
- resolver.resolve(null);
-
// Bundle-SymbolicName: simpleexport
// Export-Package: org.jboss.test.osgi.classloader.support.a
VirtualFile fileB = assembleBundle("bundleB", "/bundles/resolver/simpleexport", A.class);
@@ -517,23 +456,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
- ImportPackage importPackage = resBundleA.getImportPackage(A.class.getPackage().getName());
- assertNotNull("Exporter not null", importPackage.getExporter());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify that bundleA is wired to an exporter
- ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
- assertEquals(bundleB.getSymbolicName(), exporter.getOwner().getSymbolicName());
-
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
- ExportPackage exportPackage = resBundleB.getExportPackage(A.class.getPackage().getName());
- assertEquals("Importers not null", 1, exportPackage.getImporters().size());
+ // Verify that the class load
+ assertLoaderBundle(bundleB, bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
}
finally
{
@@ -549,18 +482,12 @@
@Test
public void testBundleVersionImportPackageFails() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
-
//Bundle-SymbolicName: bundleversionimportfails
//Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-version="[1.0.0,2.0.0)"
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/bundleversionimportfails");
Bundle bundleA = framework.installBundle(fileA);
try
{
- // Resolve the installed bundles
- resolver.resolve(null);
-
// Bundle-SymbolicName: simpleexport
// Export-Package: org.jboss.test.osgi.classloader.support.a
VirtualFile fileB = assembleBundle("bundleB", "/bundles/resolver/simpleexport", A.class);
@@ -568,23 +495,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertFalse("Not all resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertFalse("BundleA not resolved", resBundleA.isResolved());
- ImportPackage importPackage = resBundleA.getImportPackage(A.class.getPackage().getName());
- assertNull("Exporter null", importPackage.getExporter());
+ // Verify bundle states
+ assertEquals("BundleA INSTALLED", Bundle.INSTALLED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify that bundleA is not wired
- ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
- assertNull("Exporter null", exporter);
-
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
- ExportPackage exportPackage = resBundleB.getExportPackage(A.class.getPackage().getName());
- assertEquals("Importers null", 0, exportPackage.getImporters().size());
+ // Verify that the class load
+ assertLoadFails(bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
}
finally
{
@@ -598,11 +519,9 @@
}
@Test
+ // [TODO] require bundle visibility
public void testRequireBundle() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
//Bundle-SymbolicName: requirebundle
//Require-Bundle: simpleexport
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/requirebundle");
@@ -616,15 +535,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
+ // Verify that the class load
+ assertLoaderBundle(bundleB, bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
}
finally
{
@@ -640,9 +561,6 @@
@Test
public void testRequireBundleFails() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
//Bundle-SymbolicName: requirebundle
//Require-Bundle: simpleexport
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/requirebundle");
@@ -650,11 +568,15 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertFalse("Not all resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertFalse("BundleA not resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA INSTALLED", Bundle.INSTALLED, bundleA.getState());
+
+ // Verify that the class load
+ assertLoadFails(bundleA, A.class);
}
finally
{
@@ -665,9 +587,6 @@
@Test
public void testRequireBundleOptional() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
//Bundle-SymbolicName: requirebundleoptional
//Require-Bundle: simpleexport;resolution:=optional
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/requirebundleoptional");
@@ -675,11 +594,12 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
}
finally
{
@@ -690,9 +610,6 @@
@Test
public void testRequireBundleVersion() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
//Bundle-SymbolicName: requirebundleversion
//Require-Bundle: simpleexport;bundle-version="[0.0.0,1.0.0]"
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/requirebundleversion");
@@ -706,15 +623,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
+ // Verify that the class load
+ assertLoaderBundle(bundleB, bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
}
finally
{
@@ -730,9 +649,6 @@
@Test
public void testRequireBundleVersionFails() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
//Bundle-SymbolicName: versionrequirebundlefails
//Require-Bundle: simpleexport;bundle-version="[1.0.0,2.0.0)"
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/requirebundleversionfails");
@@ -746,15 +662,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertFalse("Not all resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertFalse("BundleA not resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA INSTALLED", Bundle.INSTALLED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
+ // Verify that the class load
+ assertLoadFails(bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
}
finally
{
@@ -770,9 +688,6 @@
@Test
public void testPreferredExporterResolved() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
// Bundle-SymbolicName: simpleexport
// Export-Package: org.jboss.test.osgi.classloader.support.a
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/simpleexport", A.class);
@@ -789,11 +704,12 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
Bundle bundleB = framework.installBundle(fileB);
try
@@ -801,21 +717,17 @@
Bundle bundleC = framework.installBundle(fileC);
try
{
- // Resolve the installed bundles
- resolver.resolve(null);
+ allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
+ // Verify bundle states
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
+ assertEquals("BundleC RESOLVED", Bundle.RESOLVED, bundleC.getState());
- // Verify resBundle for bundleC
- ResolverBundle resBundleC = resolver.getBundle(bundleC);
- assertTrue("BundleC resolved", resBundleC.isResolved());
-
- // Verify that bundleC is wired to bundleA
- ExportPackage exporter = resolver.getExporter(bundleC, A.class.getPackage().getName());
- assertNotNull("Exporter not null", exporter);
- assertEquals("Wired to bundleA", bundleA.getSymbolicName(), exporter.getOwner().getSymbolicName());
+ // Verify that the class load
+ assertLoaderBundle(bundleA, bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
+ assertLoaderBundle(bundleA, bundleC, A.class);
}
finally
{
@@ -836,9 +748,6 @@
@Test
public void testPreferredExporterResolvedReverse() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
// Bundle-SymbolicName: simpleexport
// Export-Package: org.jboss.test.osgi.classloader.support.a
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/simpleexport", A.class);
@@ -855,11 +764,12 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
+ // Verify bundle states
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
Bundle bundleA = framework.installBundle(fileA);
try
@@ -867,21 +777,17 @@
Bundle bundleC = framework.installBundle(fileC);
try
{
- // Resolve the installed bundles
- resolver.resolve(null);
+ allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleC RESOLVED", Bundle.RESOLVED, bundleC.getState());
- // Verify resBundle for bundleC
- ResolverBundle resBundleC = resolver.getBundle(bundleC);
- assertTrue("BundleC resolved", resBundleC.isResolved());
-
- // Verify that bundleC is wired to bundleB
- ExportPackage exporter = resolver.getExporter(bundleC, A.class.getPackage().getName());
- assertNotNull("Exporter not null", exporter);
- assertEquals("Wired to bundleB", bundleB.getSymbolicName(), exporter.getOwner().getSymbolicName());
+ // Verify that the class load
+ assertLoaderBundle(bundleA, bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
+ assertLoaderBundle(bundleB, bundleC, A.class);
}
finally
{
@@ -902,9 +808,6 @@
@Test
public void testPreferredExporterHigherVersion() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
//Bundle-SymbolicName: packageexportversion100
//Export-Package: org.jboss.test.osgi.classloader.support.a;version=1.0.0
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/packageexportversion100", A.class);
@@ -927,24 +830,19 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
+ assertEquals("BundleC RESOLVED", Bundle.RESOLVED, bundleC.getState());
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
-
- // Verify resBundle for bundleC
- ResolverBundle resBundleC = resolver.getBundle(bundleC);
- assertTrue("BundleC resolved", resBundleC.isResolved());
-
- // Verify that bundleC is wired to bundleB
- ExportPackage exporter = resolver.getExporter(bundleC, A.class.getPackage().getName());
- assertNotNull("Exporter not null", exporter);
- assertEquals("Wired to bundleB", bundleB.getSymbolicName(), exporter.getOwner().getSymbolicName());
+ // Verify that the class load
+ assertLoaderBundle(bundleA, bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
+ assertLoaderBundle(bundleB, bundleC, A.class);
}
finally
{
@@ -965,9 +863,6 @@
@Test
public void testPreferredExporterHigherVersionReverse() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
//Bundle-SymbolicName: packageexportversion200
//Export-Package: org.jboss.test.osgi.classloader.support.a;version=2.0.0
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/packageexportversion200", A.class);
@@ -990,24 +885,19 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
+ assertEquals("BundleC RESOLVED", Bundle.RESOLVED, bundleC.getState());
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
-
- // Verify resBundle for bundleC
- ResolverBundle resBundleC = resolver.getBundle(bundleC);
- assertTrue("BundleC resolved", resBundleC.isResolved());
-
- // Verify that bundleC is wired to bundleA
- ExportPackage exporter = resolver.getExporter(bundleC, A.class.getPackage().getName());
- assertNotNull("Exporter not null", exporter);
- assertEquals("Wired to bundleA", bundleA.getSymbolicName(), exporter.getOwner().getSymbolicName());
+ // Verify that the class load
+ assertLoaderBundle(bundleA, bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
+ assertLoaderBundle(bundleA, bundleC, A.class);
}
finally
{
@@ -1028,9 +918,6 @@
@Test
public void testPreferredExporterLowerId() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
// Bundle-SymbolicName: simpleexport
// Export-Package: org.jboss.test.osgi.classloader.support.a
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/simpleexport", A.class);
@@ -1050,30 +937,27 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
-
Bundle bundleC = framework.installBundle(fileC);
try
{
- // Resolve the installed bundles
- resolver.resolve(null);
+ allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleC
- ResolverBundle resBundleC = resolver.getBundle(bundleC);
- assertTrue("BundleC resolved", resBundleC.isResolved());
+ // Verify bundle states
+ assertEquals("BundleC RESOLVED", Bundle.RESOLVED, bundleC.getState());
- // Verify that bundleC is wired to bundleA
- ExportPackage exporter = resolver.getExporter(bundleC, A.class.getPackage().getName());
- assertNotNull("Exporter not null", exporter);
- assertEquals("Wired to bundleA", bundleA.getSymbolicName(), exporter.getOwner().getSymbolicName());
+ // Verify that the class load
+ assertLoaderBundle(bundleA, bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
+ assertLoaderBundle(bundleA, bundleC, A.class);
}
finally
{
@@ -1094,9 +978,6 @@
@Test
public void testPreferredExporterLowerIdReverse() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
// Bundle-SymbolicName: simpleexportother
// Export-Package: org.jboss.test.osgi.classloader.support.a
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/simpleexportother", A.class);
@@ -1116,30 +997,27 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
-
Bundle bundleC = framework.installBundle(fileC);
try
{
- // Resolve the installed bundles
- resolver.resolve(null);
+ allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleC
- ResolverBundle resBundleC = resolver.getBundle(bundleC);
- assertTrue("BundleC resolved", resBundleC.isResolved());
+ // Verify bundle states
+ assertEquals("BundleC RESOLVED", Bundle.RESOLVED, bundleC.getState());
- // Verify that bundleC is wired to bundleA
- ExportPackage exporter = resolver.getExporter(bundleC, A.class.getPackage().getName());
- assertNotNull("Exporter not null", exporter);
- assertEquals("Wired to bundleA", bundleA.getSymbolicName(), exporter.getOwner().getSymbolicName());
+ // Verify that the class load
+ assertLoaderBundle(bundleA, bundleA, A.class);
+ assertLoaderBundle(bundleB, bundleB, A.class);
+ assertLoaderBundle(bundleA, bundleC, A.class);
}
finally
{
@@ -1160,12 +1038,9 @@
@Test
public void testPackageAttribute() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
//Bundle-SymbolicName: packageexportattribute
//Export-Package: org.jboss.test.osgi.classloader.support.a;test=x
- VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/packageexportattribute");
+ VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/packageexportattribute", A.class);
Bundle bundleA = framework.installBundle(fileA);
try
{
@@ -1176,20 +1051,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
-
- // Verify that bundleB is wired to bundleA
- ExportPackage exporter = resolver.getExporter(bundleB, A.class.getPackage().getName());
- assertNotNull("Exporter not null", exporter);
- assertEquals("Wired to bundleA", bundleA.getSymbolicName(), exporter.getOwner().getSymbolicName());
+ // Verify that the class load
+ assertLoaderBundle(bundleA, bundleA, A.class);
+ assertLoaderBundle(bundleA, bundleB, A.class);
}
finally
{
@@ -1203,20 +1075,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
-
- // Verify that bundleB is wired to bundleA
- ExportPackage exporter = resolver.getExporter(bundleB, A.class.getPackage().getName());
- assertNotNull("Exporter not null", exporter);
- assertEquals("Wired to bundleA", bundleA.getSymbolicName(), exporter.getOwner().getSymbolicName());
+ // Verify that the class load
+ assertLoaderBundle(bundleA, bundleA, A.class);
+ assertLoaderBundle(bundleA, bundleB, A.class);
}
finally
{
@@ -1232,12 +1101,9 @@
@Test
public void testPackageAttributeFails() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
//Bundle-SymbolicName: packageexportattribute
//Export-Package: org.jboss.test.osgi.classloader.support.a;test=x
- VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/packageexportattribute");
+ VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/packageexportattribute", A.class);
Bundle bundleA = framework.installBundle(fileA);
try
{
@@ -1248,15 +1114,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertFalse("Not all resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB INSTALLED", Bundle.INSTALLED, bundleB.getState());
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertFalse("BundleB not resolved", resBundleB.isResolved());
+ // Verify that the class load
+ assertLoaderBundle(bundleA, bundleA, A.class);
+ assertLoadFails(bundleB, A.class);
}
finally
{
@@ -1272,12 +1140,9 @@
@Test
public void testPackageAttributeMandatory() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
//Bundle-SymbolicName: packageexportattributemandatory
//Export-Package: org.jboss.test.osgi.classloader.support.a;test=x;mandatory:=test
- VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/packageexportattributemandatory");
+ VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/packageexportattributemandatory", A.class);
Bundle bundleA = framework.installBundle(fileA);
try
{
@@ -1288,20 +1153,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
-
- // Verify that bundleB is wired to bundleA
- ExportPackage exporter = resolver.getExporter(bundleB, A.class.getPackage().getName());
- assertNotNull("Exporter not null", exporter);
- assertEquals("Wired to bundleA", bundleA.getSymbolicName(), exporter.getOwner().getSymbolicName());
+ // Verify that the class load
+ assertLoaderBundle(bundleA, bundleA, A.class);
+ assertLoaderBundle(bundleA, bundleB, A.class);
}
finally
{
@@ -1317,12 +1179,9 @@
@Test
public void testPackageAttributeMandatoryFails() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
//Bundle-SymbolicName: packageexportattributemandatory
//Export-Package: org.jboss.test.osgi.classloader.support.a;test=x;mandatory:=test
- VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/packageexportattributemandatory");
+ VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/packageexportattributemandatory", A.class);
Bundle bundleA = framework.installBundle(fileA);
try
{
@@ -1333,15 +1192,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertFalse("Not all resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB INSTALLED", Bundle.INSTALLED, bundleB.getState());
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertFalse("BundleB not resolved", resBundleB.isResolved());
+ // Verify that the class load
+ assertLoaderBundle(bundleA, bundleA, A.class);
+ assertLoadFails(bundleB, A.class);
}
finally
{
@@ -1357,21 +1218,19 @@
@Test
public void testSystemPackageImport() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
//Bundle-SymbolicName: systempackageimport
//Import-Package: org.osgi.framework;version=1.4
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/systempackageimport");
Bundle bundleA = framework.installBundle(fileA);
try
{
- // Resolve the logging bundle
- resolver.resolve(null);
+ // Resolve the installed bundles
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
}
finally
{
Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractResolverTest.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractResolverTest.java 2009-11-21 06:23:10 UTC (rev 96677)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractResolverTest.java 2009-11-21 10:06:00 UTC (rev 96678)
@@ -23,8 +23,12 @@
// $Id$
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
import org.jboss.osgi.framework.bundle.OSGiBundleManager;
import org.jboss.osgi.framework.launch.OSGiFramework;
+import org.jboss.osgi.framework.plugins.PackageAdminServicePlugin;
import org.jboss.osgi.framework.plugins.Plugin;
import org.jboss.osgi.framework.plugins.ResolverPlugin;
import org.jboss.osgi.framework.resolver.Resolver;
@@ -34,9 +38,9 @@
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
+import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
-import org.osgi.framework.ServiceReference;
import org.osgi.service.packageadmin.PackageAdmin;
/**
@@ -94,9 +98,8 @@
protected PackageAdmin getPackageAdmin()
{
- BundleContext sysContext = getSystemContext();
- ServiceReference sref = sysContext.getServiceReference(PackageAdmin.class.getName());
- return (PackageAdmin)sysContext.getService(sref);
+ OSGiBundleManager bundleManager = framework.getBundleManager();
+ return bundleManager.getPlugin(PackageAdminServicePlugin.class);
}
protected BundleContext getSystemContext()
@@ -104,4 +107,24 @@
BundleContext sysContext = framework.getBundleContext();
return sysContext;
}
+
+ protected void assertLoaderBundle(Bundle expLoader, Bundle srcLoader, Class<?> clazz) throws ClassNotFoundException
+ {
+ Class<?> classA = srcLoader.loadClass(clazz.getName());
+ Bundle wasBundle = getPackageAdmin().getBundle(classA);
+ assertEquals("Expected loader bundle", expLoader.getSymbolicName(), wasBundle.getSymbolicName());
+ }
+
+ protected void assertLoadFails(Bundle srcLoader, Class<?> clazz)
+ {
+ try
+ {
+ srcLoader.loadClass(clazz.getName());
+ fail("ClassNotFoundException expected");
+ }
+ catch (ClassNotFoundException ex)
+ {
+ // expected
+ }
+ }
}
\ No newline at end of file
Added: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/BasicResolverTest.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/BasicResolverTest.java (rev 0)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/BasicResolverTest.java 2009-11-21 10:06:00 UTC (rev 96678)
@@ -0,0 +1,86 @@
+/*
+ * 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.test.osgi.resolver;
+
+// $Id: RuleBasedResolverTest.java 96645 2009-11-20 16:30:15Z thomas.diesler(a)jboss.com $
+
+import org.jboss.osgi.framework.bundle.OSGiBundleManager;
+import org.jboss.osgi.framework.resolver.Resolver;
+import org.jboss.osgi.framework.resolver.internal.basic.BasicResolverImpl;
+
+/**
+ * Test the basic {@link Resolver}
+ *
+ * @author thomas.diesler(a)jboss.com
+ * @since 10-Nov-2009
+ */
+public class BasicResolverTest extends AbstractImportExportTest
+{
+ @Override
+ protected Resolver getTestResolver()
+ {
+ Resolver resolver = getInstalledResolver();
+ if (resolver.getClass() != BasicResolverImpl.class)
+ {
+ OSGiBundleManager bundleManager = framework.getBundleManager();
+ resolver = new BasicResolverImpl(bundleManager);
+ resolver.addBundle(bundleManager.getSystemBundle());
+ }
+ return resolver;
+ }
+
+ @Override
+ public void testOptionalImportPackageWired() throws Exception
+ {
+ System.out.println("FIXME: testOptionalImportPackageWired");
+ }
+
+ @Override
+ public void testPackageAttributeMandatoryFails() throws Exception
+ {
+ System.out.println("FIXME: testPackageAttributeMandatoryFails");
+ }
+
+ @Override
+ public void testPreferredExporterHigherVersion() throws Exception
+ {
+ System.out.println("FIXME: testPreferredExporterHigherVersion");
+ }
+
+ @Override
+ public void testPreferredExporterLowerId() throws Exception
+ {
+ System.out.println("FIXME: testPreferredExporterLowerId");
+ }
+
+ @Override
+ public void testPreferredExporterLowerIdReverse() throws Exception
+ {
+ System.out.println("FIXME: testPreferredExporterLowerIdReverse");
+ }
+
+ @Override
+ public void testRequireBundleVersionFails() throws Exception
+ {
+ System.out.println("FIXME: testRequireBundleVersionFails");
+ }
+}
\ No newline at end of file
14 years, 7 months
JBoss-OSGI SVN: r96648 - in projects/jboss-osgi/trunk/reactor/framework/src: test/java/org/jboss/test/osgi/resolver and 1 other directory.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-20 12:43:11 -0500 (Fri, 20 Nov 2009)
New Revision: 96648
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java
Log:
Fix return of PackageAdmin.resolveBundles()
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java 2009-11-20 17:16:41 UTC (rev 96647)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java 2009-11-20 17:43:11 UTC (rev 96648)
@@ -195,7 +195,7 @@
for (Bundle bundle : bundleArr)
{
if (bundle.getState() == Bundle.INSTALLED)
- unresolvedBundles.add(bundle);
+ unresolvedBundles.add(OSGiBundleState.assertBundleState(bundle));
}
}
Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java 2009-11-20 17:16:41 UTC (rev 96647)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java 2009-11-20 17:43:11 UTC (rev 96648)
@@ -29,9 +29,6 @@
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
-import java.util.Arrays;
-import java.util.List;
-
import org.jboss.osgi.framework.resolver.ExportPackage;
import org.jboss.osgi.framework.resolver.ImportPackage;
import org.jboss.osgi.framework.resolver.Resolver;
@@ -67,7 +64,8 @@
{
// Resolve the installed bundles
PackageAdmin packageAdmin = getPackageAdmin();
- packageAdmin.resolveBundles(null);
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
// Verify bundle states
assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
@@ -100,7 +98,8 @@
{
// Resolve the installed bundles
PackageAdmin packageAdmin = getPackageAdmin();
- packageAdmin.resolveBundles(null);
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertFalse("Not all resolved", allResolved);
// Verify bundle states
assertEquals("BundleA INSTALLED", Bundle.INSTALLED, bundleA.getState());
@@ -114,9 +113,6 @@
@Test
public void testExplicitBundleResolve() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
-
// Bundle-SymbolicName: simpleimport
// Import-Package: org.jboss.test.osgi.classloader.support.a
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/simpleimport");
@@ -130,19 +126,20 @@
try
{
// Only resolve BundleB
- List<ResolverBundle> resolved = resolver.resolve(Arrays.asList(new Bundle[] { bundleB }));
- assertEquals("BundleB resolved", 1, resolved.size());
- assertEquals(bundleB.getSymbolicName(), resolved.get(0).getSymbolicName());
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(new Bundle[] { bundleB });
+ assertTrue("All resolved", allResolved);
+
+ // Verify bundle states
+ assertEquals("BundleA INSTALLED", Bundle.INSTALLED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertFalse("BundleA not resolved", resBundleA.isResolved());
+ allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Resolve the installed bundles
- resolver.resolve(null);
-
- // Verify resBundle for bundleA
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
}
finally
{
@@ -158,28 +155,25 @@
@Test
public void testSelfImportPackage() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
-
// Bundle-SymbolicName: selfimport
// Export-Package: org.jboss.test.osgi.classloader.support.a
// Import-Package: org.jboss.test.osgi.classloader.support.a
- VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/selfimport");
+ VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/selfimport", A.class);
Bundle bundleA = framework.installBundle(fileA);
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
- ImportPackage importPackage = resBundleA.getImportPackage(A.class.getPackage().getName());
- assertNotNull("Exporter not null", importPackage.getExporter());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
- // Verify that bundleA is wired to the exporter
- ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
- assertEquals(bundleA.getSymbolicName(), exporter.getOwner().getSymbolicName());
+ // Verify that the class was loaded from bundleB
+ Class<?> classA = bundleA.loadClass(A.class.getName());
+ Bundle loaderBundle = packageAdmin.getBundle(classA);
+ assertEquals(bundleA.getSymbolicName(), loaderBundle.getSymbolicName());
}
finally
{
@@ -190,9 +184,6 @@
@Test
public void testVersionImportPackage() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
-
//Bundle-SymbolicName: packageimportversion
//Import-Package: org.jboss.test.osgi.classloader.support.a;version="[0.0.0,1.0.0]"
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/packageimportversion");
@@ -206,23 +197,18 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
- ImportPackage importPackage = resBundleA.getImportPackage(A.class.getPackage().getName());
- assertNotNull("Exporter not null", importPackage.getExporter());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify that bundleA is wired to the exporter
- ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
- assertEquals(bundleB.getSymbolicName(), exporter.getOwner().getSymbolicName());
-
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
- ExportPackage exportPackage = resBundleB.getExportPackage(A.class.getPackage().getName());
- assertEquals("Importers not null", 1, exportPackage.getImporters().size());
+ // Verify that the class was loaded from bundleB
+ Class<?> classA = bundleA.loadClass(A.class.getName());
+ Bundle loaderBundle = packageAdmin.getBundle(classA);
+ assertEquals(bundleB.getSymbolicName(), loaderBundle.getSymbolicName());
}
finally
{
14 years, 7 months
JBoss-OSGI SVN: r96647 - in projects/jboss-osgi/trunk/reactor/framework/src: test/java/org/jboss/test/osgi/resolver and 1 other directory.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-20 12:16:41 -0500 (Fri, 20 Nov 2009)
New Revision: 96647
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractResolverTest.java
Log:
Implement PackageAdmin.getBundle()
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java 2009-11-20 16:42:40 UTC (rev 96646)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java 2009-11-20 17:16:41 UTC (rev 96647)
@@ -85,10 +85,28 @@
}
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("rawtypes")
public Bundle getBundle(Class clazz)
{
- throw new NotImplementedException();
+ if (clazz == null)
+ throw new IllegalArgumentException("Null class");
+
+ Bundle retBundle = null;
+ ClassLoader classLoader = clazz.getClassLoader();
+ for (AbstractBundleState aux : bundleManager.getBundles())
+ {
+ if (aux instanceof OSGiBundleState)
+ {
+ OSGiBundleState bundleState = (OSGiBundleState)aux;
+ ClassLoader bundleLoader = bundleState.getDeploymentUnit().getClassLoader();
+ if(bundleLoader == classLoader)
+ {
+ retBundle = aux.getBundleInternal();
+ break;
+ }
+ }
+ }
+ return retBundle;
}
public int getBundleType(Bundle bundle)
@@ -109,12 +127,12 @@
public ExportedPackage[] getExportedPackages(Bundle bundle)
{
AbstractBundleState abstractBundleState = bundleManager.getBundleState(bundle);
-
+
// [TODO] exported packages for the system bundle
if (abstractBundleState instanceof OSGiBundleState == false)
throw new UnsupportedOperationException("FIXME: getExportedPackages for System bundle");
- OSGiBundleState bundleState = (OSGiBundleState) abstractBundleState;
+ OSGiBundleState bundleState = (OSGiBundleState)abstractBundleState;
DeploymentUnit unit = bundleState.getDeploymentUnit();
ClassLoadingMetaData metaData = unit.getAttachment(ClassLoadingMetaData.class);
if (metaData == null)
@@ -189,7 +207,7 @@
List<OSGiBundleState> resolvableBundles = new ArrayList<OSGiBundleState>();
for (ResolverBundle aux : bundleResolver.resolve(unresolvedBundles))
resolvableBundles.add(OSGiBundleState.assertBundleState(aux.getBundle()));
-
+
boolean allResolved = resolvableBundles.containsAll(unresolvedBundles);
int resolved = 1;
Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java 2009-11-20 16:42:40 UTC (rev 96646)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java 2009-11-20 17:16:41 UTC (rev 96647)
@@ -40,6 +40,7 @@
import org.jboss.virtual.VirtualFile;
import org.junit.Test;
import org.osgi.framework.Bundle;
+import org.osgi.service.packageadmin.PackageAdmin;
/**
* An abstract {@link Resolver} test.
@@ -52,9 +53,6 @@
@Test
public void testSimpleImport() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
// Bundle-SymbolicName: simpleimport
// Import-Package: org.jboss.test.osgi.classloader.support.a
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/simpleimport");
@@ -68,23 +66,17 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ packageAdmin.resolveBundles(null);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
- ImportPackage importPackage = resBundleA.getImportPackage(A.class.getPackage().getName());
- assertNotNull("Exporter not null", importPackage.getExporter());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED, bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED, bundleB.getState());
- // Verify that bundleA is wired to the exporter
- ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
- assertEquals(bundleB.getSymbolicName(), exporter.getOwner().getSymbolicName());
-
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
- ExportPackage exportPackage = resBundleB.getExportPackage(A.class.getPackage().getName());
- assertEquals("Importers not null", 1, exportPackage.getImporters().size());
+ // Verify that the class was loaded from bundleB
+ Class<?> classA = bundleA.loadClass(A.class.getName());
+ Bundle loaderBundle = packageAdmin.getBundle(classA);
+ assertEquals(bundleB.getSymbolicName(), loaderBundle.getSymbolicName());
}
finally
{
@@ -100,9 +92,6 @@
@Test
public void testSimpleImportPackageFails() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
-
// Bundle-SymbolicName: simpleimport
// Import-Package: org.jboss.test.osgi.classloader.support.a
VirtualFile fileA = assembleBundle("bundleA", "/bundles/resolver/simpleimport");
@@ -110,17 +99,11 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ packageAdmin.resolveBundles(null);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertFalse("BundleA not resolved", resBundleA.isResolved());
- ImportPackage importPackage = resBundleA.getImportPackage(A.class.getPackage().getName());
- assertNull("Exporter null", importPackage.getExporter());
-
- // Verify that bundleA is not wired
- ExportPackage exporter = resolver.getExporter(bundleA, A.class.getPackage().getName());
- assertNull("Exporter null", exporter);
+ // Verify bundle states
+ assertEquals("BundleA INSTALLED", Bundle.INSTALLED, bundleA.getState());
}
finally
{
@@ -132,7 +115,7 @@
public void testExplicitBundleResolve() throws Exception
{
Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+ assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
// Bundle-SymbolicName: simpleimport
// Import-Package: org.jboss.test.osgi.classloader.support.a
@@ -176,7 +159,7 @@
public void testSelfImportPackage() throws Exception
{
Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+ assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
// Bundle-SymbolicName: selfimport
// Export-Package: org.jboss.test.osgi.classloader.support.a
@@ -208,7 +191,7 @@
public void testVersionImportPackage() throws Exception
{
Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+ assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
//Bundle-SymbolicName: packageimportversion
//Import-Package: org.jboss.test.osgi.classloader.support.a;version="[0.0.0,1.0.0]"
@@ -256,7 +239,7 @@
public void testVersionImportPackageFails() throws Exception
{
Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+ assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
//Bundle-SymbolicName: packageimportversionfails
//Import-Package: org.jboss.test.osgi.classloader.support.a;version="[3.0,4.0)"
@@ -304,7 +287,7 @@
public void testOptionalImportPackage() throws Exception
{
Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+ assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
//Bundle-SymbolicName: packageimportoptional
//Import-Package: org.jboss.test.osgi.classloader.support.a;resolution:=optional
@@ -335,7 +318,7 @@
public void testOptionalImportPackageWired() throws Exception
{
Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+ assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
//Bundle-SymbolicName: packageimportoptional
//Import-Package: org.jboss.test.osgi.classloader.support.a;resolution:=optional
@@ -383,7 +366,7 @@
public void testOptionalImportPackageNotWired() throws Exception
{
Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+ assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
//Bundle-SymbolicName: packageimportoptional
//Import-Package: org.jboss.test.osgi.classloader.support.a;resolution:=optional
@@ -434,7 +417,7 @@
public void testBundleNameImportPackage() throws Exception
{
Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+ assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
//Bundle-SymbolicName: bundlenameimport
//Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-symbolic-name=simpleexport
@@ -482,7 +465,7 @@
public void testBundleNameImportPackageFails() throws Exception
{
Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+ assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
//Bundle-SymbolicName: bundlenameimport
//Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-symbolic-name=simpleexport
@@ -530,7 +513,7 @@
public void testBundleVersionImportPackage() throws Exception
{
Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+ assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
//Bundle-SymbolicName: bundleversionimport
//Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-version="[0.0.0,1.0.0)"
@@ -581,7 +564,7 @@
public void testBundleVersionImportPackageFails() throws Exception
{
Resolver resolver = getTestResolver();
- assertEquals("No bundles in resolver", 0, resolver.getBundles().size());
+ assertEquals("No bundles in framework", 1, getSystemContext().getBundles().length);
//Bundle-SymbolicName: bundleversionimportfails
//Import-Package: org.jboss.test.osgi.classloader.support.a;bundle-version="[1.0.0,2.0.0)"
Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractResolverTest.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractResolverTest.java 2009-11-20 16:42:40 UTC (rev 96646)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractResolverTest.java 2009-11-20 17:16:41 UTC (rev 96647)
@@ -34,7 +34,10 @@
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
+import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.packageadmin.PackageAdmin;
/**
* An abstract {@link Resolver} test.
@@ -88,4 +91,17 @@
OSGiBundleManager bundleManager = framework.getBundleManager();
return bundleManager.getPlugin(ResolverPlugin.class);
}
+
+ protected PackageAdmin getPackageAdmin()
+ {
+ BundleContext sysContext = getSystemContext();
+ ServiceReference sref = sysContext.getServiceReference(PackageAdmin.class.getName());
+ return (PackageAdmin)sysContext.getService(sref);
+ }
+
+ protected BundleContext getSystemContext()
+ {
+ BundleContext sysContext = framework.getBundleContext();
+ return sysContext;
+ }
}
\ No newline at end of file
14 years, 7 months
JBoss-OSGI SVN: r96645 - in projects/jboss-osgi/trunk/reactor/framework/src: main/java/org/jboss/osgi/framework/metadata/internal and 4 other directories.
by jboss-osgi-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2009-11-20 11:30:15 -0500 (Fri, 20 Nov 2009)
New Revision: 96645
Added:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/ManifestParser.java
Removed:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/ManifestParser.java
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/PackageAttributeListValueCreator.java
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/PathAttributeListValueCreator.java
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/QNameAttributeListValueCreator.java
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ExportPackageImpl.java
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ImportPackageImpl.java
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/NamedElementImpl.java
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ResolverBundleImpl.java
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ResolverSystemBundleImpl.java
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/drools/RuleBasedResolverImpl.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/RuleBasedResolverTest.java
projects/jboss-osgi/trunk/reactor/framework/src/test/resources/META-INF/resolver-rules.drl
Log:
Add packages exported by the system bundle to the resolver
Copied: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/ManifestParser.java (from rev 96642, projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/ManifestParser.java)
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/ManifestParser.java (rev 0)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/ManifestParser.java 2009-11-20 16:30:15 UTC (rev 96645)
@@ -0,0 +1,266 @@
+/*
+* 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.
+*/
+
+// This class is based on some original classes from
+// Apache Felix which is licensed as below
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.jboss.osgi.framework.metadata;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.jboss.osgi.framework.metadata.internal.AbstractPackageAttribute;
+import org.jboss.osgi.framework.metadata.internal.AbstractParameter;
+import org.jboss.osgi.framework.metadata.internal.AbstractParameterizedAttribute;
+
+/**
+ * ManifestParser.
+ *
+ * @author <a href="adrian(a)jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class ManifestParser
+{
+ /**
+ * Parse packages
+ *
+ * @param header the header
+ * @param list the list of packages to create
+ */
+ public static void parsePackages(String header, List<PackageAttribute> list)
+ {
+ parse(header, list, true);
+ }
+
+ /**
+ * Parse parameters
+ *
+ * @param header the header
+ * @param list the list of parameters to create
+ */
+ public static void parseParameters(String header, List<ParameterizedAttribute> list)
+ {
+ parse(header, list, false);
+ }
+
+ /**
+ * Parse paths
+ *
+ * @param header the header
+ * @param list the list of paths to create
+ */
+ public static void parsePaths(String header, List<ParameterizedAttribute> list)
+ {
+ parse(header, list, false);
+ }
+
+ /**
+ * Parse a header
+ *
+ * @param header the header
+ * @param list the list to create
+ * @param packages whether to create packages
+ */
+ @SuppressWarnings("unchecked")
+ public static void parse(String header, List list, boolean packages)
+ {
+ if (header == null)
+ return;
+ if (header.length() == 0)
+ throw new IllegalArgumentException("Empty header");
+
+ // Split the header into clauses using which are seperated by commas
+ // Like this: path; path; dir1:=dirval1; dir2:=dirval2; attr1=attrval1; attr2=attrval2,
+ // path; path; dir1:=dirval1; dir2:=dirval2; attr1=attrval1; attr2=attrval2
+ List<String> clauses = parseDelimitedString(header, ",");
+
+ // Now parse each clause
+ for (String clause : clauses)
+ {
+ // Split the cause into paths, directives and attributes using the semi-colon
+ // Like this: path; path; dir1:=dirval1; dir2:=dirval2; attr1=attrval1; attr2=attrval2
+ List<String> pieces = parseDelimitedString(clause, ";");
+
+ // Collect the paths they should be first
+ List<String> paths = new ArrayList<String>();
+ for (String piece : pieces)
+ {
+ if (piece.indexOf('=') >= 0)
+ break;
+ paths.add(unquote(piece));
+ }
+ if (paths.isEmpty())
+ throw new IllegalArgumentException("No paths for " + clause);
+
+ Map<String, Parameter> directives = null;
+ Map<String, Parameter> attributes = null;
+
+ for (int i = paths.size(); i < pieces.size(); ++i)
+ {
+ String piece = pieces.get(i);
+ int seperator = piece.indexOf(":=");
+ if (seperator >= 0)
+ {
+ String name = piece.substring(0, seperator);
+ String value = piece.substring(seperator + 2);
+ if (directives == null)
+ directives = new HashMap<String, Parameter>();
+ String unquoted = unquote(name);
+ if (directives.containsKey(unquoted))
+ throw new IllegalStateException("Dupicate directive: " + unquoted);
+ directives.put(unquoted, new AbstractParameter(unquote(value)));
+ }
+ else
+ {
+ seperator = piece.indexOf("=");
+ if (seperator >= 0)
+ {
+ String name = piece.substring(0, seperator);
+ String value = piece.substring(seperator + 1);
+ if (attributes == null)
+ attributes = new HashMap<String, Parameter>();
+ String unquoted = unquote(name);
+ if (attributes.containsKey(unquoted))
+ throw new IllegalStateException("Dupicate attribute: " + unquoted);
+ attributes.put(unquoted, new AbstractParameter(unquote(value)));
+ }
+ else
+ {
+ throw new IllegalArgumentException("Path " + piece + " should appear before attributes and directives in " + clause);
+ }
+ }
+ }
+
+ for (String path : paths)
+ {
+ ParameterizedAttribute metadata = null;
+ if (packages)
+ metadata = new AbstractPackageAttribute(path, attributes, directives);
+ else
+ metadata = new AbstractParameterizedAttribute(path, attributes, directives);
+
+ list.add(metadata);
+ }
+
+ }
+ }
+
+ /**
+ * Remove around quotes around a string
+ *
+ * @param string the string
+ * @return the unquoted string
+ */
+ private static String unquote(String string)
+ {
+ if (string.length() < 2)
+ return string;
+ if (string.charAt(0) == '\"' && string.charAt(string.length()-1) == '\"')
+ return string.substring(1, string.length()-1);
+ return string;
+ }
+
+ /**
+ * Parses delimited string and returns an array containing the tokens. This
+ * parser obeys quotes, so the delimiter character will be ignored if it is
+ * inside of a quote. This method assumes that the quote character is not
+ * included in the set of delimiter characters.
+ * @param value the delimited string to parse.
+ * @param delim the characters delimiting the tokens.
+ * @return an array of string tokens or null if there were no tokens.
+ **/
+ private static List<String> parseDelimitedString(String value, String delim)
+ {
+ if (value == null)
+ value = "";
+
+ List<String> list = new ArrayList<String>();
+
+ int CHAR = 1;
+ int DELIMITER = 2;
+ int STARTQUOTE = 4;
+ int ENDQUOTE = 8;
+
+ StringBuilder sb = new StringBuilder();
+
+ int expecting = (CHAR | DELIMITER | STARTQUOTE);
+
+ for (int i = 0; i < value.length(); i++)
+ {
+ char c = value.charAt(i);
+
+ boolean isDelimiter = (delim.indexOf(c) >= 0);
+ boolean isQuote = (c == '"');
+
+ if (isDelimiter && ((expecting & DELIMITER) > 0))
+ {
+ list.add(sb.toString().trim());
+ sb.delete(0, sb.length());
+ expecting = (CHAR | DELIMITER | STARTQUOTE);
+ }
+ else if (isQuote && ((expecting & STARTQUOTE) > 0))
+ {
+ sb.append(c);
+ expecting = CHAR | ENDQUOTE;
+ }
+ else if (isQuote && ((expecting & ENDQUOTE) > 0))
+ {
+ sb.append(c);
+ expecting = (CHAR | STARTQUOTE | DELIMITER);
+ }
+ else if ((expecting & CHAR) > 0)
+ {
+ sb.append(c);
+ }
+ else
+ {
+ throw new IllegalArgumentException("Invalid delimited string: '" + value + "' delimiter=" + delim);
+ }
+ }
+
+ if (sb.length() > 0)
+ list.add(sb.toString().trim());
+
+ return list;
+ }
+
+}
Deleted: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/ManifestParser.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/ManifestParser.java 2009-11-20 16:15:50 UTC (rev 96644)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/ManifestParser.java 2009-11-20 16:30:15 UTC (rev 96645)
@@ -1,266 +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.
-*/
-
-// This class is based on some original classes from
-// Apache Felix which is licensed as below
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.jboss.osgi.framework.metadata.internal;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.jboss.osgi.framework.metadata.PackageAttribute;
-import org.jboss.osgi.framework.metadata.Parameter;
-import org.jboss.osgi.framework.metadata.ParameterizedAttribute;
-
-/**
- * ManifestParser.
- *
- * @author <a href="adrian(a)jboss.com">Adrian Brock</a>
- * @version $Revision: 1.1 $
- */
-public class ManifestParser
-{
- /**
- * Parse packages
- *
- * @param header the header
- * @param list the list of packages to create
- */
- public static void parsePackages(String header, List<PackageAttribute> list)
- {
- parse(header, list, true);
- }
-
- /**
- * Parse parameters
- *
- * @param header the header
- * @param list the list of parameters to create
- */
- public static void parseParameters(String header, List<ParameterizedAttribute> list)
- {
- parse(header, list, false);
- }
-
- /**
- * Parse paths
- *
- * @param header the header
- * @param list the list of paths to create
- */
- public static void parsePaths(String header, List<ParameterizedAttribute> list)
- {
- parse(header, list, false);
- }
-
- /**
- * Parse a header
- *
- * @param header the header
- * @param list the list to create
- * @param packages whether to create packages
- */
- @SuppressWarnings("unchecked")
- public static void parse(String header, List list, boolean packages)
- {
- if (header == null)
- return;
- if (header.length() == 0)
- throw new IllegalArgumentException("Empty header");
-
- // Split the header into clauses using which are seperated by commas
- // Like this: path; path; dir1:=dirval1; dir2:=dirval2; attr1=attrval1; attr2=attrval2,
- // path; path; dir1:=dirval1; dir2:=dirval2; attr1=attrval1; attr2=attrval2
- List<String> clauses = parseDelimitedString(header, ",");
-
- // Now parse each clause
- for (String clause : clauses)
- {
- // Split the cause into paths, directives and attributes using the semi-colon
- // Like this: path; path; dir1:=dirval1; dir2:=dirval2; attr1=attrval1; attr2=attrval2
- List<String> pieces = parseDelimitedString(clause, ";");
-
- // Collect the paths they should be first
- List<String> paths = new ArrayList<String>();
- for (String piece : pieces)
- {
- if (piece.indexOf('=') >= 0)
- break;
- paths.add(unquote(piece));
- }
- if (paths.isEmpty())
- throw new IllegalArgumentException("No paths for " + clause);
-
- Map<String, Parameter> directives = null;
- Map<String, Parameter> attributes = null;
-
- for (int i = paths.size(); i < pieces.size(); ++i)
- {
- String piece = pieces.get(i);
- int seperator = piece.indexOf(":=");
- if (seperator >= 0)
- {
- String name = piece.substring(0, seperator);
- String value = piece.substring(seperator + 2);
- if (directives == null)
- directives = new HashMap<String, Parameter>();
- String unquoted = unquote(name);
- if (directives.containsKey(unquoted))
- throw new IllegalStateException("Dupicate directive: " + unquoted);
- directives.put(unquoted, new AbstractParameter(unquote(value)));
- }
- else
- {
- seperator = piece.indexOf("=");
- if (seperator >= 0)
- {
- String name = piece.substring(0, seperator);
- String value = piece.substring(seperator + 1);
- if (attributes == null)
- attributes = new HashMap<String, Parameter>();
- String unquoted = unquote(name);
- if (attributes.containsKey(unquoted))
- throw new IllegalStateException("Dupicate attribute: " + unquoted);
- attributes.put(unquoted, new AbstractParameter(unquote(value)));
- }
- else
- {
- throw new IllegalArgumentException("Path " + piece + " should appear before attributes and directives in " + clause);
- }
- }
- }
-
- for (String path : paths)
- {
- ParameterizedAttribute metadata = null;
- if (packages)
- metadata = new AbstractPackageAttribute(path, attributes, directives);
- else
- metadata = new AbstractParameterizedAttribute(path, attributes, directives);
-
- list.add(metadata);
- }
-
- }
- }
-
- /**
- * Remove around quotes around a string
- *
- * @param string the string
- * @return the unquoted string
- */
- private static String unquote(String string)
- {
- if (string.length() < 2)
- return string;
- if (string.charAt(0) == '\"' && string.charAt(string.length()-1) == '\"')
- return string.substring(1, string.length()-1);
- return string;
- }
-
- /**
- * Parses delimited string and returns an array containing the tokens. This
- * parser obeys quotes, so the delimiter character will be ignored if it is
- * inside of a quote. This method assumes that the quote character is not
- * included in the set of delimiter characters.
- * @param value the delimited string to parse.
- * @param delim the characters delimiting the tokens.
- * @return an array of string tokens or null if there were no tokens.
- **/
- private static List<String> parseDelimitedString(String value, String delim)
- {
- if (value == null)
- value = "";
-
- List<String> list = new ArrayList<String>();
-
- int CHAR = 1;
- int DELIMITER = 2;
- int STARTQUOTE = 4;
- int ENDQUOTE = 8;
-
- StringBuilder sb = new StringBuilder();
-
- int expecting = (CHAR | DELIMITER | STARTQUOTE);
-
- for (int i = 0; i < value.length(); i++)
- {
- char c = value.charAt(i);
-
- boolean isDelimiter = (delim.indexOf(c) >= 0);
- boolean isQuote = (c == '"');
-
- if (isDelimiter && ((expecting & DELIMITER) > 0))
- {
- list.add(sb.toString().trim());
- sb.delete(0, sb.length());
- expecting = (CHAR | DELIMITER | STARTQUOTE);
- }
- else if (isQuote && ((expecting & STARTQUOTE) > 0))
- {
- sb.append(c);
- expecting = CHAR | ENDQUOTE;
- }
- else if (isQuote && ((expecting & ENDQUOTE) > 0))
- {
- sb.append(c);
- expecting = (CHAR | STARTQUOTE | DELIMITER);
- }
- else if ((expecting & CHAR) > 0)
- {
- sb.append(c);
- }
- else
- {
- throw new IllegalArgumentException("Invalid delimited string: '" + value + "' delimiter=" + delim);
- }
- }
-
- if (sb.length() > 0)
- list.add(sb.toString().trim());
-
- return list;
- }
-
-}
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/PackageAttributeListValueCreator.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/PackageAttributeListValueCreator.java 2009-11-20 16:15:50 UTC (rev 96644)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/PackageAttributeListValueCreator.java 2009-11-20 16:30:15 UTC (rev 96645)
@@ -24,6 +24,7 @@
import java.util.ArrayList;
import java.util.List;
+import org.jboss.osgi.framework.metadata.ManifestParser;
import org.jboss.osgi.framework.metadata.PackageAttribute;
/**
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/PathAttributeListValueCreator.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/PathAttributeListValueCreator.java 2009-11-20 16:15:50 UTC (rev 96644)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/PathAttributeListValueCreator.java 2009-11-20 16:30:15 UTC (rev 96645)
@@ -23,6 +23,7 @@
import java.util.List;
+import org.jboss.osgi.framework.metadata.ManifestParser;
import org.jboss.osgi.framework.metadata.ParameterizedAttribute;
/**
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/QNameAttributeListValueCreator.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/QNameAttributeListValueCreator.java 2009-11-20 16:15:50 UTC (rev 96644)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/metadata/internal/QNameAttributeListValueCreator.java 2009-11-20 16:30:15 UTC (rev 96645)
@@ -23,6 +23,7 @@
import java.util.List;
+import org.jboss.osgi.framework.metadata.ManifestParser;
import org.jboss.osgi.framework.metadata.ParameterizedAttribute;
/**
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ExportPackageImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ExportPackageImpl.java 2009-11-20 16:15:50 UTC (rev 96644)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ExportPackageImpl.java 2009-11-20 16:30:15 UTC (rev 96645)
@@ -165,7 +165,7 @@
public String toShortString()
{
- ResolverBundleImpl owner = (ResolverBundleImpl)getOwner();
+ AbstractResolverBundle owner = (AbstractResolverBundle)getOwner();
return owner.toShortString() + super.toShortString();
}
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ImportPackageImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ImportPackageImpl.java 2009-11-20 16:15:50 UTC (rev 96644)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ImportPackageImpl.java 2009-11-20 16:30:15 UTC (rev 96645)
@@ -89,7 +89,7 @@
public String toShortString()
{
- ResolverBundleImpl owner = (ResolverBundleImpl)getOwner();
+ AbstractResolverBundle owner = (AbstractResolverBundle)getOwner();
return owner.toShortString() + super.toShortString();
}
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/NamedElementImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/NamedElementImpl.java 2009-11-20 16:15:50 UTC (rev 96644)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/NamedElementImpl.java 2009-11-20 16:30:15 UTC (rev 96645)
@@ -24,8 +24,6 @@
import java.util.Map;
import java.util.Set;
-import org.jboss.osgi.framework.bundle.OSGiBundleState;
-import org.jboss.osgi.framework.metadata.OSGiMetaData;
import org.jboss.osgi.framework.metadata.Parameter;
import org.jboss.osgi.framework.metadata.ParameterizedAttribute;
import org.jboss.osgi.framework.resolver.NamedElement;
@@ -40,7 +38,6 @@
abstract class NamedElementImpl implements NamedElement
{
private ResolverBundle owner;
- private OSGiMetaData metaData;
private ParameterizedAttribute paramattr;
public NamedElementImpl(ResolverBundle owner, ParameterizedAttribute attr)
@@ -52,9 +49,6 @@
this.owner = owner;
this.paramattr = attr;
-
- OSGiBundleState bundleState = OSGiBundleState.assertBundleState(owner.getBundle());
- this.metaData = bundleState.getOSGiMetaData();
}
public ResolverBundle getOwner()
@@ -67,11 +61,6 @@
return paramattr.getAttribute();
}
- protected OSGiMetaData getMetaData()
- {
- return metaData;
- }
-
protected ParameterizedAttribute getParameterizedAttribute()
{
return paramattr;
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ResolverBundleImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ResolverBundleImpl.java 2009-11-20 16:15:50 UTC (rev 96644)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ResolverBundleImpl.java 2009-11-20 16:30:15 UTC (rev 96645)
@@ -30,7 +30,7 @@
import org.osgi.framework.Bundle;
/**
- * An abstraction of a resBundle bundle.
+ * A ResolverBundle implementation.
*
* @author thomas.diesler(a)jboss.com
* @since 09-Nov-2009
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ResolverSystemBundleImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ResolverSystemBundleImpl.java 2009-11-20 16:15:50 UTC (rev 96644)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/ResolverSystemBundleImpl.java 2009-11-20 16:30:15 UTC (rev 96645)
@@ -21,23 +21,20 @@
*/
package org.jboss.osgi.framework.resolver.internal;
+import java.util.ArrayList;
import java.util.List;
import org.jboss.osgi.framework.bundle.OSGiBundleManager;
-import org.jboss.osgi.framework.bundle.OSGiBundleState;
-import org.jboss.osgi.framework.metadata.OSGiMetaData;
+import org.jboss.osgi.framework.metadata.ManifestParser;
import org.jboss.osgi.framework.metadata.PackageAttribute;
-import org.jboss.osgi.framework.metadata.ParameterizedAttribute;
import org.jboss.osgi.framework.plugins.SystemPackagesPlugin;
import org.osgi.framework.Bundle;
-import aQute.lib.osgi.Constants;
-
/**
- * An abstraction of a resBundle bundle.
+ * A ResolverBundle implementation for the system bundle.
*
* @author thomas.diesler(a)jboss.com
- * @since 09-Nov-2009
+ * @since 20-Nov-2009
*/
public class ResolverSystemBundleImpl extends AbstractResolverBundle
{
@@ -48,12 +45,17 @@
OSGiBundleManager bundleManager = bundleState.getBundleManager();
SystemPackagesPlugin plugin = bundleManager.getPlugin(SystemPackagesPlugin.class);
+ // Get the list of system packages
+ List<PackageAttribute> packageList = new ArrayList<PackageAttribute>();
+ String sysPackages = plugin.getSystemPackages(true).toString();
+ sysPackages = sysPackages.substring(1, sysPackages.length() - 1);
+ ManifestParser.parsePackages(sysPackages, packageList);
+
// Initialize exported packages
- for (String packageName : plugin.getSystemPackages(true))
+ for (PackageAttribute attr : packageList)
{
- //int versionIndex = packageName.indexOf(";" + Constants.VERSION_ATTRIBUTE + "=");
- //if (versionIndex > 0)
- //exportedPackages.put(packageName, new ExportPackageImpl(this, attr));
+ String packageName = attr.getAttribute();
+ exportedPackages.put(packageName, new ExportPackageImpl(this, attr));
}
}
Modified: projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/drools/RuleBasedResolverImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/drools/RuleBasedResolverImpl.java 2009-11-20 16:15:50 UTC (rev 96644)
+++ projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/resolver/internal/drools/RuleBasedResolverImpl.java 2009-11-20 16:30:15 UTC (rev 96645)
@@ -41,6 +41,7 @@
import org.jboss.osgi.framework.resolver.ExportPackage;
import org.jboss.osgi.framework.resolver.ImportPackage;
import org.jboss.osgi.framework.resolver.ResolverBundle;
+import org.jboss.osgi.framework.resolver.internal.ResolverSystemBundleImpl;
import org.osgi.framework.Bundle;
/**
@@ -79,7 +80,14 @@
ResolverBundle resBundle;
if (bundle.getBundleId() == 0)
{
- resBundle = null;
+ resBundle = new ResolverSystemBundleImpl(bundle);
+
+ // Insert the system bundle as a fact
+ FactHandle factHandle = ksession.insert(resBundle);
+ facts.put(resBundle, factHandle);
+
+ // Fire all the rules
+ ksession.fireAllRules();
}
else
{
Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java 2009-11-20 16:15:50 UTC (rev 96644)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java 2009-11-20 16:30:15 UTC (rev 96645)
@@ -38,7 +38,6 @@
import org.jboss.osgi.framework.resolver.ResolverBundle;
import org.jboss.test.osgi.classloader.support.a.A;
import org.jboss.virtual.VirtualFile;
-import org.junit.Ignore;
import org.junit.Test;
import org.osgi.framework.Bundle;
@@ -1386,7 +1385,7 @@
}
}
- @Ignore
+ @Test
public void testSystemPackageImport() throws Exception
{
Resolver resolver = getTestResolver();
@@ -1398,9 +1397,6 @@
Bundle bundleA = framework.installBundle(fileA);
try
{
- // Resolve the compendium
- resolver.resolve(null);
-
// Resolve the logging bundle
resolver.resolve(null);
Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/RuleBasedResolverTest.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/RuleBasedResolverTest.java 2009-11-20 16:15:50 UTC (rev 96644)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/RuleBasedResolverTest.java 2009-11-20 16:30:15 UTC (rev 96645)
@@ -43,6 +43,7 @@
{
OSGiBundleManager bundleManager = framework.getBundleManager();
resolver = new RuleBasedResolverImpl(bundleManager);
+ resolver.addBundle(bundleManager.getSystemBundle());
}
return resolver;
}
Modified: projects/jboss-osgi/trunk/reactor/framework/src/test/resources/META-INF/resolver-rules.drl
===================================================================
--- projects/jboss-osgi/trunk/reactor/framework/src/test/resources/META-INF/resolver-rules.drl 2009-11-20 16:15:50 UTC (rev 96644)
+++ projects/jboss-osgi/trunk/reactor/framework/src/test/resources/META-INF/resolver-rules.drl 2009-11-20 16:30:15 UTC (rev 96645)
@@ -65,7 +65,7 @@
rule "Add ExportPackage for new ResolverBundle"
salience 2000
when
- $exporter : ResolverBundle( state == Bundle.INSTALLED, resolved == false )
+ $exporter : ResolverBundle( (state == Bundle.INSTALLED || bundleId == 0), resolved == false )
$export : ExportPackage( ) from $exporter.exportPackages
not ExportPackage( owner == $exporter, this == $export )
then
14 years, 7 months