Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Lippert2008-07-04 18:57:06 +0000
committerMartin Lippert2008-07-04 18:57:06 +0000
commit2f425920ab801b833bc8828a053d8adc1e427aa3 (patch)
tree92830ad0186a56d60ad3eb58cb71098ddc8787e6 /bundles/org.eclipse.equinox.weaving.hook/patches/org.eclipse.osgi_patch_20060509.txt
parenta8ed43f1d037ff5a577f4c36d9876e874964b898 (diff)
downloadrt.equinox.bundles-2f425920ab801b833bc8828a053d8adc1e427aa3.tar.gz
rt.equinox.bundles-2f425920ab801b833bc8828a053d8adc1e427aa3.tar.xz
rt.equinox.bundles-2f425920ab801b833bc8828a053d8adc1e427aa3.zip
Bug 238730 - [aspects] rename bundles and start with new version numbering
Diffstat (limited to 'bundles/org.eclipse.equinox.weaving.hook/patches/org.eclipse.osgi_patch_20060509.txt')
-rw-r--r--bundles/org.eclipse.equinox.weaving.hook/patches/org.eclipse.osgi_patch_20060509.txt594
1 files changed, 594 insertions, 0 deletions
diff --git a/bundles/org.eclipse.equinox.weaving.hook/patches/org.eclipse.osgi_patch_20060509.txt b/bundles/org.eclipse.equinox.weaving.hook/patches/org.eclipse.osgi_patch_20060509.txt
new file mode 100644
index 000000000..d03b0424b
--- /dev/null
+++ b/bundles/org.eclipse.equinox.weaving.hook/patches/org.eclipse.osgi_patch_20060509.txt
@@ -0,0 +1,594 @@
+### Eclipse Workspace Patch 1.0
+#P org.eclipse.osgi
+Index: core/adaptor/org/eclipse/osgi/service/resolver/BundleDescription.java
+===================================================================
+RCS file: /home/eclipse/org.eclipse.osgi/core/adaptor/org/eclipse/osgi/service/resolver/BundleDescription.java,v
+retrieving revision 1.11
+diff -u -r1.11 BundleDescription.java
+--- core/adaptor/org/eclipse/osgi/service/resolver/BundleDescription.java 17 Mar 2006 14:46:43 -0000 1.11
++++ core/adaptor/org/eclipse/osgi/service/resolver/BundleDescription.java 9 May 2006 21:27:12 -0000
+@@ -227,4 +227,27 @@
+ * @return the list of execution environments that are required.
+ */
+ public String[] getExecutionEnvironments();
++
++ // AMC
++ /**
++ * Returns the supplemented import packages defined by the Supplement-Importer
++ * clause.
++ */
++ public ImportPackageSpecification[] getSupplementedImportPackages();
++
++ /**
++ * Returns the supplemented export packages defined by the Supplement-Exporter
++ * clause.
++ */
++ public ImportPackageSpecification[] getSupplementedExportPackages();
++
++ //end AMC
++
++ //knibb
++ /**
++ * Returns the supplemented bundles defined by the Supplement-Bundle clause
++ */
++ public BundleDescription[] getSupplementedBundles();
++ //end knibb
++
+ }
+Index: core/framework/org/eclipse/osgi/framework/internal/core/Constants.java
+===================================================================
+RCS file: /home/eclipse/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/Constants.java,v
+retrieving revision 1.29
+diff -u -r1.29 Constants.java
+--- core/framework/org/eclipse/osgi/framework/internal/core/Constants.java 26 Oct 2005 17:58:14 -0000 1.29
++++ core/framework/org/eclipse/osgi/framework/internal/core/Constants.java 9 May 2006 21:27:12 -0000
+@@ -268,4 +268,44 @@
+ * @deprecated use {@link #ECLIPSE_LAZYSTART_EXCEPTIONS}
+ */
+ public static final String ECLIPSE_AUTOSTART_EXCEPTIONS = ECLIPSE_LAZYSTART_EXCEPTIONS;
++
++
++ // Added by AMC
++
++ /**
++ * Manifest header (named "Supplement-Importer") identifying the names
++ * (and optionally, version numbers) of the packages that the bundle supplements.
++ * All importers of one of these packages will have the exported packages of this
++ * bundle added to their imports in addition.
++ *
++ * <p>
++ * The attribute value may be retrieved from the <code>Dictionary</code>
++ * object returned by the <code>Bundle.getHeaders</code> method.
++ */
++ public static final String SUPPLEMENT_IMPORTER = "Eclipse-SupplementImporter"; //$NON-NLS-1$
++
++ /**
++ * Manifest header (named &quot;Supplement-Exporter&quot;) identifying the names
++ * (and optionally, version numbers) of the packages that the bundle supplements.
++ * All exporters of one of these packages will have the exported packages of this bundle
++ * added to their imports list.
++ *
++ * <p>
++ * The attribute value may be retrieved from the <code>Dictionary</code>
++ * object returned by the <code>Bundle.getHeaders</code> method.
++ */
++ public static final String SUPPLEMENT_EXPORTER = "Eclipse-SupplementExporter"; //$NON-NLS-1$
++
++ //knibb
++ /**
++ * Manifest header (named &quot;Supplement-Bundle&quot;) identifying the names
++ * (and optionally, version numbers) of any bundles supplemented by this bundle.
++ * All supplemented bundles will have all the exported packages of this bundle
++ * added to their imports list
++ *
++ * <p>
++ * The attribute value may be retrieved from the <code>Dictionary</code>
++ * object returned by the <code>Bundle.getHeaders</code> method.
++ */
++ public static final String SUPPLEMENT_BUNDLE = "Eclipse-SupplementBundle"; //$NON-NLS-1$
+ }
+Index: resolver/src/org/eclipse/osgi/internal/resolver/StateBuilder.java
+===================================================================
+RCS file: /home/eclipse/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/StateBuilder.java,v
+retrieving revision 1.46
+diff -u -r1.46 StateBuilder.java
+--- resolver/src/org/eclipse/osgi/internal/resolver/StateBuilder.java 24 Apr 2006 16:23:48 -0000 1.46
++++ resolver/src/org/eclipse/osgi/internal/resolver/StateBuilder.java 9 May 2006 21:27:18 -0000
+@@ -101,6 +101,23 @@
+ result.setGenericRequires(createGenericRequires(genericRequires));
+ ManifestElement[] genericCapabilities = getGenericCapabilities(manifest, genericAliases);
+ result.setGenericCapabilities(createGenericCapabilities(genericCapabilities));
++
++ // AMC addition
++ ManifestElement[] supplementImporter = ManifestElement.parseHeader(Constants.SUPPLEMENT_IMPORTER, (String) manifest.get(Constants.SUPPLEMENT_IMPORTER));
++ if (supplementImporter != null)
++ result.setSupplementedImportPackages(createPackageSpecification(supplementImporter,manifestVersion));
++ ManifestElement[] supplementExporter = ManifestElement.parseHeader(Constants.SUPPLEMENT_EXPORTER, (String) manifest.get(Constants.SUPPLEMENT_EXPORTER));
++ if (supplementExporter != null)
++ result.setSupplementedExportPackages(createPackageSpecification(supplementExporter,manifestVersion));
++ // end AMC
++
++ //knibb
++
++ ManifestElement[] supplementBundle = ManifestElement.parseHeader(Constants.SUPPLEMENT_BUNDLE, (String) manifest.get(Constants.SUPPLEMENT_BUNDLE));
++ if (supplementBundle != null)
++ result.setSupplementedBundles(createBundleSpecification(supplementBundle,manifestVersion));
++
++ //end knibb
+ return result;
+ }
+
+@@ -544,4 +561,46 @@
+ if (!hostName.equals(Constants.SYSTEM_BUNDLE_SYMBOLICNAME) && !hostName.equals(Constants.getInternalSymbolicName()))
+ throw new BundleException(NLS.bind(StateMsg.HEADER_EXTENSION_ERROR, hostName));
+ }
+-}
++
++ // AMC
++
++ private static ImportPackageSpecification[] createPackageSpecification(ManifestElement[] packages, int manifestVersion) {
++ ImportPackageSpecificationImpl[] result = new ImportPackageSpecificationImpl[packages.length];
++ for (int p = 0; p < packages.length; p++) {
++ String[] packagesNames = packages[p].getValueComponents();
++ for (int i = 0; i < packagesNames.length; i++) {
++ ImportPackageSpecificationImpl spec = new ImportPackageSpecificationImpl();
++ spec.setName(packagesNames[i]);
++ // set common attributes for both dynamic and static imports
++ spec.setVersionRange(getVersionRange(manifestVersion < 2 ? packages[p].getAttribute(Constants.PACKAGE_SPECIFICATION_VERSION) : packages[p].getAttribute(Constants.VERSION_ATTRIBUTE)));
++ spec.setBundleSymbolicName(packages[p].getAttribute(Constants.BUNDLE_SYMBOLICNAME_ATTRIBUTE));
++ spec.setBundleVersionRange(getVersionRange(packages[p].getAttribute(Constants.BUNDLE_VERSION_ATTRIBUTE)));
++ spec.setAttributes(getAttributes(packages[p],DEFINED_MATCHING_ATTRS));
++ //spec.setPropagate(ManifestElement.getArrayFromList(packages[p].getDirective(Constants.GROUPING_DIRECTIVE)));
++ spec.setDirective(Constants.RESOLUTION_DIRECTIVE,getResolution(packages[p].getDirective(Constants.RESOLUTION_DIRECTIVE)));
++ result[p] = spec;
++ }
++ }
++ return result;
++ }
++ //End AMC
++
++ //knibb
++
++ private static BundleDescription[] createBundleSpecification(ManifestElement[] bundles, int manifestVersion) {
++ BundleDescriptionImpl[] result = new BundleDescriptionImpl[bundles.length];
++ for (int b=0; b<bundles.length; b++) {
++ String[] bundleNames = bundles[b].getValueComponents();
++ for(int i=0; i<bundleNames.length; i++) {
++ BundleDescriptionImpl spec = new BundleDescriptionImpl();
++ spec.setName(bundleNames[i]);
++ //TODO incomplete - only matches bundle name at this time
++ result[b] = spec;
++ }
++ }
++ return result;
++ }
++
++
++ //end knibb
++}
+\ No newline at end of file
+Index: resolver/src/org/eclipse/osgi/internal/resolver/BundleSpecificationImpl.java
+===================================================================
+RCS file: /home/eclipse/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/BundleSpecificationImpl.java,v
+retrieving revision 1.6
+diff -u -r1.6 BundleSpecificationImpl.java
+--- resolver/src/org/eclipse/osgi/internal/resolver/BundleSpecificationImpl.java 12 Sep 2005 16:44:01 -0000 1.6
++++ resolver/src/org/eclipse/osgi/internal/resolver/BundleSpecificationImpl.java 9 May 2006 21:27:17 -0000
+@@ -18,6 +18,14 @@
+ private boolean exported;
+ private boolean optional;
+
++ // AMC
++ public BundleSpecificationImpl() { /* empty */ }
++
++ public BundleSpecificationImpl(String name) {
++ setName(name);
++ }
++ // End AMC
++
+ protected void setExported(boolean exported) {
+ this.exported = exported;
+ }
+Index: resolver/src/org/eclipse/osgi/internal/resolver/BundleDescriptionImpl.java
+===================================================================
+RCS file: /home/eclipse/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/BundleDescriptionImpl.java,v
+retrieving revision 1.35
+diff -u -r1.35 BundleDescriptionImpl.java
+--- resolver/src/org/eclipse/osgi/internal/resolver/BundleDescriptionImpl.java 17 Mar 2006 14:46:42 -0000 1.35
++++ resolver/src/org/eclipse/osgi/internal/resolver/BundleDescriptionImpl.java 9 May 2006 21:27:17 -0000
+@@ -91,6 +91,35 @@
+ return EMPTY_IMPORTS;
+ return lazyData.importPackages;
+ }
++
++ // AMC
++
++ public ImportPackageSpecification[] getSupplementedImportPackages() {
++ fullyLoad();
++ if (lazyData.supplementedImports == null)
++ return new ImportPackageSpecification[0];
++ return lazyData.supplementedImports;
++ }
++
++ public ImportPackageSpecification[] getSupplementedExportPackages() {
++ fullyLoad();
++ if (lazyData.supplementedExports == null)
++ return new ImportPackageSpecification[0];
++ return lazyData.supplementedExports;
++ }
++
++ // END AMC
++
++ //knibb
++
++ public BundleDescription[] getSupplementedBundles() {
++ fullyLoad();
++ if (lazyData.SupplementedBundles == null)
++ return new BundleDescription[0];
++ return lazyData.SupplementedBundles;
++ }
++
++ //end knibb
+
+ public BundleSpecification[] getRequiredBundles() {
+ fullyLoad();
+@@ -224,6 +253,31 @@
+ }
+ }
+
++ // AMC
++
++ protected void setSupplementedImportPackages(ImportPackageSpecification[] supplementedImports) {
++ checkLazyData();
++ lazyData.supplementedImports = supplementedImports;
++ }
++
++
++ protected void setSupplementedExportPackages(ImportPackageSpecification[] supplementedExports) {
++ checkLazyData();
++ lazyData.supplementedExports = supplementedExports;
++ }
++
++ // END AMC
++
++ //knibb
++
++ protected void setSupplementedBundles(BundleDescription[] supplementedBundles) {
++ checkLazyData();
++ lazyData.SupplementedBundles = supplementedBundles;
++ }
++
++ //end knibb
++
++
+ protected void setRequiredBundles(BundleSpecification[] requiredBundles) {
+ checkLazyData();
+ lazyData.requiredBundles = requiredBundles;
+@@ -543,5 +597,11 @@
+ String[] executionEnvironments;
+
+ HashMap dynamicStamps;
++
++ // AMC
++ ImportPackageSpecification[] supplementedImports;
++ ImportPackageSpecification[] supplementedExports;
++ //knibb
++ BundleDescription[] SupplementedBundles;
+ }
+ }
+Index: resolver/src/org/eclipse/osgi/internal/module/ResolverBundle.java
+===================================================================
+RCS file: /home/eclipse/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverBundle.java,v
+retrieving revision 1.20
+diff -u -r1.20 ResolverBundle.java
+--- resolver/src/org/eclipse/osgi/internal/module/ResolverBundle.java 3 May 2006 13:35:59 -0000 1.20
++++ resolver/src/org/eclipse/osgi/internal/module/ResolverBundle.java 9 May 2006 21:27:14 -0000
+@@ -252,6 +252,16 @@
+ return allRequires[i];
+ return null;
+ }
++
++ // AMC
++ void addRequired(BundleConstraint required) {
++ BundleConstraint[] newRequires = new BundleConstraint[requires.length + 1];
++ System.arraycopy(requires,0,newRequires,0,requires.length);
++ newRequires[requires.length] = required;
++ requires = newRequires;
++ }
++
++ // End AMC
+
+ public BundleDescription getBundle() {
+ return (BundleDescription) getBaseDescription();
+@@ -494,4 +504,4 @@
+ int getRefs() {
+ return refs == null ? 0 : refs.size();
+ }
+-}
++}
+\ No newline at end of file
+Index: resolver/src/org/eclipse/osgi/internal/module/ResolverImpl.java
+===================================================================
+RCS file: /home/eclipse/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverImpl.java,v
+retrieving revision 1.35
+diff -u -r1.35 ResolverImpl.java
+--- resolver/src/org/eclipse/osgi/internal/module/ResolverImpl.java 17 Apr 2006 20:22:58 -0000 1.35
++++ resolver/src/org/eclipse/osgi/internal/module/ResolverImpl.java 9 May 2006 21:27:16 -0000
+@@ -15,6 +15,7 @@
+ import org.eclipse.osgi.framework.debug.Debug;
+ import org.eclipse.osgi.framework.debug.FrameworkDebugOptions;
+ import org.eclipse.osgi.internal.resolver.BundleDescriptionImpl;
++import org.eclipse.osgi.internal.resolver.BundleSpecificationImpl;
+ import org.eclipse.osgi.service.resolver.*;
+ import org.eclipse.osgi.util.ManifestElement;
+ import org.osgi.framework.*;
+@@ -29,6 +30,7 @@
+ private static final String OPTION_GENERICS = RESOLVER + "/generics"; //$NON-NLS-1$
+ private static final String OPTION_GROUPING = RESOLVER + "/grouping"; //$NON-NLS-1$
+ private static final String OPTION_CYCLES = RESOLVER + "/cycles"; //$NON-NLS-1$
++ private static final String OPTION_SUPPLEMENTS = RESOLVER + "/supplements"; //$NON-NLS-1$
+ public static boolean DEBUG = false;
+ public static boolean DEBUG_WIRING = false;
+ public static boolean DEBUG_IMPORTS = false;
+@@ -571,6 +573,7 @@
+
+ // This method will attempt to resolve the supplied bundle and any bundles that it is dependent on
+ private boolean resolveBundle(ResolverBundle bundle, ArrayList cycle) {
++// System.out.println("ResolverImpl.resolveBundle() bundle=" + bundle.getName());
+ if (bundle.isFragment())
+ return false;
+ if (!bundle.isResolvable()) {
+@@ -646,6 +649,100 @@
+ }
+ }
+ }
++
++ // AMC
++// System.err.println("? ResolverImpl.resolveBundle() bundle=" + bundle); //$NON-NLS-1$
++ if (!failed) {
++ // XXX this feels horribly inefficient...
++ // Iterate thru resolver bundles looking for any supplementors of packages that this
++ // bundle imports or exports. If we find a match, resolve it as a required bundle of
++ // this bundle
++ // Exports first
++ ResolverExport[] exports = bundle.getExportPackages();
++ outerExport: for (Iterator iter = resolverBundles.iterator(); iter.hasNext(); ) {
++ Object[] suppliers = (Object[]) iter.next();
++ //suppliers is an array of ResolverBundle objects. ResolverBundle is a subclass of VersionSupplier
++ //so suppliers has type VersionSupplier[]
++ //unfortunately this results in a ClassCastException so that is why this is an Object[] and not VersionSupplier[]
++ for (int s = 0; s < suppliers.length; s++) {
++ //the cast from Object to VersionSupplier is made here
++ VersionSupplier supplier = (VersionSupplier) suppliers[s];
++ BundleDescription desc = supplier.getBundle();
++ ImportPackageSpecification[] supplements = desc.getSupplementedExportPackages();
++ for (int i = 0; i < supplements.length; i++) {
++ for (int e = 0; e < exports.length; e++) {
++ if (supplements[i].getName().equals(exports[e].getName())) {
++ // it's a match
++ if(Debug.DEBUG_SUPPLEMENTS)
++ System.out.println("export " + exports[i] + " supplemented by " + desc); //$NON-NLS-1$//$NON-NLS-2$
++ // add suppliers[s].getBundle as a required bundle for me...
++ addRequired(bundle,supplier.getBundle(), cycle);
++ continue outerExport;
++ }
++ }
++ }
++ }
++ }
++ // Then imports
++ ResolverImport[] imports = bundle.getImportPackages();
++ outer: for (Iterator iter = resolverBundles.iterator(); iter.hasNext();) {
++ Object[] suppliers = (Object[]) iter.next();
++ for (int s = 0; s < suppliers.length; s++) {
++ VersionSupplier supplier = (VersionSupplier) suppliers[s];
++ BundleDescription desc = supplier.getBundle();
++ ImportPackageSpecification[] supplements = desc.getSupplementedImportPackages();
++ for (int i = 0; i < supplements.length; i++) {
++ for (int j = 0; j < imports.length; j++) {
++ ImportPackageSpecification possibleMatch = (ImportPackageSpecification) imports[j].getVersionConstraint();
++ if (possibleMatch.getName().equals(supplements[i].getName())) {
++ // we have a match
++ if(Debug.DEBUG_SUPPLEMENTS)
++ System.out.println("import " + imports[j] + " supplemented by " + desc); //$NON-NLS-1$ //$NON-NLS-2$
++ addRequired(bundle,supplier.getBundle(), cycle);
++ continue outer;
++ }
++ }
++ }
++ }
++ }
++ }
++ // END AMC
++
++ //knibb
++ //now check for any other bundles which supplement this bundle
++ //TODO - would be usefull to have an exclusion mechanism here (e.g. you could then say someting like "supplement all bundles, except....")
++ if(!failed) {
++ String myName = bundle.getName();
++ for (Iterator iter = resolverBundles.iterator(); iter.hasNext();) {
++ Object[] suppliers = (Object[]) iter.next();
++ outerBundles: for(int s=0; s < suppliers.length; s++){
++ VersionSupplier supplier = (VersionSupplier) suppliers[s];
++ BundleDescription desc = supplier.getBundle();
++ //don't want to supplement ourselves so break if desc and bundle are the same
++ if(bundle.getBundle().equals(desc)){
++ continue outerBundles;
++ }
++ //supplemtor should not supplement any bundle on which it depends
++ BundleSpecification[] bundlesRequiredBySupplementor = desc.getRequiredBundles();
++ for(int i=0; i<bundlesRequiredBySupplementor.length; i++){
++ if(bundlesRequiredBySupplementor[i].getName().equals( myName ))
++ continue outerBundles; //avoid circular dependacy - do not allow a bundle to supplement any bundle on which it depends
++ }
++ BundleDescription[] supplemented = desc.getSupplementedBundles(); //the list of bundles it (desc) supplements
++ for(int i=0; i<supplemented.length; i++){
++// if ( myName.equals(supplemented[i].getName())){
++ if ( equals_wild(supplemented[i].getName(), myName)){
++ addRequired(bundle, desc, cycle);
++ if(Debug.DEBUG_SUPPLEMENTS)
++ System.out.println("bundle Supplement-Bundle: " + bundle + " supplemeted by [" + desc +"]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
++ }
++ }
++ }
++ }
++ }
++
++ //end knibb
++
+ // Need to check that all mandatory imports are wired. If they are then
+ // set the bundle RESOLVED, otherwise set it back to UNRESOLVED
+ if (failed) {
+@@ -666,6 +763,16 @@
+ return bundle.getState() != ResolverBundle.UNRESOLVED;
+ }
+
++ // AMC
++ private void addRequired(ResolverBundle toBundle, BundleDescription toBeAdded, ArrayList cycle) {
++ // TODO
++ BundleSpecification spec = new BundleSpecificationImpl(toBeAdded.getName());
++ BundleConstraint constraint = new BundleConstraint(toBundle,spec);
++ if (resolveRequire(constraint, cycle)) {
++ toBundle.addRequired(constraint);
++ }
++ }
++
+ private boolean resolveGenericReq(GenericConstraint constraint, ArrayList cycle) {
+ if (DEBUG_REQUIRES)
+ ResolverImpl.log("Trying to resolve: " + constraint.getBundle() + ", " + constraint.getVersionConstraint()); //$NON-NLS-1$ //$NON-NLS-2$
+@@ -1328,6 +1435,25 @@
+ VersionHashMap getResolverExports() {
+ return resolverExports;
+ }
++
++ //knibb
++ //test if two Strings are equal
++ //with wild card support - only supports strings ending in *
++ private boolean equals_wild(String input, String match){
++ if(input.equals(match)){
++ //its a match so just return true
++ return true;
++ }
++ if(input.endsWith("*")==false){
++ //no wildcards are being used here
++ return false;
++ }
++ String wild_in = input.substring(0, input.length()-1);
++ if(match.startsWith(wild_in))
++ return true;
++
++ return false;
++ }
+
+ public void setSelectionPolicy(Comparator selectionPolicy) {
+ this.selectionPolicy = selectionPolicy;
+Index: resolver/src/org/eclipse/osgi/internal/module/VersionHashMap.java
+===================================================================
+RCS file: /home/eclipse/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/VersionHashMap.java,v
+retrieving revision 1.5
+diff -u -r1.5 VersionHashMap.java
+--- resolver/src/org/eclipse/osgi/internal/module/VersionHashMap.java 23 Jan 2006 19:13:00 -0000 1.5
++++ resolver/src/org/eclipse/osgi/internal/module/VersionHashMap.java 9 May 2006 21:27:16 -0000
+@@ -28,6 +28,14 @@
+ for (int i = 0; i < versionSuppliers.length; i++)
+ put(versionSuppliers[i].getName(), versionSuppliers[i]);
+ }
++
++ // AMC
++
++ Iterator iterator() {
++ return internal.values().iterator();
++ }
++
++ // END AMC
+
+ public void put(Object key, Object value) {
+ super.put(key, value);
+Index: .options
+===================================================================
+RCS file: /home/eclipse/org.eclipse.osgi/.options,v
+retrieving revision 1.14
+diff -u -r1.14 .options
+--- .options 1 May 2006 17:08:49 -0000 1.14
++++ .options 9 May 2006 21:27:12 -0000
+@@ -23,6 +23,9 @@
+ # Debug the loading of message bundles
+ org.eclipse.osgi/debug/messageBundles=false
+
++# Debug supplements mechanism
++org.eclipse.osgi/debug/supplements=false
++
+ # Eclipse adaptor options
+ org.eclipse.osgi/eclipseadaptor/debug = false
+ org.eclipse.osgi/eclipseadaptor/debug/location = false
+Index: core/framework/org/eclipse/osgi/framework/debug/Debug.java
+===================================================================
+RCS file: /home/eclipse/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/debug/Debug.java,v
+retrieving revision 1.17
+diff -u -r1.17 Debug.java
+--- core/framework/org/eclipse/osgi/framework/debug/Debug.java 1 May 2006 15:37:20 -0000 1.17
++++ core/framework/org/eclipse/osgi/framework/debug/Debug.java 9 May 2006 21:27:12 -0000
+@@ -90,6 +90,12 @@
+ public static boolean MONITOR_ACTIVATION = false; // "monitor/bundles"
+
+ /**
++ * Show info about the supplements mechanism
++ */
++// public static boolean DEBUG_SUPPLEMENTS = Boolean.getBoolean("org.eclipse.osgi.showSupplementsInfo"); //$NON-NLS-1$ //$NON-NLS-2$
++ public static boolean DEBUG_SUPPLEMENTS = false; // "debug/supplements"
++
++ /**
+ * Base debug option key (org.eclispe.osgi).
+ */
+ public static final String ECLIPSE_OSGI = "org.eclipse.osgi"; //$NON-NLS-1$
+@@ -150,6 +156,10 @@
+ * Message bundles Debug option key.
+ */
+ public static final String OPTION_DEBUG_MESSAGE_BUNDLES = ECLIPSE_OSGI + "/debug/messageBundles"; //$NON-NLS-1$
++ /**
++ * Supplements mechansism Debug option key.
++ */
++ public static final String OPTION_DEBUG_SUPPLEMENTS = ECLIPSE_OSGI + "/debug/supplements"; //$NON-NLS-1$
+
+ static {
+ FrameworkDebugOptions dbgOptions = FrameworkDebugOptions.getDefault();
+@@ -168,6 +178,7 @@
+ DEBUG_PACKAGEADMIN = dbgOptions.getBooleanOption(OPTION_DEBUG_PACKAGEADMIN, false);
+ DEBUG_PACKAGEADMIN_TIMING = dbgOptions.getBooleanOption(OPTION_DEBUG_PACKAGEADMIN_TIMING, false) || dbgOptions.getBooleanOption("org.eclipse.core.runtime/debug", false); //$NON-NLS-1$
+ DEBUG_MESSAGE_BUNDLES = dbgOptions.getBooleanOption(OPTION_DEBUG_MESSAGE_BUNDLES, false);
++ DEBUG_SUPPLEMENTS = dbgOptions.getBooleanOption(OPTION_DEBUG_SUPPLEMENTS, false);
+ MONITOR_ACTIVATION = dbgOptions.getBooleanOption(OPTION_MONITOR_ACTIVATION, false);
+ }
+ }
+@@ -351,4 +362,4 @@
+ }
+ }
+
+-}
++}
+\ No newline at end of file
+Index: defaultAdaptor/src/org/eclipse/osgi/baseadaptor/loader/ClasspathManager.java
+===================================================================
+RCS file: /home/eclipse/org.eclipse.osgi/defaultAdaptor/src/org/eclipse/osgi/baseadaptor/loader/ClasspathManager.java,v
+retrieving revision 1.6
+diff -u -r1.6 ClasspathManager.java
+--- defaultAdaptor/src/org/eclipse/osgi/baseadaptor/loader/ClasspathManager.java 1 May 2006 14:14:24 -0000 1.6
++++ defaultAdaptor/src/org/eclipse/osgi/baseadaptor/loader/ClasspathManager.java 9 May 2006 21:27:14 -0000
+@@ -68,6 +68,10 @@
+ * </p>
+ */
+ public void initialize() {
++// String bundleName = data.getSymbolicName();
++// if (bundleName.equals("org.eclipse.osgi.aspectj.tests")) {
++// System.out.println("? ClasspathManager.initialize() bundle=" + bundleName);
++// }
+ entries = buildClasspath(classpath, this, data, classloader.getDomain());
+ ClassLoadingHook[] hooks = data.getAdaptor().getHookRegistry().getClassLoadingHooks();
+ for (int i = 0; i < hooks.length; i++)
+@@ -530,4 +534,4 @@
+ return classloader;
+ }
+
+-}
++}
+\ No newline at end of file

Back to the top