/** * create an instance from a Map * @param mapList list of map reperesenting ClassDefinition * @return the instance */ public static ClassBundle fromListOfMaps(List<Map<String, Object>> mapList) { ArrayList<ClassDefinition> listOfDefinitions = new ArrayList<ClassDefinition>(mapList.size()); for (Map<String, Object> classDefinitionMap : mapList) { listOfDefinitions.add(ClassDefinition.fromMap(classDefinitionMap)); } return new ClassBundle(listOfDefinitions); }
/** * return a list maps representing classDefinitions of this instance * @return the list of maps */ public List<Map<String, Object>> toListOfMaps() { ArrayList<Map<String, Object>> returnList = new ArrayList<Map<String, Object>>(this.getDefinitions().size()); for (ClassDefinition classDefinition : this.getDefinitions()) { returnList.add(classDefinition.toMap()); } return returnList; }
ClassBundle cb = new ClassBundle(); if (!cb.getDefinitions().contains(cd)) cb.getDefinitions().add(cd); if (!cb.getDefinitions().contains(cd)) cb.getDefinitions().add(cd); if (!cb.getDefinitions().contains(cd)) cb.getDefinitions().add(cd); if (!cb.getDefinitions().contains(cd)) cb.getDefinitions().add(cd); cb.getDefinitions().add(ClassDefinitionFactory.createClassDefinition(s));
try WorkClassLoader wcl = SecurityActions.createWorkClassLoader(ClassBundle.fromListOfMaps(classBundle));
Map<String, String> address = ((org.jboss.jca.core.spi.workmanager.Address) parameters[0]).toMap(); List<Map<String, Object>> cb = ((ClassBundle)parameters[1]).toListOfMaps(); DistributableWork work = (DistributableWork) parameters[2]; try Map<String, String> address = ((org.jboss.jca.core.spi.workmanager.Address) parameters[0]).toMap(); List<Map<String, Object>> cb = ((ClassBundle)parameters[1]).toListOfMaps(); DistributableWork work = (DistributableWork) parameters[2]; Map<String, String> address = ((org.jboss.jca.core.spi.workmanager.Address) parameters[0]).toMap(); List<Map<String, Object>> cb = ((ClassBundle)parameters[1]).toListOfMaps(); DistributableWork work = (DistributableWork) parameters[2];
try WorkClassLoader wcl = SecurityActions.createWorkClassLoader(ClassBundle.fromListOfMaps(classBundle));
try WorkClassLoader wcl = SecurityActions.createWorkClassLoader(ClassBundle.fromListOfMaps(classBundle));
/** * Constructor * @param cb The class bundle * @param resourceAdapterClassLoader The resource adapter class loader */ public WorkClassLoader(ClassBundle cb, ResourceAdapterClassLoader resourceAdapterClassLoader) { super(SecurityActions.getClassLoader(WorkClassLoader.class)); List<Class<?>> classes = new ArrayList<Class<?>>(cb.getDefinitions().size()); final boolean trace = log.isTraceEnabled(); for (ClassDefinition cd : cb.getDefinitions()) { if (trace) log.tracef("%s: Defining class=%s", Integer.toHexString(System.identityHashCode(this)), cd.getName()); Class<?> c = defineClass(cd.getName(), cd.getData(), 0, cd.getData().length); classes.add(c); } for (Class<?> c : classes) { if (trace) log.tracef("%s: Resolving class=%s", Integer.toHexString(System.identityHashCode(this)), c.getName()); resolveClass(c); } this.resourceAdapterClassLoader = resourceAdapterClassLoader; }