Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'test-apps/bundle-update')
-rw-r--r--test-apps/bundle-update/class.load.after.update/README.TXT11
-rw-r--r--test-apps/bundle-update/class.load.after.update/build.properties6
-rw-r--r--test-apps/bundle-update/class.load.after.update/build.xml31
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.B.after/.classpath6
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.B.after/.project17
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.B.after/build.xml9
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.B.after/ivy.xml25
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.B.after/src/main/java/but/but/A.java16
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.B.after/src/main/java/but/but/B.java22
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.B.after/src/main/java/but/but/I.java17
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.B.after/src/main/resources/META-INF/MANIFEST.MF6
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.B.before/.classpath6
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.B.before/.project17
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.B.before/build.xml9
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.B.before/ivy.xml25
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.B.before/src/main/java/but/but/A.java16
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.B.before/src/main/java/but/but/B.java16
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.B.before/src/main/resources/META-INF/MANIFEST.MF6
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.C/.classpath8
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.C/.project17
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.C/build.xml9
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.C/ivy.xml26
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.C/src/main/java/but/c/C.java46
-rw-r--r--test-apps/bundle-update/class.load.after.update/but.C/src/main/resources/META-INF/MANIFEST.MF7
24 files changed, 374 insertions, 0 deletions
diff --git a/test-apps/bundle-update/class.load.after.update/README.TXT b/test-apps/bundle-update/class.load.after.update/README.TXT
new file mode 100644
index 00000000..66436ef4
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/README.TXT
@@ -0,0 +1,11 @@
+How to build
+------------
+
+ant jar
+
+Output
+------
+
+com.springsource.kernel.osgi/src/test/resources/but/but.C.jar
+com.springsource.kernel.osgi/src/test/resources/but/but.B.before.jar
+com.springsource.kernel.osgi/src/test/resources/but/but.B.after.jar
diff --git a/test-apps/bundle-update/class.load.after.update/build.properties b/test-apps/bundle-update/class.load.after.update/build.properties
new file mode 100644
index 00000000..1dcbd8ce
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/build.properties
@@ -0,0 +1,6 @@
+version=1.0.0
+release.type=integration
+bucket.basename=springsource.com
+ivy.cache.dir=${basedir}/../../../ivy-cache
+integration.repo.dir=${basedir}/../../../integration-repo
+disable.bundlor=true
diff --git a/test-apps/bundle-update/class.load.after.update/build.xml b/test-apps/bundle-update/class.load.after.update/build.xml
new file mode 100644
index 00000000..d4ad0f2e
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/build.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="bundle-update" default="jar">
+
+ <path id="bundles">
+ <pathelement location="but.B.before"/>
+ <pathelement location="but.B.after"/>
+ <pathelement location="but.C"/>
+ </path>
+
+ <property name="virgo.kernel.dir" value="${basedir}/../../.."/>
+
+ <import file="${virgo.kernel.dir}/spring-build/multi-bundle/default.xml"/>
+
+ <target name="jar" depends="artifact-multi-bundle.jar">
+ <copy todir="${virgo.kernel.dir}/org.eclipse.virgo.kernel.osgi/src/test/resources/but">
+ <fileset dir="${basedir}/but.B.before/target/artifacts">
+ <exclude name="**/ivy.xml"/>
+ <exclude name="**/*-sources.jar"/>
+ </fileset>
+ <fileset dir="${basedir}/but.B.after/target/artifacts">
+ <exclude name="**/ivy.xml"/>
+ <exclude name="**/*-sources.jar"/>
+ </fileset>
+ <fileset dir="${basedir}/but.C/target/artifacts">
+ <exclude name="**/ivy.xml"/>
+ <exclude name="**/*-sources.jar"/>
+ </fileset>
+ </copy>
+ </target>
+
+</project>
diff --git a/test-apps/bundle-update/class.load.after.update/but.B.after/.classpath b/test-apps/bundle-update/class.load.after.update/but.B.after/.classpath
new file mode 100644
index 00000000..14a424e3
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.B.after/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java/but"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="target"/>
+</classpath>
diff --git a/test-apps/bundle-update/class.load.after.update/but.B.after/.project b/test-apps/bundle-update/class.load.after.update/but.B.after/.project
new file mode 100644
index 00000000..8048deaf
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.B.after/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>but.b.after</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/test-apps/bundle-update/class.load.after.update/but.B.after/build.xml b/test-apps/bundle-update/class.load.after.update/but.B.after/build.xml
new file mode 100644
index 00000000..3a2f3019
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.B.after/build.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="but.B.after">
+
+ <property file="${basedir}/../build.properties"/>
+ <property file="${basedir}/../../../../build.versions"/>
+
+ <import file="${basedir}/../../../../spring-build/standard/default.xml"/>
+
+</project>
diff --git a/test-apps/bundle-update/class.load.after.update/but.B.after/ivy.xml b/test-apps/bundle-update/class.load.after.update/but.B.after/ivy.xml
new file mode 100644
index 00000000..876655e1
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.B.after/ivy.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
+<ivy-module
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
+ version="1.3">
+
+ <info organisation="cloning.tests" module="${ant.project.name}">
+ <ivyauthor name="gnormington"/>
+ </info>
+
+ <configurations>
+ <include file="${spring.build.dir}/common/default-ivy-configurations.xml"/>
+ </configurations>
+
+ <publications>
+ <artifact name="${ant.project.name}"/>
+ <artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
+ </publications>
+
+ <dependencies>
+ <dependency org="org.junit" name="com.springsource.org.junit" rev="${org.junit}" conf="test->runtime"/>
+ </dependencies>
+
+</ivy-module>
diff --git a/test-apps/bundle-update/class.load.after.update/but.B.after/src/main/java/but/but/A.java b/test-apps/bundle-update/class.load.after.update/but.B.after/src/main/java/but/but/A.java
new file mode 100644
index 00000000..c9d803d6
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.B.after/src/main/java/but/but/A.java
@@ -0,0 +1,16 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2010 VMware Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VMware Inc. - initial contribution
+ *******************************************************************************/
+
+package but;
+
+public class A implements I {
+
+}
diff --git a/test-apps/bundle-update/class.load.after.update/but.B.after/src/main/java/but/but/B.java b/test-apps/bundle-update/class.load.after.update/but.B.after/src/main/java/but/but/B.java
new file mode 100644
index 00000000..83d21bb1
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.B.after/src/main/java/but/but/B.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2010 VMware Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VMware Inc. - initial contribution
+ *******************************************************************************/
+
+package but;
+
+public class B {
+
+ static I i;
+
+ static {
+ i = new A();
+ }
+
+}
diff --git a/test-apps/bundle-update/class.load.after.update/but.B.after/src/main/java/but/but/I.java b/test-apps/bundle-update/class.load.after.update/but.B.after/src/main/java/but/but/I.java
new file mode 100644
index 00000000..934f8d08
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.B.after/src/main/java/but/but/I.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2010 VMware Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VMware Inc. - initial contribution
+ *******************************************************************************/
+
+package but;
+
+
+public interface I {
+
+}
diff --git a/test-apps/bundle-update/class.load.after.update/but.B.after/src/main/resources/META-INF/MANIFEST.MF b/test-apps/bundle-update/class.load.after.update/but.B.after/src/main/resources/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..f15c9ac4
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.B.after/src/main/resources/META-INF/MANIFEST.MF
@@ -0,0 +1,6 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: but.B
+Bundle-Version: 1
+Export-Package: but
+
diff --git a/test-apps/bundle-update/class.load.after.update/but.B.before/.classpath b/test-apps/bundle-update/class.load.after.update/but.B.before/.classpath
new file mode 100644
index 00000000..14a424e3
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.B.before/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java/but"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="target"/>
+</classpath>
diff --git a/test-apps/bundle-update/class.load.after.update/but.B.before/.project b/test-apps/bundle-update/class.load.after.update/but.B.before/.project
new file mode 100644
index 00000000..64849bbd
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.B.before/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>but.b.before</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/test-apps/bundle-update/class.load.after.update/but.B.before/build.xml b/test-apps/bundle-update/class.load.after.update/but.B.before/build.xml
new file mode 100644
index 00000000..e0c831ef
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.B.before/build.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="but.B.before">
+
+ <property file="${basedir}/../build.properties"/>
+ <property file="${basedir}/../../../../build.versions"/>
+
+ <import file="${basedir}/../../../../spring-build/standard/default.xml"/>
+
+</project>
diff --git a/test-apps/bundle-update/class.load.after.update/but.B.before/ivy.xml b/test-apps/bundle-update/class.load.after.update/but.B.before/ivy.xml
new file mode 100644
index 00000000..876655e1
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.B.before/ivy.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
+<ivy-module
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
+ version="1.3">
+
+ <info organisation="cloning.tests" module="${ant.project.name}">
+ <ivyauthor name="gnormington"/>
+ </info>
+
+ <configurations>
+ <include file="${spring.build.dir}/common/default-ivy-configurations.xml"/>
+ </configurations>
+
+ <publications>
+ <artifact name="${ant.project.name}"/>
+ <artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
+ </publications>
+
+ <dependencies>
+ <dependency org="org.junit" name="com.springsource.org.junit" rev="${org.junit}" conf="test->runtime"/>
+ </dependencies>
+
+</ivy-module>
diff --git a/test-apps/bundle-update/class.load.after.update/but.B.before/src/main/java/but/but/A.java b/test-apps/bundle-update/class.load.after.update/but.B.before/src/main/java/but/but/A.java
new file mode 100644
index 00000000..080542cb
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.B.before/src/main/java/but/but/A.java
@@ -0,0 +1,16 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2010 VMware Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VMware Inc. - initial contribution
+ *******************************************************************************/
+
+package but;
+
+public class A {
+
+}
diff --git a/test-apps/bundle-update/class.load.after.update/but.B.before/src/main/java/but/but/B.java b/test-apps/bundle-update/class.load.after.update/but.B.before/src/main/java/but/but/B.java
new file mode 100644
index 00000000..25df2e16
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.B.before/src/main/java/but/but/B.java
@@ -0,0 +1,16 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2010 VMware Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VMware Inc. - initial contribution
+ *******************************************************************************/
+
+package but;
+
+public class B {
+
+}
diff --git a/test-apps/bundle-update/class.load.after.update/but.B.before/src/main/resources/META-INF/MANIFEST.MF b/test-apps/bundle-update/class.load.after.update/but.B.before/src/main/resources/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..f15c9ac4
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.B.before/src/main/resources/META-INF/MANIFEST.MF
@@ -0,0 +1,6 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: but.B
+Bundle-Version: 1
+Export-Package: but
+
diff --git a/test-apps/bundle-update/class.load.after.update/but.C/.classpath b/test-apps/bundle-update/class.load.after.update/but.C/.classpath
new file mode 100644
index 00000000..6bceeebb
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.C/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/but.b.after"/>
+ <classpathentry kind="var" path="KERNEL_IVY_CACHE/org.eclipse.osgi/org.eclipse.osgi/3.5.1.R35x_v20091005/org.eclipse.osgi-3.5.1.R35x_v20091005.jar" sourcepath="/KERNEL_IVY_CACHE/org.eclipse.osgi/org.eclipse.osgi/3.5.1.R35x_v20091005/org.eclipse.osgi-sources-3.5.1.R35x_v20091005.jar"/>
+ <classpathentry kind="output" path="target"/>
+</classpath>
diff --git a/test-apps/bundle-update/class.load.after.update/but.C/.project b/test-apps/bundle-update/class.load.after.update/but.C/.project
new file mode 100644
index 00000000..83eff1e1
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.C/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>but.C</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/test-apps/bundle-update/class.load.after.update/but.C/build.xml b/test-apps/bundle-update/class.load.after.update/but.C/build.xml
new file mode 100644
index 00000000..f505d46c
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.C/build.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="but.C">
+
+ <property file="${basedir}/../build.properties"/>
+ <property file="${basedir}/../../../../build.versions"/>
+
+ <import file="${basedir}/../../../../spring-build/standard/default.xml"/>
+
+</project>
diff --git a/test-apps/bundle-update/class.load.after.update/but.C/ivy.xml b/test-apps/bundle-update/class.load.after.update/but.C/ivy.xml
new file mode 100644
index 00000000..b3e64f07
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.C/ivy.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
+<ivy-module
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
+ version="1.3">
+
+ <info organisation="cloning.tests" module="${ant.project.name}">
+ <ivyauthor name="gnormington"/>
+ </info>
+
+ <configurations>
+ <include file="${spring.build.dir}/common/default-ivy-configurations.xml"/>
+ </configurations>
+
+ <publications>
+ <artifact name="${ant.project.name}"/>
+ <artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
+ </publications>
+
+ <dependencies>
+ <dependency org="org.junit" name="com.springsource.org.junit" rev="${org.junit}" conf="test->runtime"/>
+ <dependency org="org.eclipse.osgi" name="org.eclipse.osgi" rev="${org.eclipse.osgi}" conf="compile->compile"/>
+ </dependencies>
+
+</ivy-module>
diff --git a/test-apps/bundle-update/class.load.after.update/but.C/src/main/java/but/c/C.java b/test-apps/bundle-update/class.load.after.update/but.C/src/main/java/but/c/C.java
new file mode 100644
index 00000000..65d385b3
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.C/src/main/java/but/c/C.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2010 VMware Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VMware Inc. - initial contribution
+ *******************************************************************************/
+
+package but.c;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.SynchronousBundleListener;
+
+public class C implements BundleActivator, SynchronousBundleListener {
+
+ public void start(BundleContext context) throws Exception {
+
+ // Load the old version of A
+ Class.forName("but.A");
+
+ context.addBundleListener(this);
+ }
+
+ public void stop(BundleContext context) throws Exception {
+ }
+
+ public void bundleChanged(BundleEvent event) {
+ if ("but.B".equals(event.getBundle().getSymbolicName()) && event.getType() == BundleEvent.UPDATED) {
+ try {
+ // Load B. If successful, this is the old version that is compatible with the old version of A.
+ Class.forName("but.B");
+ } catch (Exception e) {
+ e.printStackTrace();
+ // Prevent the JUnit test from passing if we get to here.
+ System.exit(987);
+ }
+ }
+
+ }
+
+}
diff --git a/test-apps/bundle-update/class.load.after.update/but.C/src/main/resources/META-INF/MANIFEST.MF b/test-apps/bundle-update/class.load.after.update/but.C/src/main/resources/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..e7d429ff
--- /dev/null
+++ b/test-apps/bundle-update/class.load.after.update/but.C/src/main/resources/META-INF/MANIFEST.MF
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: but.C
+Import-Package: but,org.osgi.framework
+Bundle-Activator: but.c.C
+
+

Back to the top