[Git][java-team/knopflerfish-osgi][master] 4 commits: New upstream version 6.1.5+dfsg
Andreas Tille (@tille)
gitlab at salsa.debian.org
Sun Feb 2 17:23:05 GMT 2025
Andreas Tille pushed to branch master at Debian Java Maintainers / knopflerfish-osgi
Commits:
ce624a58 by Andreas Tille at 2025-02-02T18:20:44+01:00
New upstream version 6.1.5+dfsg
- - - - -
8cf0aab0 by Andreas Tille at 2025-02-02T18:20:45+01:00
Update upstream source from tag 'upstream/6.1.5+dfsg'
Update to upstream version '6.1.5+dfsg'
with Debian dir a0923462d7745ca50cdc88bb20417fe9883b6d71
- - - - -
7d4ec37a by Andreas Tille at 2025-02-02T18:21:43+01:00
New upstream version
- - - - -
6e4da815 by Andreas Tille at 2025-02-02T18:22:28+01:00
Adapt to new upstream version
- - - - -
24 changed files:
- .travis.yml
- + README.md
- README.txt → README.txt.in
- ant/ant_templates/mvn_repo.xml
- ant/bundletasks.xml
- ant/src/org/knopflerfish/ant/taskdefs/bundle/BundleMvnAntTask.java
- build.xml
- debian/changelog
- debian/libknopflerfish-osgi-framework-java.install
- debian/rules
- htdocs/html_src/programming_main.html
- htdocs/html_src/release_page.html.in
- osgi/framework/build.xml
- osgi/framework/src/org/knopflerfish/framework/BundleClassLoader.java
- osgi/framework/src/org/knopflerfish/framework/BundlePackages.java
- osgi/framework/src/org/knopflerfish/framework/Bundles.java
- osgi/framework/src/org/knopflerfish/framework/FrameworkContext.java
- osgi/framework/src/org/knopflerfish/framework/Main.java
- osgi/framework/src/org/knopflerfish/framework/ReferenceURLStreamHandler.java
- osgi/framework/src/org/knopflerfish/framework/ServiceURLStreamHandlerFactory.java
- osgi/framework/src/org/knopflerfish/framework/WeavingHooks.java
- osgi/framework/src/org/knopflerfish/framework/bundlestorage/file/BundleArchiveImpl.java
- osgi/framework/src/org/knopflerfish/framework/permissions/PermissionsHandle.java
- release_notes.in.md
Changes:
=====================================
.travis.yml
=====================================
@@ -18,7 +18,7 @@ env:
before_install:
- wget https://archive.apache.org/dist/ant/binaries/apache-ant-1.9.8-bin.tar.gz
- tar xzf apache-ant-1.9.8-bin.tar.gz
-- wget http://services.gradle.org/distributions/gradle-2.10-bin.zip
+- wget https://services.gradle.org/distributions/gradle-2.10-bin.zip
- unzip gradle-2.10-bin.zip
- export GRADLE_HOME=$PWD/gradle-2.10
notifications:
@@ -26,15 +26,19 @@ notifications:
recipients:
- devel at makewave.com
on_success: always
+ slack:
+ rooms:
+ secure: "aPlxQLIbdlWdopMiuFmKvceKsgQ7YfB0XTh5SlVHdoJdi4IdovDbk9b6BoEka5hRAQTW8Px4vPQLR90VzQeTlCiDZyRhZVlVTdQaaOLEY5kBRfATWOEYiVReqG2s7rsxUH6s4OSYA/NVAkK6d2nOWttb72DDy8rdFT068guCUSpkdKku5p2MCPe8nQnvJRtAgJBimxUNdwI+Eb77s0I2YKQqyl6b80IgWrBv/TsgxGKWmOPYKtx16CdBuDZKhOq4oIqLbveTGlRBiCrzBBL2DFZJxCMtzhROlF8Rf6FGIl5YF2q0KkWIeEhCo3jqJ6fU9fWCSn3Lq//vlJK+QLHTA5k5OH+Worf/hiP+arY4ixRuNyknHHUc4jemCTo1d6/VI7ft+Cgz36FHPnTf1wB/fMJ8H7errnGU8zc4ymgESnDFoBAgxsU+4/rvVReBuNieVNGXEQ4jieJyr3K1HfEyZHRS+H6vKKRacYU6zssTFJEqKBWUXNXDX4wjXjsQSdgTF029QEKWA2ZkE0tWFMAj41xv6bZ6tWFllZR7COtXJH+Cq3DwcRA0CIIvQ5u3fyDP2QNm0MLOXkp+Tbeur27fHXWKCCfSGge3yIWzLQh83TIKKgzTIQoCZ3WpQqXttAPqzwu9VgxpZqo5TpNpsFwovlh6l+zLeT2E+29vjT0Cv48="
+ on_success: always
install: true
-script: apache-ant-1.9.8/bin/ant -Dbuild.kind=Travis_CI_$TRAVIS_JDK_VERSION -Dtravis.tag=$TRAVIS_TAG -Dtravis.suffix=$VER_SUF -Dgit.pristine=true $EXTRA distrib && ! (grep '<case ' out/distrib_*/junit_grunt/index.xml | grep -v passed)
+script: apache-ant-1.9.8/bin/ant -Dbuild.kind=Travis_CI_$TRAVIS_JDK_VERSION -Dtravis.tag=$TRAVIS_TAG -Dtravis.suffix=$VER_SUF -Dgit.pristine=true -Dtravis.deploy=$DEPLOY $EXTRA distrib && ! (grep '<case ' out/distrib_*/junit_grunt/index.xml | grep -v passed)
before_deploy:
- openssl aes-256-cbc -K $encrypted_a3ffaab67d90_key -iv $encrypted_a3ffaab67d90_iv -in tools/travis/id_rsa.travis.enc -out tools/travis/id_rsa.travis -d
- chmod 600 tools/travis/id_rsa.travis
deploy:
- provider: releases
api_key:
- secure: rAYBAuFuv12I3BsJHS2Mw5dT1J+zpFx5XpXyVK6+IF1rkt4xL0PfrAjnhEMaBv1rvvliIyXpJQG+v9trrPjnZ5nZi+uqiWn1YAq//1m0ungvGNrrqt+jVRmiR8ma4HfKwoaevnDvT3uRzjw598FxbXhH+2bnUbKAnRkrm4VNTv+wkJDrVvvRBRbEmPX+A8trteSuTbJiDC3vCktWkE1eU6e5unHZMEN5G36BTvolWjoTevYaXjEAEue31jSsmqhGYjDhrU0D+Xl8V2+U75OuEm5FoYXHPIK2aytXwPySZkgBPAAbVY5NBRFi5fjDHXRY71gGusmWk/IDAy0ZzRV8EdaxGnhuBVnbb28T+yIz2L2gtl1qb7E0S8Xli/gjfLLD6lf/slOxRJ5/sjKEEd5Oe2xf7Q4K/rKCkNPnPSf1uvfkRGPSfyw7err0ifYvtIOqD/CvC7cQ32FUZd2zMq4mVtcFr8rovnBkAqlqKoeoWHmbYL0vpBb+kX1rRgQJ+5gKUV+2diDl770Bj44IbDYRBE3id0gI9yykOBzR33T9s7MurvwPcM+Mh3ShJrzB8ZBnmqfMTCoh5N3qTP6WgbIZ5gikdA3k7vrxbmYnPUkYmcGNTwgWTt0hXjL54SrVwK4PacylK5x7SSnc8f9zMuM2eflkaVf3m710uYQcL/QYpzI=
+ secure: "mSqWJJnJTWwPfOhIy4o27nrkSASzqjgg1th4egA2QcLa+1eD9/IEO17yQytOFRVpAa10jSMwjUSSC1qC3FdXyo9W5TmfMUnSYQ679C6MFVG04SVyeVYZP5ZM442XZDiTu935S7L8pIUhcilfLvu5lo8RRfelOa4D8WWT51RtrmvszF0LTZsLmzy0W2srksI6tbJA1ZNSY+AkrtanPCkDC8YwimaQ0YwQAsAeanIEuqmYmCSP1qvHrFcLvqgBR3u08PGcmtAviEYKjnVkY85JdyF8B6O785snVyVKHjbV5VYNA2LcLSRLa2xOfOcnHwt3NDEtKjKHv+LJ9FMCJe+mZTHy7JSCN7j6nT7mkk1HXQb28pIVMYOaZ6GGpH/sJ4csGnL4jAOjOOZWkkSG4I6fAx1PEKZlcQ8vEfbrv2vQub3z5o4wieqDQMyiUldeaVxrAFGyA1pdxiPVUaq/xeIlaWoemd+NV/W/vANwzPxZscyB0mx52w9JSFvoorzl7BsQ+dJpEzqaAAJGhJbPoI1PCOyxcSp17LPSEhoZBq7JD1ZdHnzwIyDAs6AZo4xnuyVjGtIlD0s79M7/okS8nwLhrRX1ODkzRwYSqBHe2o3aBDTSAuddHLv8IrNdSuj9QS0p8IRkYjWE2AyQo7vYBzk+VPhlHz0oFdZbGarzWdNxmiY="
file:
- out/distrib_$TRAVIS_TAG$VER_SUF/knopflerfish_osgi_sdk_$TRAVIS_TAG$VER_SUF.jar
- out/distrib_$TRAVIS_TAG$VER_SUF/knopflerfish_osgi_tiny_$TRAVIS_TAG$VER_SUF.zip
=====================================
README.md
=====================================
@@ -0,0 +1,123 @@
+Knopflerfish
+======================================================================
+
+Knopflerfish is a leading universal open source OSGi Service
+Platform. Knopflerfish implements it's own OSGi framework as defined
+by the OSGi Core Specification and a o a large set of the bundles /
+services defined by OSGi Compendium Specification. Knopflerfish also
+includes various optional services such as OSGi wrappers for popular
+3rd party libraries, knopflerfish specific bundles / services, and
+utilities and development tools.
+
+Knopflerfish is designed to be compliant with the OSGi Release 6
+specifications.
+
+The Knopflerfish website has the full documentation and Knopflerfish
+OSGi Service Platform SDK's available for download.
+http://www.knopflerfish.org
+
+Building Knopflerfish OSGi
+------------------------------
+
+### Prerequisites
+- JDK 6 or later, available from Open JDK, Oracle or elsewhere.
+- Ant 1.9.1 or later, available from ant.apache.org.
+- openssl, to create and manipulate certificates when using
+ security and the Conditional Permission Admin (CPA) service. Test
+ suites for CPA can not be built and executed without openssl.
+- ProGuard 4.10 or later, tested with 5.2. This is only need if you want
+ to build the compact version of the framework. You need ProGuard 5
+ or later if you want to build with Java 8.
+
+### Java compatibility
+
+Knopflerfish, release 6, is designed to run on Java 1.6 and upwards.
+
+The Knopflerfish 6 SDK releases are always compiled with JDK6.
+
+The Knopflerfish SDK can however be rebuilt for another JDK versions
+if preferred.
+For a comprehensive explanation of running and building Knopflerfish
+with different JDK versions please consult:
+http://www.knopflerfish.org/osgi_java_compatibility_guide.html
+
+### How to build
+
+1. Clone this repository
+
+2. Step into the osgi subdir and call ant
+ ```
+ > cd osgi
+ > ant
+ ```
+
+This will build the framework and all essential OSGi bundles.
+
+After a successful build a `framework.jar` will be created.
+Compiled bundles are placed in the `jars` directory.
+
+To start the platform simply run:
+```
+java -jar framework.jar
+```
+
+To get more start-up options:
+```
+java -jar framework.jar -help
+```
+
+Please refer to the documentation for a complete description on
+starting Knopflerfish and start options.
+
+Building the Knopflerfish OSGi SDK
+----------------------------------------
+
+A complete Knopflerfish OSGi SDK distribution can also be built. In
+this case build from the root directory of the repo and call the
+distrib target:
+```
+ant distrib
+```
+
+This target will compile all bundles, including test bundles. run the
+knopflerfish test suite, generate javadoc and bundle specific
+documentation, and finally create a self-extracting jar file with the
+complete SDK.
+
+Working with bndtools
+----------------------------------------
+Knopflerfish itself is not built with bnd or bndtools, but it is very
+easy to integrate or use knopflerfish since an OSGi repository index
+file is generated in the build process.
+
+Insert the following in the .bnd file of your project.
+```
+-plugin.org.knopflerfish.kf6: \
+ aQute.bnd.repository.osgi.OSGiRepository; \
+ locations=http://www.knopflerfish.org/releases/6.1.0/osgi/jars/index.xml; \
+ name=kf6
+```
+and replace the location with a file URL pointing to your local
+Knopflerfish repository.
+
+Working with maven
+----------------------------------------
+During the distribution build a maven2 repository is built which can
+be used as a local maven repository.
+
+More information on user maven can be found here:
+http://www.knopflerfish.org/maven.html
+
+
+About Knopflerfish
+----------------------------------------
+Knopflerfish is a leading universal open source OSGi Service
+Platform.
+http://www.knopflerfish.org
+
+The development is led and maintained by Makewave
+http://www.makewave.com
+
+As a complement to the freely available Knopflerfish, Makewave offers
+Knopflerfish Pro, the certified and fully supported edition of
+Knopflerfish.
=====================================
README.txt → README.txt.in
=====================================
@@ -5,19 +5,24 @@
Contents:
----------------------------------------
README.txt - this file.
- release_notes.html - the release notes for the current release.
+ release_notes.md - the release notes for the current release.
+ release_notes.html - the html version of the same release notes
NOTICE.txt - notice file on included third party software.
LICENSE.txt - the Knopflerfish license.
- ant - Ant related code and build include files.
- docs - online documentation (html),
- docs/index.html - Starting point for reading the documentation.
- osgi - all OSGi related code.
- osgi/bundles - bundles included in distribution.
- osgi/bundles_opt - some extra bundles.
- osgi/framework - core OSGi framework.
- osgi/jars - Precompiled bundles.
- osgi/test_jars - Precompiled JUnit test suite bundles.
+ ant - Ant related code and build include files.
+ docs - online documentation (html),
+ docs/index.html - Starting point for reading the documentation.
+ osgi - all OSGi related code.
+ osgi/bundles - bundles included in distribution.
+ osgi/bundles_opt - some extra optional bundles.
+ osgi/bundles_test - test bundles.
+ osgi/framework - core OSGi framework
+ osgi/framework.jar - Precompiled Knopflerfish framework
+ osgi/jars - Precompiled bundles.
+ osgi/test_jars - Precompiled JUnit test suite bundles.
+ tools - tools
+ tools/andorid - tools for the android environment
Basic: How to start
@@ -27,21 +32,32 @@ Basic: How to start
- JRE 6 or later, available from Oracle.
1. Step into the osgi dir
+
2. Start the OSGi framework by:
> java -jar framework.jar
-3. This starts the framework + a large set of bundles, including
- the desktop
+3. This starts the framework + a predefined set of bundles, including
+ the Knopflerfish desktop bundle
+
+4. Restart can be done in two ways:
+
+ Restart from the previous state
+ > java -jar framework.jar
+
+ Make a clean start
+ > java -jar framework.jar -init
Building:
----------------------------------------
+
+Please note: building, or rebuilding, a downloaded Knopflerfish SDK
+will overwrite the pre-compiled bundles shipped with the Knopflerfish
+SDK.
+
Prerequisites
- - JDK 6 , available from Oracle.
- See http://java.com/en/download/faq/java_6.xml for details.
- Note that JDK 7 or later can NOT be used to build Knopflerfish,
- but Knopflerfish will run on them.
+ - JDK 6 or later, available from Open JDK, Oracle or elsewhere.
- Ant 1.9.1 or later, available from ant.apache.org.
- openssl, to create and manipulate certificates when using
security and the Conditional Permission Admin (CPA) service. Test
@@ -53,3 +69,33 @@ Building:
1. Step into the osgi dir
2. Start the build by:
> ant all
+
+
+Java compatibility
+----------------------------------------
+
+The Knopflerfish SDK is compiled with JDK6
+
+The Knopflerfish run-time will run on JDK6 and upwards.
+
+The Knopflerfish SDK can be rebuilt for another JDK versions. See the
+Building section above.
+
+For a comprehensive explanation of running and building Knopflerfish
+with different JDK versions please consult:
+http://www.knopflerfish.org/osgi_java_compatibility_guide.html
+
+
+About Knopflerfish
+----------------------------------------
+
+Knopflerfish is a leading universal open source OSGi Service
+Platform.
+http://www.knopflerfish.org
+
+The development is led and maintained by Makewave
+http://www.makewave.com
+
+As a complement to the freely available Knopflerfish, Makewave offers
+Knopflerfish Pro, the certified and fully supported edition of
+Knopflerfish.
=====================================
ant/ant_templates/mvn_repo.xml
=====================================
@@ -55,6 +55,9 @@
value="maven-ant-tasks-${maven-ant-tasks.version}.jar"/>
<property name="maven-ant-tasks.path"
location="${ant.dir}/lib/${maven-ant-tasks.jar}"/>
+ <property name="kf6.1-libs.baseurl"
+ value="http://resources.knopflerfish.org/repo/kf6.1-libs" />
+
<path id="maven-ant-tasks.classpath"
path="${maven-ant-tasks.path}" />
<available classname="org.apache.maven.artifact.ant.WritePomTask"
@@ -66,9 +69,11 @@
uri="antlib:org.apache.maven.artifact.ant"
classpathref="maven-ant-tasks.classpath" />
</target>
-
+
<target name="install_maven-ant-tasks" unless="maven-ant-tasks.present">
- <get src="http://repo1.maven.org/maven2/org/apache/maven/maven-ant-tasks/2.1.3/maven-ant-tasks-${maven-ant-tasks.version}.jar"
+ <!-- get src="http://repo1.maven.org/maven2/org/apache/maven/maven-ant-tasks/2.1.3/maven-ant-tasks-${maven-ant-tasks.version}.jar"
+ dest="${maven-ant-tasks.path}"/-->
+ <get src="${kf6.1-libs.baseurl}/maven-ant-tasks-${maven-ant-tasks.version}.jar"
dest="${maven-ant-tasks.path}"/>
</target>
=====================================
ant/bundletasks.xml
=====================================
@@ -42,6 +42,8 @@
<property name="osgi.dir" location="${ant.dir}/../osgi"/>
<property name="framework.dir" location="${osgi.dir}/framework"/>
+ <property name="kf6.1-libs.baseurl"
+ value="http://resources.knopflerfish.org/repo/kf6.1-libs" />
<!-- ASM bytecode manipulation and analysis framework -->
<property name="asm.version" value="3.2"/>
@@ -57,6 +59,7 @@
<pathelement location="${ant.lib}/${asm-all.jar}" />
</path>
+
<!-- Download and install repoindex -->
<property name="bndtools.download.url"
@@ -64,13 +67,17 @@
<property name="org.osgi.impl.bundle.repoindex.cli.jar"
value="org.osgi.impl.bundle.repoindex.cli-0.0.4.jar"/>
+ <!--property name="org.osgi.impl.bundle.repoindex.cli.download.url"
+ value="${bndtools.download.url}/org.osgi.impl.bundle.repoindex.cli/"/-->
<property name="org.osgi.impl.bundle.repoindex.cli.download.url"
- value="${bndtools.download.url}/org.osgi.impl.bundle.repoindex.cli/"/>
+ value="${kf6.1-libs.baseurl}"/>
<property name="org.osgi.impl.bundle.repoindex.ant.jar"
value="org.osgi.impl.bundle.repoindex.ant-0.0.1.jar"/>
+ <!--property name="org.osgi.impl.bundle.repoindex.ant.download.url"
+ value="${bndtools.download.url}/org.osgi.impl.bundle.repoindex.ant/" /-->
<property name="org.osgi.impl.bundle.repoindex.ant.download.url"
- value="${bndtools.download.url}/org.osgi.impl.bundle.repoindex.ant/" />
+ value="${kf6.1-libs.baseurl}"/>
<target name="install_repoindex">
<get src="${org.osgi.impl.bundle.repoindex.cli.download.url}/${org.osgi.impl.bundle.repoindex.cli.jar}"
@@ -165,10 +172,14 @@
value="proguard-base-${proguard.version}.jar"/>
<property name="maven.url" value="http://repo1.maven.org/maven2"/>
<property name="proguard.url" value="${maven.url}/net/sf/proguard"/>
+ <!--property name="proguard-anttask.url"
+ value="${proguard.url}/proguard-anttask/${proguard.version}/${proguard-anttask.jar}"/-->
+ <!--property name="proguard-base.url"
+ value="${proguard.url}/proguard-base/${proguard.version}/${proguard-base.jar}"/-->
<property name="proguard-anttask.url"
- value="${proguard.url}/proguard-anttask/${proguard.version}/${proguard-anttask.jar}"/>
+ value="${kf6.1-libs.baseurl}/${proguard-anttask.jar}"/>
<property name="proguard-base.url"
- value="${proguard.url}/proguard-base/${proguard.version}/${proguard-base.jar}"/>
+ value="${kf6.1-libs.baseurl}/${proguard-base.jar}"/>
<target name="install_proguard">
<get src="${proguard-base.url}"
@@ -189,16 +200,20 @@
<property name="pegdown.version" value="1.6.0"/>
<property name="pegdown.jar" value="pegdown-${pegdown.version}.jar" />
- <property name="pegdown.url" value="http://repo1.maven.org/maven2/org/pegdown/pegdown/${pegdown.version}/${pegdown.jar}" />
+ <!-- property name="pegdown.url" value="http://repo1.maven.org/maven2/org/pegdown/pegdown/${pegdown.version}/${pegdown.jar}" /-->
+ <property name="pegdown.url" value="${kf6.1-libs.baseurl}/${pegdown.jar}" />
<property name="parboiled-core.version" value="1.1.7"/>
<property name="parboiled-core.jar" value="parboiled-core-${parboiled-core.version}.jar" />
- <property name="parboiled-core.url" value="http://repo1.maven.org/maven2/org/parboiled/parboiled-core/${parboiled-core.version}/${parboiled-core.jar}" />
+ <!-- property name="parboiled-core.url" value="http://repo1.maven.org/maven2/org/parboiled/parboiled-core/${parboiled-core.version}/${parboiled-core.jar}" /-->
+ <property name="parboiled-core.url" value="${kf6.1-libs.baseurl}/${parboiled-core.jar}" />
+
<property name="parboiled-java.version" value="1.1.7"/>
<property name="parboiled-java.jar" value="parboiled-java-${parboiled-java.version}.jar" />
- <property name="parboiled-java.url" value="http://repo1.maven.org/maven2/org/parboiled/parboiled-java/${parboiled-java.version}/${parboiled-java.jar}" />
+ <property name="parboiled-java.url" value="${kf6.1-libs.baseurl}/${parboiled-java.jar}" />
- <property name="asm-all.url" value="http://central.maven.org/maven2/org/ow2/asm/asm-all/${asm-all.version}/${asm-all.jar}" />
+ <!-- property name="asm-all.url" value="http://central.maven.org/maven2/org/ow2/asm/asm-all/${asm-all.version}/${asm-all.jar}" /-->
+ <property name="asm-all.url" value="${kf6.1-libs.baseurl}/${asm-all.jar}" />
<target name="install_pegdown">
<get src="${pegdown.url}"
=====================================
ant/src/org/knopflerfish/ant/taskdefs/bundle/BundleMvnAntTask.java
=====================================
@@ -347,9 +347,10 @@ public class BundleMvnAntTask extends Task {
// fw.write("url \"file:///" + repoDir.getAbsolutePath() + "\"\n");
// fw.write("}\n");
fw.write("maven {\n");
- fw.write("url \"file:///" + mergeRepoDir + "\"\n");
+ fw.write("url \"file:///" + mergeRepoDir + "\"\n");
fw.write("}\n");
-
+ fw.write("}\n");
+
fw.write("publications {\n");
final String prefix1 = " ";
@@ -361,6 +362,19 @@ public class BundleMvnAntTask extends Task {
final SortedSet<BundleArchive> bsnSet = entry.getValue();
// Sorted set with bundle archives, same bsn, different versions
for (final BundleArchive ba : bsnSet) {
+ // Determine if the artifact exist in the merge repo
+ File mavenVersionDir = new File(mergeRepoDir + "/" +
+ getGroupId(ba).replace('.', '/') + "/" +
+ getArtifactId(ba) + "/" +
+ getVersion(ba));
+ if (mavenVersionDir.exists()) {
+ log("Existing artifact, skipping: " + mavenVersionDir);
+ continue;
+ }
+ else {
+ log("New artifact, preparing publication: " + mavenVersionDir);
+ }
+
fw.write(fixBsnName(ba) + "(MavenPublication) {\n");
fw.write("groupId '" + getGroupId(ba) + "'\n");
fw.write("artifactId '" + getArtifactId(ba) + "'\n" );
@@ -402,15 +416,15 @@ public class BundleMvnAntTask extends Task {
addGradleLicense(fw, ba);
addGradleDependencies(fw, ba);
- fw.write("}\n");
+ fw.write("}\n}\n");
// addSourceAttachment(mvnDeployBundle, ba, prefix2);
// addJavadocAttachment(mvnDeployBundle, ba, prefix2);
}
- fw.write("}\n");
+ // fw.write("}\n");
}
- fw.write("}\n");
+ // fw.write("}\n");
fw.write("}\n");
fw.write("}\n");
=====================================
build.xml
=====================================
@@ -35,7 +35,7 @@
-->
-<project name="knopflerfish" default="default">
+<project name="knopflerfish" xmlns:if="ant:if" xmlns:unless="ant:unless" default="default">
<!-- The default version of this build -->
<tstamp>
@@ -80,6 +80,14 @@
</and>
</condition>
+ <condition property="deploy.build">
+ <and>
+ <isset property="release.build" />
+ <isset property="travis.deploy" />
+ <equals arg1="${travis.deploy}" arg2="true"/>
+ </and>
+ </condition>
+
<!-- OSGi do not allow . in qualifiers -->
<loadresource property="git.tag.osgi">
<propertyresource name="git.tag"/>
@@ -110,7 +118,7 @@
<isset property="release.build"/>
</condition>
- <property name="version.base" value="6.1.0.snapshot"/>
+ <property name="version.base" value="6.1.5.snapshot"/>
<condition property="version"
value="${version.base}"
else="${version.base}-${version.suffix}">
@@ -122,10 +130,10 @@
<!-- The release date of this release -->
<!-- *** Un-comment and set here on release branch. *** -->
<!-- Defaults to current date, set here if another value is wanted. -->
- <!-- property name="release.date" value="2017-02-08"/-->
+ <property name="release.date" value="2022-04-08"/>
<!-- The previous official release version for this build -->
- <property name="version.previous" value="6.1.0"/>
+ <property name="version.previous" value="6.1.4"/>
<!-- The URL to the root of the git-repository -->
<property name="git.repo.url"
@@ -171,6 +179,10 @@
location="${distrib.tmp.dir}/remote_maven2"/>
<property name="distrib.mvn.remote.repo"
value="file:///${distrib.mvn.remote.repo.dir}"/>
+ <property name="kf.mvn.current.release.repo"
+ value="current-maven-release.tar.gz" />
+ <property name="kf.mvn.current.release.repo.url"
+ value="http://resources.knopflerfish.org/repo/maven2-archives/${kf.mvn.current.release.repo}" />
<property name="distrib.sdk.name"
value="knopflerfish_osgi_sdk_${version}" />
<property name="distrib.sdk.file"
@@ -431,9 +443,32 @@
</bundlehtml>
</target>
- <target name="distrib_mvn_repo" depends="bundle_tasks">
- <mkdir dir="${distrib.mvn.repo.dir}/org/knopflerfish"/>
+ <target name="download_mvn_repo" if="${deploy.build}">
+
+ <get src="${kf.mvn.current.release.repo.url}"
+ dest="${distrib.tmp.dir}"
+ verbose="false"
+ skipexisting="true"/>
+
+ <mkdir dir="${distrib.mvn.remote.repo.dir}" />
+ <!--
+ <untar src="${distrib.tmp.dir}/${kf.mvn.current.release.repo}"
+ dest="${distrib.mvn.remote.repo.dir}" compression="gzip" />
+ -->
+
+ <!-- Unix tar is explicitly used to make sure all time stamps are preserved -->
+ <exec executable="tar">
+ <arg value="-zx" />
+ <arg value="-C" />
+ <arg value="${distrib.mvn.remote.repo.dir}" />
+ <arg value="-f" />
+ <arg value="${distrib.tmp.dir}/${kf.mvn.current.release.repo}" />
+ </exec>
+
+ </target>
+ <target name="distrib_mvn_repo" depends="bundle_tasks, download_mvn_repo">
+
<bundleMvnAnt templateAntFile="${ant.dir}/ant_templates/mvn_repo.xml"
repoDir="${distrib.mvn.repo.dir}"
mergeRepoDir="${distrib.mvn.remote.repo.dir}"
@@ -521,20 +556,28 @@
<format property="distrib_docs.tstamp.year" pattern="yyyy" locale="en"/>
</tstamp>
+ <filterset id="distrib_txt_files" begintoken="@" endtoken="@">
+ <filter token="YEAR" value="${distrib_docs.tstamp.year}"/>
+ <filter token="VERSION" value="${version}"/>
+ <filter token="DOWNLOAD_URL" value="${base.url}/${version}"/>
+ </filterset>
+
<copy todir="${distrib.dir}">
<fileset dir=".">
- <include name="README.txt"/>
<include name="NOTICE.txt"/>
<include name="LICENSE.txt"/>
- <include name="changelog.txt"/>
</fileset>
- <filterset begintoken="@" endtoken="@">
- <filter token="YEAR" value="${distrib_docs.tstamp.year}"/>
- <filter token="VERSION" value="${version}"/>
- <filter token="DOWNLOAD_URL" value="${base.url}/${version}"/>
- </filterset>
+ <filterset refid="distrib_txt_files" />
+ </copy>
+ <copy todir="${distrib.dir}">
+ <fileset dir=".">
+ <include name="README.txt.in"/>
+ </fileset>
+ <filterset refid="distrib_txt_files" />
+ <globmapper from="*.txt.in" to="*.txt"/>
</copy>
+
<copy todir="${distrib.doc.dir}">
<fileset dir="${htdocs.dir}">
<include name="css/knopflerfish.css"/>
@@ -902,4 +945,32 @@
</exec>
</target>
+ <target name="infobuild"
+ description="Describes the type of build, including versions, build-suffixes and bundle versions">
+ <echo message="release.build : ${release.build}" />
+ <echo message="deploy.build : ${deploy.build}" />
+ <echo message="version : ${version}" />
+ <echo message="version.suffix : ${version.suffix}" />
+ <echo message="version.previous : ${version.previous}" />
+ <echo message="bundle.version.suffix : ${bundle.version.suffix}" />
+
+ <echo message="travis.version : ${travis.version}" />
+ <echo message="travis.suffix : ${travis.suffix}" />
+ <echo message="git.tag : ${git.tag}" />
+ <echo message="git.pristine : ${git.pristine}" />
+ <echo message="distrib.sdk.name : ${distrib.sdk.name}" />
+ <echo message="--------------------" />
+ <echo message="ant.version : ${ant.version}" />
+ <echo message="ant.java.version : ${ant.java.version}" />
+ <echo message="os.name : ${os.name}" />
+ <echo message="os.arch : ${os.arch}" />
+ <echo message="os.version : ${os.version}" />
+
+ </target>
+
+ <target name="cltest">
+ <untar src="${distrib.tmp.dir}/${kf.mvn.current.release.repo}"
+ dest="out/tmp/apa" compression="gzip" />
+ </target>
+
</project>
=====================================
debian/changelog
=====================================
@@ -1,3 +1,10 @@
+knopflerfish-osgi (6.1.5+dfsg-1) UNRELEASED; urgency=medium
+
+ * Team upload.
+ * New upstream version
+
+ -- Andreas Tille <tille at debian.org> Sun, 02 Feb 2025 18:21:08 +0100
+
knopflerfish-osgi (6.1.1-4) unstable; urgency=medium
* Team upload.
=====================================
debian/libknopflerfish-osgi-framework-java.install
=====================================
@@ -1,2 +1,2 @@
NOTICE.txt usr/share/doc/libknopflerfish-osgi-framework-java/
-osgi/jars/framework-8.0.5.jar usr/share/knopflerfish/
+osgi/jars/framework-8.0.*.jar usr/share/knopflerfish/
=====================================
debian/rules
=====================================
@@ -1,5 +1,7 @@
#!/usr/bin/make -f
+include /usr/share/dpkg/default.mk
+
%:
dh $@ --buildsystem=ant
@@ -7,7 +9,7 @@ override_dh_auto_build:
mkdir -p osgi/framework/libs
ln -s /usr/share/java/asm-all.jar osgi/framework/libs/asm-3.2.jar
mkdir -p osgi/annotations
- ln -s /usr/share/java/osgi.annotation.jar osgi/annotations/osgi.annotation-6.0.1.jar
+ ln -s /usr/share/java/osgi.annotation.jar osgi/annotations/osgi.annotation-$(DEB_VERSION_UPSTREAM).jar
dh_auto_build -- -f ant/bundletasks.xml build_bundle_tasks -Dasm.jar=/usr/share/java/asm-all.jar
dh_auto_build -- -f osgi/framework/build.xml jar
=====================================
htdocs/html_src/programming_main.html
=====================================
@@ -218,42 +218,17 @@ with Maven Knopflerfish offers a Maven 2 repository with all released
artifacts (framework and bundles).
This Maven2 repository id called "Knopflerfish Releases Repository"
-and can be found at<br/>
+and can be found at:<br/>
<a
-href="http://www.knopflerfish.org/maven2/"><code>http://www.knopflerfish.org/maven2/</code></a><br/>
-
-It contains all artifacts from Knopflerfish release builds starting with
-2.3.3, 2.4, 3.0, 3.1, ...
-
-<p/>
-
-To make it easy to find artifacts that belongs to the same
-Knopflerfish release the repository contains an xml-document for each
-release that lists all artifacts with group id, artifact id and
-version. These documents are located in<br/>
-
-<a href="http://www.knopflerfish.org./maven2/org/knopflerfish/"><code>http://www.knopflerfish.org/maven2/org/knopflerfish/</code><br/></a>
-
-and are named like
-<code>KF-<i>VERSION</i>_dependencyManagement.xml</code>.<br/>
-
-E.g., the file with URL <a
-href="http://www.knopflerfish.org/maven2/org/knopflerfish/KF-3.1.0_dependencyManagement.xml"><code>http://www.knopflerfish.org/maven2/org/knopflerfish/KF-3.1.0_dependencyManagement.xml</code></a>
-will list all artifacts from the Knopflerfish 3.1 release.
-
-<p/>
-
-Each nightly build and release build (as of Knopflerfish 3.2) will also
-have a build specific Maven2 repository that contains exactly those
-artifacts that belongs to the build. The URL of these repositories are
-on the form<br/>
-
-<a
-href="http://www.knopflerfish.org/snapshots/current_trunk/maven2/"><code>http://www.knopflerfish.org/snapshots/current_trunk/maven2/</code></a></br>
-
-<a
-href="http://www.knopflerfish.org/releases/3.2.0/maven2/"><code>http://www.knopflerfish.org/releases/3.2.0/maven2/</code></a>
+href="http://resources.knopflerfish.org/repo/maven2/release"><code>http://resources.knopflerfish.org/repo/maven2/release</code></a><br/>
+<p>
+It contains all artifacts from Knopflerfish release builds starting with KF6.
+</p>
+<p>
+ There is also a maven repo for Knopflerfish 5 an older. The different maven repos are explained in more detailed in the
+ <a href="https://www.knopflerfish.org/maven.html"> Knopflerfish Maven Repositories</a> page.
+</p>
<h3 class="kf">A sample POM file for building a simple bundle</h3>
=====================================
htdocs/html_src/release_page.html.in
=====================================
@@ -49,26 +49,25 @@
<div id="leftmenu">
<dl class="leftmenu2">
<dt class="leftmenu2"><a class="navigation_disabled" href="index.html">Knopflerfish @VERSION@</a></dt>
- <dd class="leftmenu2"><a class="navigation_enabled" href="docs/changelog.html">Change log</a></dd>
- <dd class="leftmenu2"><a class="navigation_enabled" href="docs/release_notes.html">Release note</a></dd>
+ <!-- <dd class="leftmenu2"><a class="navigation_enabled" href="docs/changelog.html">Change log</a></dd> -->
+ <dd class="leftmenu2"><a class="navigation_enabled" href="docs/release_notes.html">Release notes</a></dd>
<dd class="leftmenu2"><a class="navigation_enabled" href="docs/index.html">Documentation</a></dd>
<dd class="leftmenu2"><a class="navigation_enabled" href="junit_grunt/index.xml">Test results (XML)</a></dd>
</dl>
<dl class="leftmenu2">
- <dt class="leftmenu2"><a class="navigation_enabled" href="http://www.knopflerfish.org/">www.knopflerfish.org</a></dt>
- <dd class="leftmenu2"><a class="navigation_enabled" href="https://sourceforge.net/forum/forum.php?forum_id=328005">KF Forum</a></dd>
- <dd class="leftmenu2"><a class="navigation_enabled" href="http://github.com/knopflerfish/knopflerfish.org/issues">Bug tracker</a></dd>
+ <dt class="leftmenu2"><a class="navigation_enabled" href="https://www.knopflerfish.org/">www.knopflerfish.org</a></dt>
+ <dd class="leftmenu2"><a class="navigation_enabled" href="@REPO_URL@/tree/@TAG@">Source (GitHub)</a></dd>
+ <dd class="leftmenu2"><a class="navigation_enabled" href="http://github.com/knopflerfish/knopflerfish.org/issues">Issues</a></dd>
<dd class="leftmenu2"><a class="navigation_enabled" href="osgi/jars/index.xml">Bundle repository</a></dd>
- <dd class="leftmenu2"><a class="navigation_enabled" href="@REPO_URL@/@TAG@">Source (GitHub)</a></dd>
</dl>
<dl class="leftmenu2_last">
- <dt class="leftmenu2"><a class="navigation_enabled" href="http://www.makewave.com/">Maintained by Makewave</a></dt>
- <dd class="leftmenu2"><a class="navigation_enabled" href="http://www.makewave.com/site.en/products/knopflerfish_pro_osgi.shtml">Knopflerfish Pro</a></dd>
- <dd class="leftmenu2"><a class="navigation_enabled" href="http://www.makewave.com/site.en/products/osgi_expert.shtml">Professional Services</a></dd>
- <dd class="leftmenu2"><a class="navigation_enabled" href="http://www.makewave.com/site.en/products/osgi_training.shtml">Training</a></dd>
- <dd class="leftmenu2"><a class="navigation_enabled" href="http://www.makewave.com"><img src="docs/images/makewave_logo_126x16.gif" border="0"></a><br>
+ <dt class="leftmenu2"><a class="navigation_enabled" href="https://www.makewave.com/">Maintained by Makewave</a></dt>
+ <dd class="leftmenu2"><a class="navigation_enabled" href="https://www.makewave.com/site.en/products/knopflerfish_pro_osgi.shtml">Knopflerfish Pro</a></dd>
+ <dd class="leftmenu2"><a class="navigation_enabled" href="https://www.makewave.com/site.en/products/osgi_expert.shtml">Professional Services</a></dd>
+ <dd class="leftmenu2"><a class="navigation_enabled" href="https://www.makewave.com/site.en/products/osgi_training.shtml">Training</a></dd>
+ <dd class="leftmenu2"><a class="navigation_enabled" href="https://www.makewave.com"><img src="docs/images/makewave_logo_126x16.gif" border="0"></a><br>
<dd>
<div style="font-size: 0.75em; color: #444444;
font-family: Helvetica, Sans-Serif;
@@ -83,8 +82,23 @@
<h1 class="kf">Knopflerfish @VERSION@</h1>
- This is the release page for Knopflerfish @VERSION@
- @BUILD_KIND@ from @REPO_URL@/@TAG@, made on @DATE at .
+ This is the release page for the Knopflerfish @VERSION@ build.
+ <table cellpadding="2">
+ <tr>
+ <td>Built on:</td>
+ <td> @DATE@</td>
+ </tr>
+ <tr>
+ <td>Built from:</td>
+ <td><a href="@REPO_URL@/tree/@TAG@"> @REPO_URL@/tree/@TAG@</a></td>
+ </tr>
+ <tr>
+ <td>Build type:</td>
+ <td>@BUILD_KIND@</td>
+ </tr>
+ </table>
+
+ <!-- @BUILD_KIND@ from @REPO_URL@/@TAG@, made on @DATE at . -->
<h2 class="kf">Downloads</h2>
=====================================
osgi/framework/build.xml
=====================================
@@ -19,7 +19,7 @@
<property name="frameworkdoc_template"
location="${ant.dir}/html_template/frameworkdoc.html"/>
- <property name="fw.base.version" value="8.0.5"/>
+ <property name="fw.base.version" value="8.0.11"/>
<property name="version.suffix" value=""/>
<condition property="fw.impl.version"
value="${fw.base.version}"
=====================================
osgi/framework/src/org/knopflerfish/framework/BundleClassLoader.java
=====================================
@@ -209,7 +209,7 @@ final public class BundleClassLoader extends ClassLoader implements BundleRefere
@Override
protected URL findResource(String name) {
final Enumeration<URL> res = getBundleResources(name, true);
- if (res != null) {
+ if (res != null && res.hasMoreElements()) {
return res.nextElement();
} else {
return null;
=====================================
osgi/framework/src/org/knopflerfish/framework/BundlePackages.java
=====================================
@@ -422,17 +422,20 @@ class BundlePackages {
* @param pkg Package name
* @return Bundle exporting
*/
- synchronized BundlePackages getDynamicProviderBundlePackages(String pkg) {
- if (okImports == null) {
- return null;
- }
- final int ii = Util.binarySearch(okImports, ipFind, pkg);
- if (ii >= 0) {
- return okImports.get(ii).provider.bpkgs;
- }
+ BundlePackages getDynamicProviderBundlePackages(String pkg) {
final FrameworkContext fwCtx = bg.bundle.fwCtx;
- BundlePackages res = null;
synchronized (fwCtx.resolver) {
+ int ii;
+ synchronized (this) {
+ if (okImports == null) {
+ return null;
+ }
+ ii = Util.binarySearch(okImports, ipFind, pkg);
+ if (ii >= 0) {
+ return okImports.get(ii).provider.bpkgs;
+ }
+ }
+ BundlePackages res = null;
BundleImpl [] trigger = null;
try {
for (final ImportPkg ip : dImportPatterns) {
@@ -448,7 +451,9 @@ class BundlePackages {
if (ep != null) {
nip.provider = ep;
nip.dynId = ++nextDynId;
- okImports.add(-ii - 1, nip);
+ synchronized (this) {
+ okImports.add(-ii - 1, nip);
+ }
res = ep.bpkgs;
break;
}
@@ -464,8 +469,8 @@ class BundlePackages {
fwCtx.frameworkError(bg.bundle, be);
}
}
+ return res;
}
- return res;
}
=====================================
osgi/framework/src/org/knopflerfish/framework/Bundles.java
=====================================
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2016, KNOPFLERFISH project
+ * Copyright (c) 2003-2018, KNOPFLERFISH project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -40,7 +40,6 @@ import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
@@ -130,7 +129,7 @@ public class Bundles {
if (in == null) {
// Do it the manual way to have a chance to
// set request properties
- final URL url = new URL(location);
+ final URL url = ReferenceURLStreamHandler.createURL(location);
final URLConnection conn = url.openConnection();
// Support for http proxy authentication
@@ -190,7 +189,7 @@ public class Bundles {
}
- /**
+ /**
* Remove bundle registration.
*
* @param location The location to be removed
=====================================
osgi/framework/src/org/knopflerfish/framework/FrameworkContext.java
=====================================
@@ -349,7 +349,11 @@ public class FrameworkContext {
}
}
} else {
- urlStreamHandlerFactory = new ServiceURLStreamHandlerFactory();
+ if (systemUrlStreamHandlerFactory != null) {
+ urlStreamHandlerFactory = systemUrlStreamHandlerFactory;
+ } else {
+ urlStreamHandlerFactory = new ServiceURLStreamHandlerFactory();
+ }
contentHandlerFactory = new ServiceContentHandlerFactory(this);
}
}
=====================================
osgi/framework/src/org/knopflerfish/framework/Main.java
=====================================
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2015, KNOPFLERFISH project
+ * Copyright (c) 2003-2018, KNOPFLERFISH project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -285,7 +285,7 @@ public class Main
for (int i=0; i<ja.length; i++) {
final String u = ja[i].trim();
try {
- res.add(new URL(u));
+ res.add(ReferenceURLStreamHandler.createURL(u));
println("jar base[" + i + "]=" + u, 3);
} catch (final MalformedURLException ignored) {
System.err.println("Skip illegal jar base: " + u);
=====================================
osgi/framework/src/org/knopflerfish/framework/ReferenceURLStreamHandler.java
=====================================
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2004, KNOPFLERFISH project
+ * Copyright (c) 2003-2018, KNOPFLERFISH project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -57,7 +57,9 @@ public class ReferenceURLStreamHandler extends URLStreamHandler {
final public static String PROTOCOL = "reference";
- ReferenceURLStreamHandler() {
+ final public static ReferenceURLStreamHandler INSTANCE = new ReferenceURLStreamHandler();
+
+ private ReferenceURLStreamHandler() {
super();
}
@@ -92,5 +94,16 @@ public class ReferenceURLStreamHandler extends URLStreamHandler {
PROTOCOL + ":");
}
return s.substring(PROTOCOL.length() + 1);
- }
+ }
+
+ public static URL createURL(String location) throws MalformedURLException {
+ URL url;
+ if(location.startsWith(ReferenceURLStreamHandler.PROTOCOL + ':')){
+ url = new URL(null, location, INSTANCE);
+ } else {
+ url = new URL(location);
+ }
+ return url;
+ }
+
}
=====================================
osgi/framework/src/org/knopflerfish/framework/ServiceURLStreamHandlerFactory.java
=====================================
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2016, KNOPFLERFISH project
+ * Copyright (c) 2003-2018, KNOPFLERFISH project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -93,7 +93,7 @@ public class ServiceURLStreamHandlerFactory
}
// Add framework protocols
setURLStreamHandler(FWResourceURLStreamHandler.PROTOCOL, new FWResourceURLStreamHandler());
- setURLStreamHandler(ReferenceURLStreamHandler.PROTOCOL, new ReferenceURLStreamHandler());
+ setURLStreamHandler(ReferenceURLStreamHandler.PROTOCOL, ReferenceURLStreamHandler.INSTANCE);
bundleHandler = new BundleURLStreamHandler();
setURLStreamHandler(BundleURLStreamHandler.PROTOCOL, bundleHandler);
}
=====================================
osgi/framework/src/org/knopflerfish/framework/WeavingHooks.java
=====================================
@@ -111,24 +111,28 @@ class WeavingHooks {
listenerTracker = null;
}
- synchronized public boolean isOpen() {
- return weavingHookTracker != null;
- }
-
- synchronized void callHooks(WovenClassImpl wc) throws Exception {
+ /**
+ * Call hooks
+ * Called by from a syncronized BundleClassLoader
+ *
+ * @param wc
+ */
+ void callHooks(WovenClassImpl wc) throws Exception {
boolean ok = false;
- if (!isOpen()) {
- return;
- }
+ final SortedMap<ServiceReference<WeavingHook>, TrackedWeavingHook> hooks;
if (wc.isWeavingComplete()) {
throw new RuntimeException("ERROR!!");
}
- try {
- final SortedMap<ServiceReference<WeavingHook>, TrackedWeavingHook> hooks = weavingHookTracker
- .getTracked();
+ synchronized(this) {
+ if (weavingHookTracker == null) {
+ return;
+ }
+ hooks = weavingHookTracker.getTracked();
+ }
+ try {
for (final TrackedWeavingHook twh : hooks.values()) {
if (twh.isBlackListed())
continue;
@@ -156,15 +160,24 @@ class WeavingHooks {
}
}
- synchronized void callListeners(WovenClassImpl wc) {
+ /**
+ * Call listeners
+ * Called indirectly from a syncronized BundleClassLoader
+ *
+ * @param wc
+ */
+ void callListeners(WovenClassImpl wc) {
WovenClassListener wcl = fwCtx.perm.getWovenClassListener();
+ ServiceReference<WovenClassListener> [] srs;
if (wcl != null) {
wcl.modified(wc);
}
- if (listenerTracker == null) {
- return;
+ synchronized (this) {
+ if (listenerTracker == null) {
+ return;
+ }
+ srs = listenerTracker.getServiceReferences();
}
- ServiceReference<WovenClassListener> [] srs = listenerTracker.getServiceReferences();
if (srs != null) {
for (ServiceReference<WovenClassListener> wlsr : srs) {
try {
@@ -261,7 +274,11 @@ class WeavingHooks {
}
public BundleWiring getBundleWiring() {
- return bundle.current().bundleRevision.getWiring();
+ BundleRevisionImpl br = bundle.current().bundleRevision;
+ if (br != null) {
+ return br.getWiring();
+ }
+ return null;
}
public int getState() {
=====================================
osgi/framework/src/org/knopflerfish/framework/bundlestorage/file/BundleArchiveImpl.java
=====================================
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2015, KNOPFLERFISH project
+ * Copyright (c) 2003-2018, KNOPFLERFISH project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -56,6 +56,7 @@ import org.knopflerfish.framework.BundleResourceStream;
import org.knopflerfish.framework.FileArchive;
import org.knopflerfish.framework.FileTree;
import org.knopflerfish.framework.HeaderDictionary;
+import org.knopflerfish.framework.ReferenceURLStreamHandler;
import org.knopflerfish.framework.bundlestorage.Util;
/**
@@ -122,7 +123,7 @@ public class BundleArchiveImpl implements BundleArchive
{
URL source = null;
try {
- source = new URL(bundleLocation);
+ source = ReferenceURLStreamHandler.createURL(bundleLocation);
} catch (final Exception e) {
}
bundleDir = dir;
@@ -200,7 +201,7 @@ public class BundleArchiveImpl implements BundleArchive
final boolean bReference = (is == null);
if(bReference) {
- source = new URL(location);
+ source = ReferenceURLStreamHandler.createURL(location);
}
archive = storage.createArchive(this, bundleDir, rev);
archive.downloadArchive(is, source);
@@ -295,7 +296,7 @@ public class BundleArchiveImpl implements BundleArchive
/**
* Set bundle generation associated with this bundle archive.
*
- * @param BundleGeneration object.
+ * @param bg BundleGeneration object.
*/
public void setBundleGeneration(BundleGeneration bg) {
bundleGeneration = bg;
@@ -595,7 +596,7 @@ public class BundleArchiveImpl implements BundleArchive
* Write string to named file.
*
* @param f File to write too
- * @param contenet String to write
+ * @param content String to write
* @exception IOException if we fail to save our string
*/
private void putContent(String f, String content) throws IOException {
=====================================
osgi/framework/src/org/knopflerfish/framework/permissions/PermissionsHandle.java
=====================================
@@ -46,6 +46,7 @@ import org.osgi.framework.hooks.weaving.WovenClass;
import org.osgi.framework.hooks.weaving.WovenClassListener;
import org.knopflerfish.framework.FrameworkContext;
+import org.osgi.framework.wiring.BundleWiring;
/**
@@ -171,9 +172,12 @@ public class PermissionsHandle implements WovenClassListener {
public void modified(WovenClass wc)
{
if ((wc.getState() & (WovenClass.DEFINED|WovenClass.DEFINE_FAILED)) != 0) {
- PermissionsWrapper pw = pcCache.get(new Long(wc.getBundleWiring().getBundle().getBundleId()));
- if (pw != null) { // TODO, is this really necessary.
- pw.addWovenDynamicImport(wc.getDynamicImports());
+ BundleWiring bundleWiring = wc.getBundleWiring();
+ if (bundleWiring != null) {
+ PermissionsWrapper pw = pcCache.get(new Long(bundleWiring.getBundle().getBundleId()));
+ if (pw != null) { // TODO, is this really necessary.
+ pw.addWovenDynamicImport(wc.getDynamicImports());
+ }
}
}
}
=====================================
release_notes.in.md
=====================================
@@ -16,18 +16,14 @@ $(VERSION_PREV)
Knopflerfish Framework - OSGi Core Specification
----------------------------------------------------------------------
-### Framework 8.0.5
-
-* Fixed issue #23. If you change the filtering of a service listener
- by calling BundleContext.addServiceListener() when an event
- delivery is in progress, then the event calls that are queued will
- be dropped. This is true even if the event matched the filte both
- before and after the filtering change.
-
OSGi Compendium Specification
----------------------------------------------------------------------
+### Component (SCR) 6.0.7
+
+* Improved fixed for issue #53, ConcurrentModificationException in SCR service
+ listener.
Knopflerfish Services
@@ -38,6 +34,3 @@ Knopflerfish Services
Misc, start scripts, build system etc
----------------------------------------------------------------------
-### Build system
-
-* Changed download location for asm_all jar.
View it on GitLab: https://salsa.debian.org/java-team/knopflerfish-osgi/-/compare/c2db8d46b11612e96921441cf80cb13f04bc569b...6e4da8159fb657ab3d47e60e22bd707898ce70dc
--
View it on GitLab: https://salsa.debian.org/java-team/knopflerfish-osgi/-/compare/c2db8d46b11612e96921441cf80cb13f04bc569b...6e4da8159fb657ab3d47e60e22bd707898ce70dc
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20250202/e6c022be/attachment.htm>
More information about the pkg-java-commits
mailing list