gdamour 2005/10/15 03:44:54
Modified: modules/openejb-builder/src/java/org/openejb/deployment
OpenEJBModuleBuilder.java
Log:
GERONIMO-1075 Configuration classloaders should support an inverse
classloading delegation model.
A configuration supports now the following attribute and elements:
* inverseClassloading: indicate if the standard class loading delegation model
is to be reversed for this configuration;
* hidden-classes: filter of classes hidden from the configuration; and
* non-overridable-classes: filter of classes, which cannot be defined by the
configuration.
Revision Changes Path
1.59 +12 -1
openejb/modules/openejb-builder/src/java/org/openejb/deployment/OpenEJBModuleBuilder.java
Index: OpenEJBModuleBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/OpenEJBModuleBuilder.java,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -r1.58 -r1.59
--- OpenEJBModuleBuilder.java 1 Oct 2005 08:44:09 -0000 1.58
+++ OpenEJBModuleBuilder.java 15 Oct 2005 07:44:53 -0000 1.59
@@ -73,6 +73,7 @@
import org.apache.geronimo.deployment.service.ServiceConfigBuilder;
import org.apache.geronimo.deployment.util.DeploymentUtil;
import org.apache.geronimo.deployment.xmlbeans.XmlBeansUtil;
+import org.apache.geronimo.deployment.xbeans.ClassFilterType;
import org.apache.geronimo.deployment.xbeans.DependencyType;
import org.apache.geronimo.deployment.xbeans.GbeanType;
import org.apache.geronimo.gbean.GBeanData;
@@ -307,6 +308,16 @@
OpenejbOpenejbJarType openEjbJar = (OpenejbOpenejbJarType)
module.getVendorDD();
DependencyType[] dependencies = openEjbJar.getDependencyArray();
ServiceConfigBuilder.addDependencies(earContext, dependencies,
repository);
+
+ if (openEjbJar.isSetInverseClassloading()) {
+
earContext.setInverseClassloading(openEjbJar.getInverseClassloading());
+ }
+
+ ClassFilterType[] filters = openEjbJar.getHiddenClassesArray();
+ ServiceConfigBuilder.addHiddenClasses(earContext, filters);
+
+ filters = openEjbJar.getNonOverridableClassesArray();
+ ServiceConfigBuilder.addNonOverridableClasses(earContext, filters);
}
public void initContext(EARContext earContext, Module module,
ClassLoader cl) throws DeploymentException {