Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 35540 Details for
Bug 129940
Improve performance of split packages
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
proposed patch
129940_org.eclipse.osgi.patch (text/plain), 3.42 KB, created by
Thomas Watson
on 2006-03-01 10:05:35 EST
(
hide
)
Description:
proposed patch
Filename:
MIME Type:
Creator:
Thomas Watson
Created:
2006-03-01 10:05:35 EST
Size:
3.42 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.osgi >Index: core/framework/org/eclipse/osgi/framework/internal/core/SingleSourcePackage.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/SingleSourcePackage.java,v >retrieving revision 1.10 >diff -u -r1.10 SingleSourcePackage.java >--- core/framework/org/eclipse/osgi/framework/internal/core/SingleSourcePackage.java 15 Mar 2005 16:30:48 -0000 1.10 >+++ core/framework/org/eclipse/osgi/framework/internal/core/SingleSourcePackage.java 1 Mar 2006 15:01:22 -0000 >@@ -14,7 +14,7 @@ > import java.util.Enumeration; > > public class SingleSourcePackage extends PackageSource { >- BundleLoaderProxy supplier; >+ private BundleLoaderProxy supplier; > // this is the index of the ExportPackageDescription > // into the list of exported packages of the supplier > // a valid of -1 indicates it is unknown or does not matter >@@ -25,6 +25,10 @@ > this.supplier = supplier; > } > >+ public BundleLoaderProxy getSupplier() { >+ return supplier; >+ } >+ > public SingleSourcePackage[] getSuppliers() { > return new SingleSourcePackage[] {this}; > } >Index: core/framework/org/eclipse/osgi/framework/internal/core/MultiSourcePackage.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/MultiSourcePackage.java,v >retrieving revision 1.9 >diff -u -r1.9 MultiSourcePackage.java >--- core/framework/org/eclipse/osgi/framework/internal/core/MultiSourcePackage.java 20 Jul 2005 18:50:41 -0000 1.9 >+++ core/framework/org/eclipse/osgi/framework/internal/core/MultiSourcePackage.java 1 Mar 2006 15:01:22 -0000 >@@ -13,6 +13,7 @@ > import java.net.URL; > import java.util.Enumeration; > import java.util.Vector; >+import org.eclipse.osgi.framework.adaptor.BundleClassLoader; > > public class MultiSourcePackage extends PackageSource { > SingleSourcePackage[] suppliers; >@@ -28,6 +29,15 @@ > > public Class loadClass(String name) { > Class result = null; >+ // check for loaded classes first (to improve performance?) >+ for (int i = 0; i < suppliers.length; i++) { >+ BundleClassLoader bcl = suppliers[i].getSupplier().getBundleLoader().createClassLoader(); >+ synchronized (bcl) { >+ result = bcl.publicFindLoaded(name); >+ if (result != null) >+ return result; >+ } >+ } > for (int i = 0; i < suppliers.length; i++) { > result = suppliers[i].loadClass(name); > if (result != null) >Index: core/adaptor/org/eclipse/osgi/framework/adaptor/BundleClassLoader.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.osgi/core/adaptor/org/eclipse/osgi/framework/adaptor/BundleClassLoader.java,v >retrieving revision 1.16 >diff -u -r1.16 BundleClassLoader.java >--- core/adaptor/org/eclipse/osgi/framework/adaptor/BundleClassLoader.java 31 May 2005 12:56:17 -0000 1.16 >+++ core/adaptor/org/eclipse/osgi/framework/adaptor/BundleClassLoader.java 1 Mar 2006 15:01:22 -0000 >@@ -128,4 +128,11 @@ > * @return the parent classloader used by this BundleClassLoader > */ > public ClassLoader getParent(); >+ >+ /** >+ * A public version of the {@link ClassLoader#findLoadedClass(java.lang.String)} method. >+ * @param classname the class name to find. >+ * @return a loaded class >+ */ >+ Class publicFindLoaded(String classname); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 129940
:
35540
|
35551