@Override protected void annotateClass(Class<?> cl) throws IOException { OSGiObjectInputOutputStreamFactoryImpl.this.annotateClass(this, cl); } }
public Class<?> resolveClass(ObjectInputStream in, final ObjectStreamClass desc) throws IOException, ClassNotFoundException { String key = in.readUTF(); if (! NOT_A_BUNDLE_KEY.equals(key)) { Long bundleId = name2Id.get(key); if (bundleId != null) { final Bundle b = ctx.getBundle(bundleId); String cname = desc.getName(); if (cname.startsWith("[")) { return loadArrayClass(b, cname); } else { return loadClassFromBundle(b, cname); } } } return null; }
@Override protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException { Class clazz = OSGiObjectInputOutputStreamFactoryImpl.this.resolveClass(this, desc); if (clazz == null) { clazz = super.resolveClass(desc); } return clazz; }
public void annotateClass(ObjectOutputStream out, Class<?> cl) throws IOException { String key = NOT_A_BUNDLE_KEY; Bundle b = pkgAdm.getBundle(cl); if (b != null) { key = makeKey(b); } out.writeUTF(key); }
public void start(BundleContext context) throws Exception { ObjectInputOutputStreamFactoryFactory.setFactory( new OSGiObjectInputOutputStreamFactoryImpl(context)); }
private Class loadArrayClass(Bundle b, String cname) throws ClassNotFoundException { // We are never called with primitive types, so we don't have to check for primitive types. assert(cname.charAt(0) == 'L'); // An array Class component; // component class int dcount; // dimension for (dcount = 1; cname.charAt(dcount) == '['; dcount++){ } assert(cname.charAt(dcount) == 'L'); component = loadClassFromBundle(b, cname.substring(dcount + 1, cname.length() - 1)); int dim[] = new int[dcount]; for (int i = 0; i < dcount; i++) { dim[i] = 0; } return Array.newInstance(component, dim).getClass(); }
public Class<?> resolveClass(ObjectInputStream in, final ObjectStreamClass desc) throws IOException, ClassNotFoundException { String key = in.readUTF(); if (! NOT_A_BUNDLE_KEY.equals(key)) { Long bundleId = name2Id.get(key); if (bundleId != null) { final Bundle b = ctx.getBundle(bundleId); String cname = desc.getName(); if (cname.startsWith("[")) { return loadArrayClass(b, cname); } else { return loadClassFromBundle(b, cname); } } } return null; }
@Override protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException { Class clazz = OSGiObjectInputOutputStreamFactoryImpl.this.resolveClass(this, desc); if (clazz == null) { clazz = super.resolveClass(desc); } return clazz; }
public void annotateClass(ObjectOutputStream out, Class<?> cl) throws IOException { String key = NOT_A_BUNDLE_KEY; Bundle b = pkgAdm.getBundle(cl); if (b != null) { key = makeKey(b); } out.writeUTF(key); }
public void start(BundleContext context) throws Exception { ObjectInputOutputStreamFactoryFactory.setFactory( new OSGiObjectInputOutputStreamFactoryImpl(context)); }
private Class loadArrayClass(Bundle b, String cname) throws ClassNotFoundException { // We are never called with primitive types, so we don't have to check for primitive types. assert(cname.charAt(0) == 'L'); // An array Class component; // component class int dcount; // dimension for (dcount = 1; cname.charAt(dcount) == '['; dcount++){ } assert(cname.charAt(dcount) == 'L'); component = loadClassFromBundle(b, cname.substring(dcount + 1, cname.length() - 1)); int dim[] = new int[dcount]; for (int i = 0; i < dcount; i++) { dim[i] = 0; } return Array.newInstance(component, dim).getClass(); }
@Override protected void annotateClass(Class<?> cl) throws IOException { OSGiObjectInputOutputStreamFactoryImpl.this.annotateClass(this, cl); } }