1 11 12 package org.eclipse.osgi.internal.baseadaptor; 13 14 import java.security.ProtectionDomain ; 15 import java.util.ArrayList ; 16 import org.eclipse.osgi.baseadaptor.*; 17 import org.eclipse.osgi.baseadaptor.bundlefile.BundleEntry; 18 import org.eclipse.osgi.baseadaptor.hooks.ClassLoadingHook; 19 import org.eclipse.osgi.baseadaptor.loader.*; 20 import org.eclipse.osgi.framework.adaptor.BundleProtectionDomain; 21 import org.eclipse.osgi.framework.adaptor.ClassLoaderDelegate; 22 import org.eclipse.osgi.framework.util.KeyedElement; 23 24 public class DevClassLoadingHook implements ClassLoadingHook, HookConfigurator, KeyedElement { 25 public static final String KEY = DevClassLoadingHook.class.getName(); 26 public static final int HASHCODE = KEY.hashCode(); 27 28 public byte[] processClass(String name, byte[] classbytes, ClasspathEntry classpathEntry, BundleEntry entry, ClasspathManager manager) { 29 return null; 31 } 32 33 public boolean addClassPathEntry(ArrayList cpEntries, String cp, ClasspathManager hostmanager, BaseData sourcedata, ProtectionDomain sourcedomain) { 34 String [] devClassPath = !DevClassPathHelper.inDevelopmentMode() ? null : DevClassPathHelper.getDevClassPath(sourcedata.getSymbolicName()); 36 if (devClassPath == null || devClassPath.length == 0) 37 return false; if (cpEntries.size() > 0 && ((ClasspathEntry) cpEntries.get(0)).getUserObject(KEY) != null) 40 return false; boolean result = false; 42 for (int i = 0; i < devClassPath.length; i++) { 43 if (ClasspathManager.addClassPathEntry(cpEntries, devClassPath[i], hostmanager, sourcedata, sourcedomain)) 44 result = true; 45 else { 46 ClasspathEntry entry = hostmanager.getExternalClassPath(devClassPath[i], sourcedata, sourcedomain); 48 if (entry != null) { 49 cpEntries.add(entry); 50 result = true; 51 } 52 } 53 } 54 if (result && cpEntries.size() > 0) 57 ((ClasspathEntry) cpEntries.get(0)).addUserObject(this); 58 return result; 59 } 60 61 public String findLibrary(BaseData data, String libName) { 62 return null; 64 } 65 66 public ClassLoader getBundleClassLoaderParent() { 67 return null; 69 } 70 71 public BaseClassLoader createClassLoader(ClassLoader parent, ClassLoaderDelegate delegate, BundleProtectionDomain domain, BaseData data, String [] bundleclasspath) { 72 return null; 74 } 75 76 public void initializedClassLoader(BaseClassLoader baseClassLoader, BaseData data) { 77 } 79 80 public void addHooks(HookRegistry hookRegistry) { 81 if (DevClassPathHelper.inDevelopmentMode()) 82 hookRegistry.addClassLoadingHook(new DevClassLoadingHook()); 84 85 } 86 87 public boolean compare(KeyedElement other) { 88 return other.getKey() == KEY; 89 } 90 91 public Object getKey() { 92 return KEY; 93 } 94 95 public int getKeyHashCode() { 96 return HASHCODE; 97 } 98 } 99 | Popular Tags |