geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From shiv...@apache.org
Subject svn commit: r654200 [2/2] - in /geronimo/server/trunk: framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/local/ plugins/console/console-portal-driver/src/main/webapp/WEB-INF/ plugins/j2ee/geronimo-j2ee-builder/...
Date Wed, 07 May 2008 18:17:29 GMT
Modified: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/java/org/apache/geronimo/console/configcreator/JSR88_Util.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/java/org/apache/geronimo/console/configcreator/JSR88_Util.java?rev=654200&r1=654199&r2=654200&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/java/org/apache/geronimo/console/configcreator/JSR88_Util.java (original)
+++ geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/java/org/apache/geronimo/console/configcreator/JSR88_Util.java Wed May  7 11:17:09 2008
@@ -16,81 +16,26 @@
  */
 package org.apache.geronimo.console.configcreator;
 
-import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.jar.JarFile;
-
-import javax.enterprise.deploy.model.DDBean;
-import javax.enterprise.deploy.model.DDBeanRoot;
-import javax.enterprise.deploy.model.exceptions.DDBeanCreateException;
+
 import javax.enterprise.deploy.shared.factories.DeploymentFactoryManager;
-import javax.enterprise.deploy.spi.DeploymentConfiguration;
 import javax.enterprise.deploy.spi.DeploymentManager;
 import javax.enterprise.deploy.spi.Target;
-import javax.enterprise.deploy.spi.exceptions.ConfigurationException;
-import javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException;
-import javax.enterprise.deploy.spi.exceptions.InvalidModuleException;
 import javax.enterprise.deploy.spi.factories.DeploymentFactory;
 import javax.enterprise.deploy.spi.status.ProgressObject;
-import javax.management.ObjectName;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
 import javax.portlet.PortletException;
 import javax.portlet.PortletRequest;
 
-import org.apache.geronimo.common.DeploymentException;
-import org.apache.geronimo.connector.deployment.AdminObjectRefBuilder.AdminObjectRefProcessor;
-import org.apache.geronimo.connector.deployment.ResourceRefBuilder.ResourceRefProcessor;
-import org.apache.geronimo.console.configcreator.AbstractHandler.ReferenceData;
-import org.apache.geronimo.console.configcreator.AbstractHandler.WARConfigData;
-import org.apache.geronimo.console.configcreator.JSR77_Util.ReferredData;
-import org.apache.geronimo.console.util.PortletManager;
-import org.apache.geronimo.deployment.ConfigurationBuilder;
-import org.apache.geronimo.deployment.ModuleIDBuilder;
+import org.apache.geronimo.deployment.plugin.jmx.CommandContext;
 import org.apache.geronimo.deployment.plugin.factories.DeploymentFactoryWithKernel;
 import org.apache.geronimo.deployment.plugin.jmx.JMXDeploymentManager;
-import org.apache.geronimo.deployment.service.jsr88.EnvironmentData;
-import org.apache.geronimo.deployment.tools.loader.WebDeployable;
+import org.apache.geronimo.deployment.plugin.local.DistributeCommand;
 import org.apache.geronimo.j2ee.ApplicationInfo;
-import org.apache.geronimo.j2ee.deployment.Module;
-import org.apache.geronimo.j2ee.deployment.annotation.AnnotatedApp;
-import org.apache.geronimo.j2ee.deployment.annotation.AnnotatedWebApp;
-import org.apache.geronimo.j2ee.deployment.annotation.EJBAnnotationHelper;
-import org.apache.geronimo.j2ee.deployment.annotation.HandlerChainAnnotationHelper;
-import org.apache.geronimo.j2ee.deployment.annotation.PersistenceContextAnnotationHelper;
-import org.apache.geronimo.j2ee.deployment.annotation.PersistenceUnitAnnotationHelper;
-import org.apache.geronimo.j2ee.deployment.annotation.ResourceAnnotationHelper;
-import org.apache.geronimo.j2ee.deployment.annotation.SecurityAnnotationHelper;
-import org.apache.geronimo.j2ee.deployment.annotation.WebServiceRefAnnotationHelper;
-import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+import org.apache.geronimo.j2ee.deployment.EARConfigBuilder;
 import org.apache.geronimo.kernel.Kernel;
-import org.apache.geronimo.kernel.config.ConfigurationManager;
-import org.apache.geronimo.kernel.repository.Artifact;
-import org.apache.geronimo.naming.deployment.EnvironmentEntryBuilder.EnvEntryRefProcessor;
-import org.apache.geronimo.naming.deployment.SwitchingServiceRefBuilder.ServiceRefProcessor;
-import org.apache.geronimo.naming.deployment.jsr88.EjbLocalRef;
-import org.apache.geronimo.naming.deployment.jsr88.EjbRef;
-import org.apache.geronimo.naming.deployment.jsr88.MessageDestination;
-import org.apache.geronimo.naming.deployment.jsr88.Pattern;
-import org.apache.geronimo.naming.deployment.jsr88.ResourceEnvRef;
-import org.apache.geronimo.naming.deployment.jsr88.ResourceRef;
-import org.apache.geronimo.web.deployment.WebAppDConfigBean;
-import org.apache.geronimo.web.deployment.WebAppDConfigRoot;
-import org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder;
-import org.apache.geronimo.xbeans.geronimo.naming.GerServiceRefType;
-import org.apache.geronimo.xbeans.geronimo.security.GerRoleType;
-import org.apache.geronimo.xbeans.geronimo.security.GerSecurityType;
-import org.apache.geronimo.xbeans.javaee.EjbLocalRefType;
-import org.apache.geronimo.xbeans.javaee.EjbRefType;
-import org.apache.geronimo.xbeans.javaee.MessageDestinationType;
-import org.apache.geronimo.xbeans.javaee.ResourceEnvRefType;
-import org.apache.geronimo.xbeans.javaee.ResourceRefType;
-import org.apache.geronimo.xbeans.javaee.SecurityRoleType;
-import org.apache.geronimo.xbeans.javaee.ServiceRefType;
-import org.apache.geronimo.xbeans.javaee.WebAppType;
-import org.apache.xbean.finder.ClassFinder;
+import org.apache.geronimo.kernel.KernelRegistry;
 
 /**
  * Util class for JSR-88 related functions
@@ -99,171 +44,7 @@
  */
 public class JSR88_Util {
 
-    private static void parseAnnotations(AnnotatedApp annotatedApp, ClassFinder classFinder) throws Exception {
-        ResourceAnnotationHelper.processAnnotations(annotatedApp, classFinder, EnvEntryRefProcessor.INSTANCE);
-        WebServiceRefAnnotationHelper.processAnnotations(annotatedApp, classFinder);
-        HandlerChainAnnotationHelper.processAnnotations(annotatedApp, classFinder);
-        ResourceAnnotationHelper.processAnnotations(annotatedApp, classFinder, ServiceRefProcessor.INSTANCE);
-        ResourceAnnotationHelper.processAnnotations(annotatedApp, classFinder, AdminObjectRefProcessor.INSTANCE);
-        ResourceAnnotationHelper.processAnnotations(annotatedApp, classFinder, ResourceRefProcessor.INSTANCE);
-        PersistenceContextAnnotationHelper.processAnnotations(annotatedApp, classFinder);
-        PersistenceUnitAnnotationHelper.processAnnotations(annotatedApp, classFinder);
-        EJBAnnotationHelper.processAnnotations(annotatedApp, classFinder);
-        if (annotatedApp instanceof AnnotatedWebApp) {
-            SecurityAnnotationHelper.processAnnotations(((AnnotatedWebApp) annotatedApp).getWebApp(), classFinder);
-        }
-    }
-
-    private static ConfigurationBuilder getConfigurationBuilder(PortletRequest request) {
-        Object[] builders = PortletManager.getGBeansImplementing(request, ConfigurationBuilder.class);
-        ConfigurationBuilder configurationBuilder = null;
-        for (int i = 0; i < builders.length; i++) {
-            ObjectName objectName = PortletManager.getNameFor(request, builders[i]).getObjectName();
-            if ("EARBuilder".equalsIgnoreCase(objectName.getKeyProperty(NameFactory.J2EE_NAME))) {
-                configurationBuilder = (ConfigurationBuilder) builders[i];
-                break;
-            }
-        }
-        return configurationBuilder;
-    }
-
-    private static ApplicationInfo createApplicationInfo(PortletRequest request, URL moduleUrl) throws Exception {
-        ConfigurationBuilder configurationBuilderBuilder = getConfigurationBuilder(request);
-        File moduleFile = new File(moduleUrl.toURI());
-        JarFile moduleJar = new JarFile(moduleFile);
-        ApplicationInfo applicationInfo = (ApplicationInfo) configurationBuilderBuilder.getDeploymentPlan(null, moduleJar,
-                new ModuleIDBuilder());
-        return applicationInfo;
-    }
-
-    public static void parseWarReferences(PortletRequest request, WARConfigData data, URL warUrl)
-            throws Exception {
-        WebDeployable webDeployable = new WebDeployable(warUrl);
-        ClassLoader classLoader = webDeployable.getModuleLoader();
-
-        ApplicationInfo applicationInfo = createApplicationInfo(request, warUrl);
-        Module module = (Module) (applicationInfo.getModules().toArray()[0]);
-        WebAppType webApp = (WebAppType) module.getSpecDD();
-
-        ClassFinder classFinder = null;
-        try {
-            classFinder = AbstractWebModuleBuilder.createWebAppClassFinder(webApp, classLoader);
-            // classFinder = new ClassFinder(classLoader);
-        } catch (DeploymentException e1) {
-            // Some of the class types referred in the WAR cannot be resolved.
-            // A typical case would be references to EJBs already deployed into the system, and
-            // hence not packaged inside WEB-INF/lib directory of WAR.
-            // try adding all EJBs deployed in the system as parents of this WAR, and
-            // see if referred classes can now be successfully resolved
-
-            classLoader = new WebDeployable(warUrl, getEjbClassLoaders(request)).getModuleLoader();
-            try {
-                classFinder = AbstractWebModuleBuilder.createWebAppClassFinder(webApp, classLoader);
-            } catch (DeploymentException e2) {
-                throw e2;
-            }
-        }
-        AnnotatedApp annotatedApp = module.getAnnotatedApp();
-        parseAnnotations(annotatedApp, classFinder);
-
-        //DDBeanRoot ddBeanRoot = webDeployable.getDDBeanRoot();
-        //DDBean ddBean = ddBeanRoot.getChildBean("web-app")[0];
-
-        EjbRefType[] ejbRefs = annotatedApp.getEjbRefArray();
-        for (int i = 0; i < ejbRefs.length; i++) {
-            String refName = ejbRefs[i].getEjbRefName().getStringValue();
-            data.getEjbRefs().add(new ReferenceData(refName));
-        }
-        /*DDBean[] ddBeans = ddBean.getChildBean("ejb-ref");
-        for (int i = 0; ddBeans != null && i < ddBeans.length; i++) {
-            String refName = ddBeans[i].getChildBean("ejb-ref-name")[0].getText();
-            data.getEjbRefs().add(new ReferenceData(refName));
-        }*/
-
-        EjbLocalRefType[] ejbLocalRefs = annotatedApp.getEjbLocalRefArray();
-        for (int i = 0; i < ejbLocalRefs.length; i++) {
-            String refName = ejbLocalRefs[i].getEjbRefName().getStringValue();
-            data.getEjbLocalRefs().add(new ReferenceData(refName));
-        }
-        /*ddBeans = ddBean.getChildBean("ejb-local-ref");
-        for (int i = 0; ddBeans != null && i < ddBeans.length; i++) {
-            String refName = ddBeans[i].getChildBean("ejb-ref-name")[0].getText();
-            data.getEjbLocalRefs().add(new ReferenceData(refName));
-        }*/
-
-        ResourceRefType[] resourceRefs = annotatedApp.getResourceRefArray();
-        for(int i = 0; i < resourceRefs.length; i++) {
-            String refName = resourceRefs[i].getResRefName().getStringValue();
-            String refType = resourceRefs[i].getResType().getStringValue();
-            if ("javax.sql.DataSource".equalsIgnoreCase(refType)) {
-                data.getJdbcPoolRefs().add(new ReferenceData(refName));
-            } else if ("javax.jms.ConnectionFactory".equalsIgnoreCase(refType)
-                    || "javax.jms.QueueConnectionFactory".equalsIgnoreCase(refType)
-                    || "javax.jms.TopicConnectionFactory".equalsIgnoreCase(refType)) {
-                data.getJmsConnectionFactoryRefs().add(new ReferenceData(refName));
-            } else if ("javax.mail.Session".equalsIgnoreCase(refType)) {
-                data.getJavaMailSessionRefs().add(new ReferenceData(refName));
-            }
-        }
-        /*ddBeans = ddBean.getChildBean("resource-ref");
-        for (int i = 0; ddBeans != null && i < ddBeans.length; i++) {
-            String refName = ddBeans[i].getChildBean("res-ref-name")[0].getText();
-            String refType = ddBeans[i].getChildBean("res-type")[0].getText();
-            if ("javax.sql.DataSource".equalsIgnoreCase(refType)) {
-                data.getJdbcPoolRefs().add(new ReferenceData(refName));
-            } else if ("javax.jms.ConnectionFactory".equalsIgnoreCase(refType)
-                    || "javax.jms.QueueConnectionFactory".equalsIgnoreCase(refType)
-                    || "javax.jms.TopicConnectionFactory".equalsIgnoreCase(refType)) {
-                data.getJmsConnectionFactoryRefs().add(new ReferenceData(refName));
-            }
-        }*/
-
-        ServiceRefType[] serviceRefs = annotatedApp.getServiceRefArray();
-        for(int i = 0; i < serviceRefs.length; i++) {
-            String refName = serviceRefs[i].getServiceRefName().getStringValue();
-            GerServiceRefType serviceRef = GerServiceRefType.Factory.newInstance();
-            serviceRef.setServiceRefName(refName);
-            data.getWebServiceRefs().add(serviceRef);
-        }
-
-        ResourceEnvRefType[] resourceEnvRefs = annotatedApp.getResourceEnvRefArray();
-        for(int i = 0; i < resourceEnvRefs.length; i++) {
-            String refName = resourceEnvRefs[i].getResourceEnvRefName().getStringValue();
-            ReferenceData refData = new ReferenceData(refName);
-            refData.setRefLink(refName);
-            data.getJmsDestinationRefs().add(refData);
-        }
-        if(annotatedApp instanceof AnnotatedWebApp) {
-            WebAppType webApp2 = ((AnnotatedWebApp)annotatedApp).getWebApp();
-            MessageDestinationType[] messageDestinations = webApp2.getMessageDestinationArray();
-            for(int i = 0; i < messageDestinations.length; i++) {
-                String refName = messageDestinations[i].getMessageDestinationName().getStringValue();
-                ReferenceData refData = new ReferenceData(refName);
-                refData.setRefLink(refName);
-                data.getMessageDestinations().add(refData);
-            }
-
-            SecurityRoleType[] securityRoles = webApp2.getSecurityRoleArray();
-            if (securityRoles.length > 0) {
-                data.setSecurity(GerSecurityType.Factory.newInstance());
-                data.getSecurity().addNewRoleMappings();
-            }
-            for (int i = 0; i < securityRoles.length; i++) {
-                String roleName = securityRoles[i].getRoleName().getStringValue();
-                GerRoleType role = data.getSecurity().getRoleMappings().addNewRole();
-                role.setRoleName(roleName);
-            }
-        }
-        /*ddBeans = ddBean.getChildBean("message-destination");
-        for (int i = 0; ddBeans != null && i < ddBeans.length; i++) {
-            String refName = ddBeans[i].getChildBean("message-destination-name")[0].getText();
-            ReferenceData refData = new ReferenceData(refName);
-            refData.setRefLink(refName);
-            data.getJmsDestinationRefs().add(refData);
-        }*/
-    }
-
-    private static List getEjbClassLoaders(PortletRequest request) {
+    /*private static List getEjbClassLoaders(PortletRequest request) {
         List deployedEjbs = JSR77_Util.getDeployedEJBs(request);
         List configurations = new ArrayList();
         for (int i = 0; i < deployedEjbs.size(); i++) {
@@ -281,202 +62,51 @@
             classLoaders.add(configurationManager.getConfiguration(configurationId).getConfigurationClassLoader());
         }
         return classLoaders;
-    }
-
-    public static String getDependencyString(String patternString) {
-        String[] elements = patternString.split("/", 6);
-        return elements[0] + "/" + elements[1] + "/" + elements[2] + "/" + elements[3];
-    }
+    }*/
 
-    public static String createDeploymentPlan(PortletRequest request, WARConfigData data, URL WarUrl)
-            throws IOException, DDBeanCreateException, InvalidModuleException, ConfigurationException, DeploymentManagerCreationException {
-        WebDeployable webDeployable = new WebDeployable(WarUrl);
-        DDBeanRoot ddBeanRoot = webDeployable.getDDBeanRoot();
-        DDBean ddBean = ddBeanRoot.getChildBean("web-app")[0];
-
-        Kernel kernel = PortletManager.getKernel();
-        DeploymentFactory factory = new DeploymentFactoryWithKernel(kernel);
-        DeploymentManager deploymentManager = factory.getDeploymentManager("deployer:geronimo:inVM", null, null);
-        DeploymentConfiguration deploymentConfiguration = deploymentManager.createConfiguration(webDeployable);
-        WebAppDConfigRoot configRoot = (WebAppDConfigRoot) deploymentConfiguration.getDConfigBeanRoot(ddBeanRoot);
-        WebAppDConfigBean webApp = (WebAppDConfigBean) configRoot.getDConfigBean(ddBean);
-
-        webApp.setContextRoot(data.getContextRoot());
-
-        EnvironmentData environment = new EnvironmentData();
-        webApp.setEnvironment(environment);
-        org.apache.geronimo.deployment.service.jsr88.Artifact configId = new org.apache.geronimo.deployment.service.jsr88.Artifact();
-        environment.setConfigId(configId);
-        configId.setGroupId(data.getGroupId());
-        configId.setArtifactId(data.getArtifactId());
-        configId.setVersion(data.getVersion());
-        configId.setType(data.getType());
-        int numDependencies = data.getDependencies().size();
-        if (numDependencies > 0) {
-            org.apache.geronimo.deployment.service.jsr88.Artifact[] dependencies = new org.apache.geronimo.deployment.service.jsr88.Artifact[numDependencies];
-            for (int i = 0; i < numDependencies; i++) {
-                dependencies[i] = new org.apache.geronimo.deployment.service.jsr88.Artifact();
-            }
-            environment.setDependencies(dependencies);
-            for (int i = 0; i < numDependencies; i++) {
-                Artifact artifact = Artifact.create(((String) data.getDependencies().get(i)).trim());
-                org.apache.geronimo.deployment.service.jsr88.Artifact dep = dependencies[i];
-                dep.setArtifactId(artifact.getArtifactId());
-                if (artifact.getGroupId() != null) {
-                    dep.setGroupId(artifact.getGroupId());
-                }
-                if (artifact.getType() != null) {
-                    dep.setType(artifact.getType());
-                }
-                if (artifact.getVersion() != null) {
-                    dep.setVersion(artifact.getVersion().toString());
-                }
-            }
-        }
-        String hiddenClassesString = data.getHiddenClasses();
-        if (hiddenClassesString != null && hiddenClassesString.length() > 0) {
-            String[] hiddenClasses = getNonEmptyStrings(hiddenClassesString.split(";"));
-            if (hiddenClasses.length > 0) {
-                environment.setHiddenClasses(hiddenClasses);
-            }
-        }
-        String nonOverridableClassesString = data.getNonOverridableClasses();
-        if (nonOverridableClassesString != null && nonOverridableClassesString.length() > 0) {
-            String[] nonOverridableClasses = getNonEmptyStrings(nonOverridableClassesString.split(";"));
-            if (nonOverridableClasses.length > 0) {
-                environment.setNonOverridableClasses(nonOverridableClasses);
-            }
-        }
-        if (data.isInverseClassLoading()) {
-            environment.setInverseClassLoading(true);
-        }
-
-        int numEjbRefs = data.getEjbRefs().size();
-        if (numEjbRefs > 0) {
-            EjbRef[] ejbRefs = new EjbRef[numEjbRefs];
-            for (int i = 0; i < numEjbRefs; i++) {
-                ejbRefs[i] = new EjbRef();
-            }
-            webApp.setEjbRefs(ejbRefs);
-            for (int i = 0; i < numEjbRefs; i++) {
-                EjbRef ejbRef = ejbRefs[i];
-                ReferenceData referenceData = (ReferenceData) data.getEjbRefs().get(i);
-                ejbRef.setRefName(referenceData.getRefName());
-                ejbRef.setPattern(createPattern(referenceData.getRefLink()));
-            }
-        }
-
-        int numEjbLocalRefs = data.getEjbLocalRefs().size();
-        if (numEjbLocalRefs > 0) {
-            EjbLocalRef[] ejbLocalRefs = new EjbLocalRef[numEjbLocalRefs];
-            for (int i = 0; i < numEjbLocalRefs; i++) {
-                ejbLocalRefs[i] = new EjbLocalRef();
-            }
-            webApp.setEjbLocalRefs(ejbLocalRefs);
-            for (int i = 0; i < numEjbLocalRefs; i++) {
-                EjbLocalRef ejbLocalRef = ejbLocalRefs[i];
-                ReferenceData referenceData = (ReferenceData) data.getEjbLocalRefs().get(i);
-                ejbLocalRef.setRefName(referenceData.getRefName());
-                ejbLocalRef.setPattern(createPattern(referenceData.getRefLink()));
-            }
-        }
-
-        int numResourceRefs = data.getJdbcPoolRefs().size() + data.getJmsConnectionFactoryRefs().size()
-                + data.getJavaMailSessionRefs().size();
-        if (numResourceRefs > 0) {
-            ResourceRef[] resourceRefs = new ResourceRef[numResourceRefs];
-            for (int i = 0; i < numResourceRefs; i++) {
-                resourceRefs[i] = new ResourceRef();
-            }
-            webApp.setResourceRefs(resourceRefs);
-            int i = 0;
-            for (int l = 0; l < data.getJdbcPoolRefs().size(); l++, i++) {
-                ResourceRef resourceRef = resourceRefs[i];
-                ReferenceData referenceData = (ReferenceData) data.getJdbcPoolRefs().get(l);
-                resourceRef.setRefName(referenceData.getRefName());
-                resourceRef.setPattern(createPattern(referenceData.getRefLink()));
-            }
-            for (int m = 0; m < data.getJmsConnectionFactoryRefs().size(); m++, i++) {
-                ResourceRef resourceRef = resourceRefs[i];
-                ReferenceData referenceData = (ReferenceData) data.getJmsConnectionFactoryRefs().get(m);
-                resourceRef.setRefName(referenceData.getRefName());
-                resourceRef.setPattern(createPattern(referenceData.getRefLink()));
-            }
-            for (int n = 0; n < data.getJavaMailSessionRefs().size(); n++, i++) {
-                ResourceRef resourceRef = resourceRefs[i];
-                ReferenceData referenceData = (ReferenceData) data.getJavaMailSessionRefs().get(n);
-                resourceRef.setRefName(referenceData.getRefName());
-                resourceRef.setPattern(createPattern(referenceData.getRefLink()));
-            }
-        }
-
-        int numMessageDestinations = data.getMessageDestinations().size();
-        if (numMessageDestinations > 0) {
-            MessageDestination[] messageDestinations = new MessageDestination[numMessageDestinations];
-            for (int i = 0; i < numMessageDestinations; i++) {
-                messageDestinations[i] = new MessageDestination();
-            }
-            webApp.setMessageDestinations(messageDestinations);
-            for (int i = 0; i < numMessageDestinations; i++) {
-                MessageDestination messageDestination = messageDestinations[i];
-                ReferenceData referenceData = (ReferenceData) data.getMessageDestinations().get(i);
-                messageDestination.setMessageDestinationName(referenceData.getRefName());
-                // messageDestination.setPattern(createPattern(referenceData.getRefLink()));
-                messageDestination.setAdminObjectLink(createPattern(referenceData.getRefLink()).getName());
-            }
-        }
-
-        int numResourceEnvRefs = data.getJmsDestinationRefs().size();
-        if (numResourceEnvRefs > 0) {
-            ResourceEnvRef[] resourceEnvRefs = new ResourceEnvRef[numResourceEnvRefs];
-            for (int i = 0; i < numResourceEnvRefs; i++) {
-                resourceEnvRefs[i] = new ResourceEnvRef();
-            }
-            webApp.setResourceEnvRefs(resourceEnvRefs);
-            for (int i = 0; i < numResourceEnvRefs; i++) {
-                ResourceEnvRef resourceEnvRef = resourceEnvRefs[i];
-                ReferenceData referenceData = (ReferenceData) data.getJmsDestinationRefs().get(i);
-                resourceEnvRef.setRefName(referenceData.getRefName());
-                resourceEnvRef.setPattern(createPattern(referenceData.getRefLink()));
-                // resourceEnvRef.setAdminObjectLink(createPattern(referenceData.getRefLink()).getName());
+    public static ApplicationInfo createApplicationInfo(PortletRequest actionRequest, File moduleFile) {
+        ApplicationInfo applicationInfo = null;
+        EARConfigBuilder.createPlanMode.set(Boolean.TRUE);
+        try {
+            DeploymentFactoryManager dfm = DeploymentFactoryManager.getInstance();
+            DeploymentManager mgr = dfm.getDeploymentManager("deployer:geronimo:inVM", null, null);
+            if (mgr instanceof JMXDeploymentManager) {
+                ((JMXDeploymentManager) mgr).setLogConfiguration(false, true);
             }
+            Target[] targets = mgr.getTargets();
+            if (null == targets) {
+                throw new IllegalStateException("No target to distribute to");
+            }
+            targets = new Target[] { targets[0] };
+            DistributeCommand command = new DistributeCommand(getKernel(), targets, moduleFile, null);
+            CommandContext commandContext = new CommandContext(true, true, null, null, false);
+            commandContext.setUsername("system");
+            commandContext.setPassword("manager");
+            command.setCommandContext(commandContext);
+            command.doDeploy(targets[0], true);
+        } catch (Exception e) {
+            // ignore exceptions
+        } finally {
+            EARConfigBuilder.createPlanMode.set(Boolean.FALSE);
+            applicationInfo = EARConfigBuilder.appInfo.get();
+            EARConfigBuilder.appInfo.set(null);
         }
-
-        int numWebServiceRefs = data.getWebServiceRefs().size();
-        if (numWebServiceRefs > 0) {
-            webApp.setServiceRefs(data.getWebServiceRefs().toArray(new GerServiceRefType[numWebServiceRefs]));
-        }
-
-        if (data.getSecurity() != null) {
-            webApp.setSecurityRealmName(data.getSecurityRealmName());
-            webApp.setSecurity(data.getSecurity());
-        }
-
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        deploymentConfiguration.save(out);
-        out.close();
-        return new String(out.toByteArray(), "US-ASCII");
-    }
-
-    private static Pattern createPattern(String patternString) {
-        Pattern pattern = new Pattern();
-        String[] elements = patternString.split("/", 6);
-        pattern.setGroupId(elements[0]);
-        pattern.setArtifactId(elements[1]);
-        pattern.setVersion(elements[2]);
-        pattern.setType(elements[3]);
-        pattern.setModule(elements[4]);
-        pattern.setName(elements[5]);
-        return pattern;
+        return applicationInfo;
     }
 
-    private static String[] getNonEmptyStrings(String[] strings) {
-        ArrayList list = new ArrayList();
-        for (int i = 0; i < strings.length; i++) {
-            if (strings[i].trim().length() > 0)
-                list.add(strings[i].trim());
+    private static Kernel getKernel() {
+        // todo: consider making this configurable; we could easily connect to a remote kernel if we wanted to
+        Kernel kernel = null;
+        try {
+            kernel = (Kernel) new InitialContext().lookup("java:comp/GeronimoKernel");
+        } catch (NamingException e) {
+            // log.error("Unable to look up kernel in JNDI", e);
+        }
+        if (kernel == null) {
+            // log.debug("Unable to find kernel in JNDI; using KernelRegistry instead");
+            kernel = KernelRegistry.getSingleKernel();
         }
-        return (String[]) list.toArray(new String[list.size()]);
+        return kernel;
     }
 
     public static String[] deploy(PortletRequest actionRequest, File moduleFile, File planFile)
@@ -492,13 +122,13 @@
                 if (mgr instanceof JMXDeploymentManager) {
                     ((JMXDeploymentManager) mgr).setLogConfiguration(false, true);
                 }
-                
+
                 Target[] targets = mgr.getTargets();
                 if (null == targets) {
                     throw new IllegalStateException("No target to distribute to");
                 }
-                targets = new Target[] {targets[0]};
-                
+                targets = new Target[] { targets[0] };
+
                 ProgressObject progress = mgr.distribute(targets, moduleFile, planFile);
                 while (progress.getDeploymentStatus().isRunning()) {
                     Thread.sleep(100);

Modified: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/java/org/apache/geronimo/console/configcreator/ReferencesHandler.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/java/org/apache/geronimo/console/configcreator/ReferencesHandler.java?rev=654200&r1=654199&r2=654200&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/java/org/apache/geronimo/console/configcreator/ReferencesHandler.java (original)
+++ geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/java/org/apache/geronimo/console/configcreator/ReferencesHandler.java Wed May  7 11:17:09 2008
@@ -17,8 +17,6 @@
 package org.apache.geronimo.console.configcreator;
 
 import java.io.IOException;
-import java.util.HashSet;
-import java.util.List;
 
 import javax.portlet.ActionRequest;
 import javax.portlet.ActionResponse;
@@ -29,6 +27,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.geronimo.console.MultiPageModel;
+import org.apache.geronimo.console.configcreator.configData.WARConfigData;
 
 /**
  * A handler for ...
@@ -49,7 +48,7 @@
 
     public void renderView(RenderRequest request, RenderResponse response, MultiPageModel model)
             throws PortletException, IOException {
-        WARConfigData data = getSessionData(request);
+        WARConfigData data = getWARSessionData(request);
         request.setAttribute(DATA_PARAMETER, data);
         request.setAttribute(DEPLOYED_EJBS_PARAMETER, JSR77_Util.getDeployedEJBs(request));
         request.setAttribute(DEPLOYED_JDBC_CONNECTION_POOLS_PARAMETER, JSR77_Util.getJDBCConnectionPools(request));
@@ -60,35 +59,14 @@
 
     public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model)
             throws PortletException, IOException {
-        WARConfigData data = getSessionData(request);
+        WARConfigData data = getWARSessionData(request);
         data.readReferencesData(request);
-        HashSet dependenciesSet = new HashSet();
-        if (processRefs(data.getEjbRefs(), dependenciesSet)
-                && processRefs(data.getEjbLocalRefs(), dependenciesSet)
-                && processRefs(data.getJdbcPoolRefs(), dependenciesSet)
-                && processRefs(data.getJavaMailSessionRefs(), dependenciesSet)
-                && processRefs(data.getJmsConnectionFactoryRefs(), dependenciesSet)
-                && processRefs(data.getJmsDestinationRefs(), dependenciesSet)) {
-            data.getDependencies().clear();
-            data.getDependencies().addAll(dependenciesSet);
-            if (data.getSecurity() != null) {
-                return SECURITY_MODE + "-before";
-            }
-            return DEPENDENCIES_MODE + "-before";
+        if (data.isReferenceNotResolved()) {
+            return getMode() + "-before";
         }
-        data.setReferenceNotResolved(true);
-        return getMode() + "-before";
-    }
-
-    private boolean processRefs(List refList, HashSet dependenciesSet) {
-        for (int i = 0; i < refList.size(); i++) {
-            ReferenceData referenceData = (ReferenceData) refList.get(i);
-            String referenceLink = referenceData.getRefLink();
-            if (referenceLink == null || referenceLink.length() <= 0) {
-                return false;
-            }
-            dependenciesSet.add(JSR88_Util.getDependencyString(referenceLink));
+        if (data.getSecurity() != null) {
+            return SECURITY_MODE + "-before";
         }
-        return true;
+        return DEPENDENCIES_MODE + "-before";
     }
 }

Modified: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/java/org/apache/geronimo/console/configcreator/SecurityHandler.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/java/org/apache/geronimo/console/configcreator/SecurityHandler.java?rev=654200&r1=654199&r2=654200&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/java/org/apache/geronimo/console/configcreator/SecurityHandler.java (original)
+++ geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/java/org/apache/geronimo/console/configcreator/SecurityHandler.java Wed May  7 11:17:09 2008
@@ -27,6 +27,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.geronimo.console.MultiPageModel;
+import org.apache.geronimo.console.configcreator.configData.WARConfigData;
 
 /**
  * A handler for ...
@@ -47,7 +48,7 @@
 
     public void renderView(RenderRequest request, RenderResponse response, MultiPageModel model)
             throws PortletException, IOException {
-        WARConfigData data = getSessionData(request);
+        WARConfigData data = getWARSessionData(request);
         request.setAttribute(DATA_PARAMETER, data);
         request.setAttribute(DEPLOYED_SECURITY_REALMS_PARAMETER, JSR77_Util.getDeployedSecurityRealms(request));
         request.setAttribute(DEPLOYED_CREDENTIAL_STORES_PARAMETER, JSR77_Util.getDeployedCredentialStores(request));
@@ -55,7 +56,7 @@
 
     public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model)
             throws PortletException, IOException {
-        WARConfigData data = getSessionData(request);
+        WARConfigData data = getWARSessionData(request);
         data.readSecurityData(request);
         return DEPENDENCIES_MODE + "-before";
     }

Modified: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/dependencies.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/dependencies.jsp?rev=654200&r1=654199&r2=654200&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/dependencies.jsp (original)
+++ geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/dependencies.jsp Wed May  7 11:17:09 2008
@@ -43,7 +43,7 @@
   <c:forEach var="commonLib" items="${commonLibs}">
     <tr>
       <td><input type="checkbox" name="selectedLibs" value="${commonLib}"
-        <c:forEach var="dependency" items="${data.dependencies}">
+        <c:forEach var="dependency" items="${data.environmentConfig.dependencies}">
           <c:if test="${commonLib == dependency}">checked="checked"
           </c:if>
         </c:forEach> />

Modified: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/deployStatus.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/deployStatus.jsp?rev=654200&r1=654199&r2=654200&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/deployStatus.jsp (original)
+++ geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/deployStatus.jsp Wed May  7 11:17:09 2008
@@ -52,7 +52,7 @@
 </c:if>
 
 <c:if test="${empty fullStatusMessage}">
-<p><a href="/${data.contextRoot}">Launch Web App</a></p>
+<p><a href="/${data.webApp.contextRoot}">Launch Web App</a></p>
 </c:if>
 
 <p><a href="<portlet:actionURL portletMode="view">

Added: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/ejbPage.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/ejbPage.jsp?rev=654200&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/ejbPage.jsp (added)
+++ geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/ejbPage.jsp Wed May  7 11:17:09 2008
@@ -0,0 +1,61 @@
+<%--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+--%>
+
+<%-- $Rev$ $Date$ --%>
+
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
+<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
+<portlet:defineObjects />
+
+<script type="text/javascript" src="/dojo/dojo.js"></script>
+
+<script type="text/javascript">
+  dojo.require("dojo.lang.*");
+  dojo.require("dojo.widget.*");
+  // Pane includes
+  dojo.require("dojo.widget.ContentPane");
+  dojo.require("dojo.widget.LayoutContainer"); // Before: LayoutPane
+  dojo.require("dojo.widget.SplitContainer"); // Before: SplitPane
+  // Tree includes
+  dojo.require("dojo.widget.Tree");
+  dojo.require("dojo.widget.TreeBasicController");
+  dojo.require("dojo.widget.TreeContextMenu");
+  dojo.require("dojo.widget.TreeSelector");
+  // Etc includes
+  dojo.require("dojo.widget.SortableTable");
+  dojo.require("dojo.widget.ComboBox");
+  dojo.require("dojo.widget.Tooltip");
+  dojo.require("dojo.widget.validate");
+  // Includes Dojo source for debugging
+  // dojo.hostenv.writeIncludes();
+</script>
+
+<script>
+  dojo.addOnLoad(function() {
+  }
+</script>
+
+<div dojoType="dijit.layout.SplitContainer" id="rightPane"
+        orientation="horizontal"  sizerWidth="5"  activeSizing="0">
+        <div id="listPane" dojoType="dijit.layout.ContentPane" sizeMin="20" sizeShare="20">
+              Tree goes here
+        </div>
+                                       
+        <div id="message" dojoType="dijit.layout.ContentPane" sizeMin="20" sizeShare="80">
+            Editors goes here
+        </div>
+</div>

Propchange: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/ejbPage.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/ejbPage.jsp
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/ejbPage.jsp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/enterpriseApp.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/enterpriseApp.jsp?rev=654200&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/enterpriseApp.jsp (added)
+++ geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/enterpriseApp.jsp Wed May  7 11:17:09 2008
@@ -0,0 +1,297 @@
+<%--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+--%>
+
+<%-- $Rev$ $Date$ --%>
+
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
+<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
+<portlet:defineObjects />
+
+<style type="text/css">
+  @import "/dojo/dijit/themes/tundra/tundra.css";
+  @import "/dojo/dojo/resources/dojo.css"
+</style>
+
+<script type="text/javascript" src="/dojo/dojo/dojo.js" djConfig="parseOnLoad: true"></script>
+<script type="text/javascript">
+  dojo.require("dojo.parser");
+  dojo.require("dijit.layout.TabContainer");
+  dojo.require("dijit.layout.ContentPane");
+  dojo.require("dijit.layout.SplitContainer");
+  dojo.require("dojo.data.ItemFileReadStore");
+  dojo.require("dijit.Tree");
+  dojo.require("dijit.form.Form");
+  dojo.require("dijit.form.ValidationTextBox");
+  dojo.require("dijit.form.ComboBox");
+  dojo.require("dijit.form.FilteringSelect");
+  dojo.require("dijit.form.CheckBox");
+  dojo.require("dijit.form.DateTextBox");
+  dojo.require("dijit.form.CurrencyTextBox");
+  dojo.require("dijit.form.NumberSpinner");
+  dojo.require("dijit.form.Slider");
+  dojo.require("dijit.form.Textarea");
+  dojo.require("dijit.form.Button");
+  dojo.require("dijit.Editor");
+  dojo.require("dijit.TitlePane");
+</script>
+
+<% String dwrForwarderServlet = "/console/dwr5"; %>
+<script type='text/javascript' src='<%= dwrForwarderServlet %>/interface/EARHelper.js'></script>
+<script type='text/javascript' src='<%= dwrForwarderServlet %>/engine.js'></script>
+<script type='text/javascript' src='<%= dwrForwarderServlet %>/util.js'></script>
+
+<script type="text/javascript" charset="utf-8">
+  function updateEarTreeStore(earTree) {
+    //alert("earTree received from server: " + dojo.toJson(earTree));
+    var earTreeStore = new dojo.data.ItemFileReadStore({data: earTree});
+    new dijit.Tree({id: 'referencesTree', store: earTreeStore, label: 'EAR'}, dojo.byId("referencesTreeHolder"));
+    new dijit.Tree({id: 'securityTree', store: earTreeStore, label: 'EAR'}, dojo.byId("securityTreeHolder"));
+  }
+
+  function updateDependenciesTree(dependenciesJson) {
+    var dependenciesStore = new dojo.data.ItemFileReadStore({data: dependenciesJson});
+    var placeHolder = dojo.byId("dependenciesTree");
+    <ul dojoType="dijit.Menu" id="tree_menu" style="display: none;">
+      <li dojoType="dijit.MenuItem" onClick="alert('Hello world');">Delete</li>
+    </ul>
+    new dijit.Tree({id: 'dependenciesTree', store: dependenciesStore, label: 'Dependencies'}, placeHolder);
+  }
+
+  function populateEnvironment(envJson) {
+    var envForm = dijit.byId("environmentForm");
+    envForm.setValues(envJson);
+  }
+
+  function saveEnvironment(envJson) {
+    EARHelper.saveEnvironmentJson(envJson, saveEnvironmentCallBack);
+  }
+
+  function saveEnvironmentCallBack() {
+    EARHelper.getGeneratedPlan(function(plan) {
+      alert(plan);
+    });
+  }
+
+  function addNewDependency(value) {
+    alert("Dependency to be added: " + value);
+  }
+
+  dojo.addOnLoad(function(){
+    EARHelper.getEnvironmentJson(populateEnvironment);
+    EARHelper.getDependenciesJsonTree(updateDependenciesTree);
+    EARHelper.getEarTree(updateEarTreeStore);
+  });
+</script>
+
+<div class="tundra"> 
+<div id="mainTabContainer" dojoType="dijit.layout.TabContainer" 
+    style="width:750px;height:1000px">
+  <div id="environment" dojoType="dijit.layout.ContentPane" title="Environment">
+    <form dojoType="dijit.form.Form" id="environmentForm" 
+      execute=" alert('Execute form w/values:\n'+dojo.toJson(arguments[0],true)); 
+      saveEnvironment(arguments[0]);">
+
+    <!-- ENTRY FIELD: Module Id -->
+    <div dojoType="dijit.TitlePane" title="Module Id" open="true" style="width:500px; margin:0; padding:0;">
+      <table border="0">
+        <tr>
+          <th colspan="2" align="center"> Module Id:</th>
+          <td id="moduleIdHelp">?</td>
+          <div dojoType="dijit.Tooltip" connectId="moduleIdHelp" 
+            label="Every module in Geronimo is uniquely identified by it's ModuleID which consists of four 
+              components: groupId/artifactId/version/type. 
+              Example: 'org.apache.geronimo.plugins/plancreator-tomcat/2.1/car'.">
+          </div>
+        </tr>
+        <tr>
+          <th><div align="right">Group Id:</div></th>
+          <td>
+            <input type="text" id="groupId" name="groupId"
+              dojoType="dijit.form.ValidationTextBox" required="true" trim="true"/>
+          </td>
+          <td id="groupIdHelp">?</td>
+          <div dojoType="dijit.Tooltip" connectId="groupIdHelp" 
+            label="A name identifying a group of related modules. This may be a project name, a company name, etc. 
+              The important thing is that each artifactID should be unique within the group.">
+          </div>
+        </tr>
+        <tr>
+          <th><div align="right">Artifact Id:</div></th>
+          <td>
+            <input type="text" id="artifactId" name="artifactId"
+              dojoType="dijit.form.ValidationTextBox" required="true" trim="true"/>
+          </td>
+          <td id="artifactIdHelp">?</td>
+          <div dojoType="dijit.Tooltip" connectId="artifactIdHelp" 
+            label="A name identifying the specific module within the group.">
+          </div>
+        </tr>
+        <tr>
+          <th><div align="right">Version:</div></th>
+          <td>
+            <input type="text" id="version" name="version"
+              dojoType="dijit.form.ValidationTextBox" required="true" trim="true"/>
+          </td>
+          <td id="versionHelp">?</td>
+          <div dojoType="dijit.Tooltip" connectId="versionHelp" 
+            label="Version number for the module.">
+          </div>
+        </tr>
+        <tr>
+          <th><div align="right">Type:</div></th>
+          <td>
+            <select dojoType="dijit.form.ComboBox" id="type" name="type" 
+                value="" autocomplete="true" hasDownArrow="false">
+              <option></option>
+              <option>CAR</option>
+              <option>EAR</option>
+              <option>WAR</option>
+              <option>JAR</option>
+            </select>
+          </td>
+          <td id="typeHelp">?</td>
+          <div dojoType="dijit.Tooltip" connectId="typeHelp" 
+            label="A module's type is normally either CAR (for a system module) or the file extension for an 
+              application module (ear,war,jar,etc).">
+          </div>
+        </tr>
+      </table>
+    </div>
+
+    <!-- ENTRY FIELD: Hidden Classes, Non Overridable Classes and Inverse Class Loading -->
+    <div dojoType="dijit.TitlePane" title="Class Path Settings" open="false" 
+        style="width:500px; margin:0; padding:0;">
+      <table border="0">
+        <tr>
+          <th colspan="2" align="center"> Classpath Settings:</th>
+          <td></td>
+        </tr>
+        <tr>
+          <th><div align="right">Hidden Classes:</div></th>
+          <td>
+            <input type="text" id="hiddenClasses" name="hiddenClasses"
+              dojoType="dijit.form.ValidationTextBox" trim="true"/>
+          </td>
+          <td id="hiddenClassesHelp">?</td>
+          <div dojoType="dijit.Tooltip" connectId="hiddenClassesHelp" 
+            label="List packages or classes that may be in a parent class loader, but should not be exposed 
+              from there to the Web application. This is typically used when the Web application wants to use a 
+              different version of a library than that of it's parent configuration (or Geronimo itself) uses. 
+              Separate multiple package/class names with a semicolon ';'">
+          </div>
+        </tr>
+        <tr>
+          <th><div align="right">Non Overridable Classes:</div></th>
+          <td>
+            <input type="text" id="nonOverridableClasses" name="nonOverridableClasses" 
+              dojoType="dijit.form.ValidationTextBox" trim="true"/>
+          </td>
+          <td id="nonOverridableClassesHelp">?</td>
+          <div dojoType="dijit.Tooltip" connectId="nonOverridableClassesHelp" 
+            label="List packages or classes that the Web application should always load from a parent class 
+              loader, and never load from WEB-INF/lib or WEB-INF/classes. This might be used to force a Web 
+              application to share the same instance of a common library with other Web applications, even if 
+              they each include it in their own WAR. Separate multiple package/class names with a semicolon ';'">
+          </div>
+        </tr>
+        <tr>
+          <th><div align="right">Inverse Class Loading:</div></th>
+          <td>
+            <input type="checkBox" name="inverseClassLoading" id="inverseClassLoading" value="true" 
+              dojoType="dijit.form.CheckBox" />
+          </td>
+          <td id="inverseClassLoadingHelp">?</td>
+          <div dojoType="dijit.Tooltip" connectId="inverseClassLoadingHelp" 
+            label="Normally (if this element is not checked), the module's class loader will work normally - 
+              classes will be loaded from the parent class loader if available before checking the current class 
+              loader. If this element is checked, that behavior is reversed and the current class loader will 
+              always be checked first before looking in the parent class loader. This is often enabled to give 
+              the JARs in WEB-INF/lib precedence over anything that might be in a parent class loader.">
+          </div>
+        </tr>
+      </table>
+    </div>
+
+    <!-- Dependencies -->
+    <div dojoType="dijit.TitlePane" title="Dependencies" open="false" 
+        style="width:500px; margin:0; padding:0;">
+      <table border="0">
+        <tr>
+          <th colspan="2" align="center"> Dependencies: <i id="dependenciesHelp">?</i></th>
+          <div dojoType="dijit.Tooltip" connectId="dependenciesHelp"
+            label="All the modules available in the server repository are shown below. Select the ones on which 
+            your web-application is dependent. Default selections should be sufficient in most scenarios.">
+          </div>
+        </tr>
+        <tr>
+          <td colspan="2">
+            <div id=dependenciesTree>Dependencies tree goes here</div>
+          </td>
+          <td></td>
+        </tr>
+        <tr>
+          <td>Add Dependency:</td>
+          <td>
+            <select dojoType="dijit.form.FilteringSelect" autocomplete="true" value=" " 
+                onChange="addNewDependency">
+              <option value=" "> </option>
+              <c:forEach var="commonLib" items="${commonLibs}">
+                <option value="${commonLib}">${commonLib}</option>
+              </c:forEach>
+            </select>
+          </td>
+        </tr>
+      </table>
+    </div>
+
+      <CENTER>
+        <!-- Save button -->
+        <button dojoType="dijit.form.Button" iconClass="dijitEditorIcon dijitEditorIconSave" type="submit">
+          Save
+        </button>
+      </CENTER>
+    </form>
+  </div>
+
+  <div id="references" dojoType="dijit.layout.ContentPane" title="References">
+    <div dojoType="dijit.layout.SplitContainer" orientation="horizontal" sizerWidth="7"
+        activeSizing="true" style="border: 1px solid #bfbfbf;">
+      <div dojoType="dijit.layout.ContentPane" sizeMin="100" sizeShare="20">
+        <div id=referencesTreeHolder>EAR tree goes here</div>
+      </div>
+      <div dojoType="dijit.layout.ContentPane" sizeMin="200" sizeShare="80">
+        Editors for references go here
+      </div>
+    </div>
+  </div>
+  <div id="security" dojoType="dijit.layout.ContentPane" title="Security">
+    <div dojoType="dijit.layout.SplitContainer" orientation="horizontal" sizerWidth="7"
+        activeSizing="true" style="border: 1px solid #bfbfbf;">
+      <div dojoType="dijit.layout.ContentPane" sizeMin="100" sizeShare="20">
+        <div id=securityTreeHolder>EAR tree goes here</div>
+      </div>
+      <div dojoType="dijit.layout.ContentPane" sizeMin="200" sizeShare="80">
+        Editors for security go here
+      </div>
+    </div>
+  </div>
+  <div id="generatedPlan" dojoType="dijit.layout.ContentPane" title="Generated Plan">
+    <textarea rows="30" cols="85" name="deploymentPlan">${data.deploymentPlan}</textarea>
+    <!-- <textarea id="generatedPlanDisplayer" dojoType="dijit.form.Textarea" style="width:600px">${data.deploymentPlan}</textarea> -->
+  </div>
+</div>
+</div>

Propchange: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/enterpriseApp.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/enterpriseApp.jsp
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/enterpriseApp.jsp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/environment.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/environment.jsp?rev=654200&r1=654199&r2=654200&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/environment.jsp (original)
+++ geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/environment.jsp Wed May  7 11:17:09 2008
@@ -39,7 +39,7 @@
   <!-- ENTRY FIELD: Context Root -->
   <tr>
     <th><div align="right">Web Context Root:</div></th>
-    <td><input name="contextRoot" type="text" size="25" value="${data.contextRoot}" /></td>
+    <td><input name="contextRoot" type="text" size="25" value="${data.webApp.contextRoot}" /></td>
   </tr>
   <tr>
     <td></td>
@@ -59,7 +59,7 @@
   </tr>
   <tr>
     <th><div align="right">Group Id:</div></th>
-    <td><input name="groupId" type="text" size="25" value="${data.groupId}" /></td>
+    <td><input name="groupId" type="text" size="25" value="${data.webApp.environment.moduleId.groupId}" /></td>
   </tr>
   <tr>
     <td></td>
@@ -68,7 +68,7 @@
   </tr>
   <tr>
     <th><div align="right">Artifact Id:</div></th>
-    <td><input name="artifactId" type="text" size="25" value="${data.artifactId}" /></td>
+    <td><input name="artifactId" type="text" size="25" value="${data.webApp.environment.moduleId.artifactId}" /></td>
   </tr>
   <tr>
     <td></td>
@@ -76,7 +76,7 @@
   </tr>
   <tr>
     <th><div align="right">Version:</div></th>
-    <td><input name="version" type="text" size="25" value="${data.version}" /></td>
+    <td><input name="version" type="text" size="25" value="${data.webApp.environment.moduleId.version}" /></td>
   </tr>
   <tr>
     <td></td>
@@ -84,7 +84,7 @@
   </tr>
   <tr>
     <th><div align="right">Type:</div></th>
-    <td><input name="type" type="text" size="25" value="${data.type}" /></td>
+    <td><input name="type" type="text" size="25" value="${data.webApp.environment.moduleId.type}" /></td>
   </tr>
   <tr>
     <td></td>
@@ -98,7 +98,7 @@
   </tr>
   <tr>
     <th><div align="right">Hidden Classes:</div></th>
-    <td><input name="hiddenClasses" type="text" size="25" value="${data.hiddenClasses}" /></td>
+    <td><input name="hiddenClasses" type="text" size="25" value="${data.environmentConfig.hiddenClassesString}" /></td>
   </tr>
   <tr>
     <td></td>
@@ -109,7 +109,7 @@
   </tr>
   <tr>
     <th><div align="right">Non Overridable Classes:</div></th>
-    <td><input name="nonOverridableClasses" type="text" size="25" value="${data.nonOverridableClasses}" /></td>
+    <td><input name="nonOverridableClasses" type="text" size="25" value="${data.environmentConfig.nonOverridableClassesString}" /></td>
   </tr>
   <tr>
     <td></td>
@@ -121,7 +121,7 @@
   <tr>
     <th><div align="right">Inverse Class Loading:</div></th>
     <td><input name="inverseClassLoading" type="checkbox" value="true" 
-      <c:if test="${data.inverseClassLoading}">CHECKED </c:if> /></td>
+      <c:if test="${data.environmentConfig.inverseClassLoading}">CHECKED </c:if> /></td>
   </tr>
   <tr>
     <td></td>

Modified: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/references.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/references.jsp?rev=654200&r1=654199&r2=654200&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/references.jsp (original)
+++ geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/view/configcreator/references.jsp Wed May  7 11:17:09 2008
@@ -144,7 +144,7 @@
 <input type="hidden" name="mode" value="references-after" />
 
 <!-- ENTRY FIELD: EJB References -->
-<c:if test="${!empty(data.ejbRefs)}">
+<c:if test="${!empty(data.webApp.ejbRefArray)}">
   <p><b>EJB References:</b></p>
   <table border="0" width="100%">
     <tr>
@@ -152,7 +152,7 @@
       <th class="DarkBackground" align="center">EJBs Deployed</th>
     </tr>
     <c:set var="backgroundClass" value='MediumBackground'/>
-    <c:forEach var="refData" items="${data.ejbRefs}" varStatus="status">
+    <c:forEach var="ejbRef" items="${data.webApp.ejbRefArray}" varStatus="status">
       <c:choose>
         <c:when test="${backgroundClass == 'MediumBackground'}" >
           <c:set var="backgroundClass" value='LightBackground'/>
@@ -161,10 +161,10 @@
           <c:set var="backgroundClass" value='MediumBackground'/>
         </c:otherwise>
       </c:choose>
-      <input type="hidden" name="ejbRef.${status.index}.refName" value="${refData.refName}" />
+      <input type="hidden" name="ejbRef.${status.index}.refName" value="${ejbRef.refName}" />
       <tr>
         <td class="${backgroundClass}">
-          <div align="right">${refData.refName}</div>
+          <div align="right">${ejbRef.refName}</div>
         </td>
         <td class="${backgroundClass}">
           <select name="ejbRef.${status.index}.refLink">
@@ -179,7 +179,7 @@
 </c:if>
 
 <!-- ENTRY FIELD: EJB Local References -->
-<c:if test="${!empty(data.ejbLocalRefs)}">
+<c:if test="${!empty(data.webApp.ejbLocalRefArray)}">
   <p><b>EJB Local References:</b></p>
   <table border="0" width="100%">
     <tr>
@@ -187,7 +187,7 @@
       <th class="DarkBackground" align="center">EJBs Deployed</th>
     </tr>
     <c:set var="backgroundClass" value='MediumBackground'/>
-    <c:forEach var="refData" items="${data.ejbLocalRefs}" varStatus="status">
+    <c:forEach var="ejbLocalRef" items="${data.webApp.ejbLocalRefArray}" varStatus="status">
       <c:choose>
         <c:when test="${backgroundClass == 'MediumBackground'}" >
           <c:set var="backgroundClass" value='LightBackground'/>
@@ -196,10 +196,10 @@
           <c:set var="backgroundClass" value='MediumBackground'/>
         </c:otherwise>
       </c:choose>
-      <input type="hidden" name="ejbLocalRef.${status.index}.refName" value="${refData.refName}" />
+      <input type="hidden" name="ejbLocalRef.${status.index}.refName" value="${ejbLocalRef.refName}" />
       <tr>
         <td class="${backgroundClass}">
-          <div align="right">${refData.refName}</div>
+          <div align="right">${ejbLocalRef.refName}</div>
         </td>
         <td class="${backgroundClass}">
           <select name="ejbLocalRef.${status.index}.refLink">
@@ -214,7 +214,7 @@
 </c:if>
 
 <!-- ENTRY FIELD: JDBC Connection Pool References -->
-<c:if test="${!empty(data.jdbcPoolRefs)}">
+<c:if test="${!empty(data.jndiRefsConfig.jdbcPoolRefs)}">
   <p><b>JDBC Pool References:</b></p>
   <table border="0" width="100%">
     <tr>
@@ -222,7 +222,7 @@
       <th class="DarkBackground" align="center">JDBC Pools</th>
     </tr>
     <c:set var="backgroundClass" value='MediumBackground'/>
-    <c:forEach var="refData" items="${data.jdbcPoolRefs}" varStatus="status">
+    <c:forEach var="refData" items="${data.jndiRefsConfig.jdbcPoolRefs}" varStatus="status">
       <c:choose>
         <c:when test="${backgroundClass == 'MediumBackground'}" >
           <c:set var="backgroundClass" value='LightBackground'/>
@@ -249,7 +249,7 @@
 </c:if>
 
 <!-- ENTRY FIELD: JMS Connection Factory References -->
-<c:if test="${!empty(data.jmsConnectionFactoryRefs)}">
+<c:if test="${!empty(data.jndiRefsConfig.jmsConnectionFactoryRefs)}">
   <p><b>JMS Connection Factory References:</b></p>
   <table border="0" width="100%">
     <tr>
@@ -257,7 +257,7 @@
       <th class="DarkBackground" align="center">JMS Factories</th>
     </tr>
     <c:set var="backgroundClass" value='MediumBackground'/>
-    <c:forEach var="refData" items="${data.jmsConnectionFactoryRefs}" varStatus="status">
+    <c:forEach var="refData" items="${data.jndiRefsConfig.jmsConnectionFactoryRefs}" varStatus="status">
       <c:choose>
         <c:when test="${backgroundClass == 'MediumBackground'}" >
           <c:set var="backgroundClass" value='LightBackground'/>
@@ -284,7 +284,7 @@
 </c:if>
 
 <!-- ENTRY FIELD: JMS Destination References -->
-<c:if test="${!empty(data.jmsDestinationRefs) || !empty(data.messageDestinations)}">
+<c:if test="${!empty(data.webApp.resourceEnvRefArray) || !empty(data.webApp.messageDestinationArray)}">
   <p><b>JMS Destination References:</b></p>
   <table border="0" width="100%">
     <tr>
@@ -292,7 +292,7 @@
       <th class="DarkBackground" align="center">JMS Destinations</th>
     </tr>
     <c:set var="backgroundClass" value='MediumBackground'/>
-    <c:forEach var="refData" items="${data.jmsDestinationRefs}" varStatus="status">
+    <c:forEach var="resourceEnvRef" items="${data.webApp.resourceEnvRefArray}" varStatus="status">
       <c:choose>
         <c:when test="${backgroundClass == 'MediumBackground'}" >
           <c:set var="backgroundClass" value='LightBackground'/>
@@ -301,23 +301,23 @@
           <c:set var="backgroundClass" value='MediumBackground'/>
         </c:otherwise>
       </c:choose>
-      <input type="hidden" name="jmsDestinationRef.${status.index}.refName" value="${refData.refName}" />
+      <input type="hidden" name="jmsDestinationRef.${status.index}.refName" value="${resourceEnvRef.refName}" />
       <tr>
         <td class="${backgroundClass}">
-          <div align="right">${refData.refName}</div>
+          <div align="right">${resourceEnvRef.refName}</div>
         </td>
         <td class="${backgroundClass}">
           <select name="jmsDestinationRef.${status.index}.refLink">
             <c:forEach var="jmsDestination" items="${deployedJmsDestinations}">
               <option value="${jmsDestination.patternName}" 
-                <c:if test="${fn:startsWith(jmsDestination.displayName, refData.refLink)}"> selected="selected"</c:if>
+                <c:if test="${fn:startsWith(jmsDestination.displayName, resourceEnvRef.messageDestinationLink)}"> selected="selected"</c:if>
               >${jmsDestination.displayName}</option>
             </c:forEach>
           </select>
         </td>
       </tr>
     </c:forEach>
-    <c:forEach var="refData" items="${data.messageDestinations}" varStatus="status">
+    <c:forEach var="messageDestination" items="${data.webApp.messageDestinationArray}" varStatus="status">
       <c:choose>
         <c:when test="${backgroundClass == 'MediumBackground'}" >
           <c:set var="backgroundClass" value='LightBackground'/>
@@ -326,16 +326,16 @@
           <c:set var="backgroundClass" value='MediumBackground'/>
         </c:otherwise>
       </c:choose>
-      <input type="hidden" name="messageDestination.${status.index}.refName" value="${refData.refName}" />
+      <input type="hidden" name="messageDestination.${status.index}.refName" value="${messageDestination.messageDestinationName}" />
       <tr>
         <td class="${backgroundClass}">
-          <div align="right">${refData.refName}</div>
+          <div align="right">${messageDestination.messageDestinationName}</div>
         </td>
         <td class="${backgroundClass}">
           <select name="messageDestination.${status.index}.refLink">
             <c:forEach var="jmsDestination" items="${deployedJmsDestinations}">
               <option value="${jmsDestination.patternName}" 
-                <c:if test="${fn:startsWith(jmsDestination.displayName, refData.refLink)}"> selected="selected"</c:if>
+                <c:if test="${fn:startsWith(jmsDestination.displayName, messageDestination.adminObjectLink)}"> selected="selected"</c:if>
               >${jmsDestination.displayName}</option>
             </c:forEach>
           </select>
@@ -346,7 +346,7 @@
 </c:if>
 
 <!-- ENTRY FIELD: JavaMail Session References -->
-<c:if test="${!empty(data.javaMailSessionRefs)}">
+<c:if test="${!empty(data.jndiRefsConfig.javaMailSessionRefs)}">
   <p><b>JavaMail Session References:</b></p>
   <table border="0" width="100%">
     <tr>
@@ -354,7 +354,7 @@
       <th class="DarkBackground" align="center">Mail Sessions Available</th>
     </tr>
     <c:set var="backgroundClass" value='MediumBackground'/>
-    <c:forEach var="refData" items="${data.javaMailSessionRefs}" varStatus="status">
+    <c:forEach var="refData" items="${data.jndiRefsConfig.javaMailSessionRefs}" varStatus="status">
       <c:choose>
         <c:when test="${backgroundClass == 'MediumBackground'}" >
           <c:set var="backgroundClass" value='LightBackground'/>
@@ -381,7 +381,7 @@
 </c:if>
 
 <!-- ENTRY FIELD: Web Service References -->
-<c:if test="${!empty(data.webServiceRefs)}">
+<c:if test="${!empty(data.webApp.serviceRefArray)}">
   <p><b>Web Service References:</b></p>
   <p>Service references declared in your application are shown below to the left. If the WSDL doesn't contain 
   the port information to contact the service or if that information is ambiguous, then resolve the service-ref
@@ -398,7 +398,7 @@
     </thead>
     <tfoot></tfoot>
     <c:set var="backgroundClass" value='MediumBackground'/>
-    <c:forEach var="serviceRef" items="${data.webServiceRefs}" varStatus="status">
+    <c:forEach var="serviceRef" items="${data.webApp.serviceRefArray}" varStatus="status">
       <c:choose>
         <c:when test="${backgroundClass == 'MediumBackground'}" >
           <c:set var="backgroundClass" value='LightBackground'/>

Modified: geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/web.xml?rev=654200&r1=654199&r2=654200&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/web.xml (original)
+++ geronimo/server/trunk/plugins/plancreator/plancreator-portlets/src/main/webapp/WEB-INF/web.xml Wed May  7 11:17:09 2008
@@ -30,11 +30,36 @@
         <load-on-startup>1</load-on-startup>
     </servlet>
 
+    <servlet>
+      <servlet-name>dwr-invoker</servlet-name>
+      <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
+      <init-param>
+        <param-name>classes</param-name>
+        <param-value>
+            org.apache.geronimo.console.configcreator.configData.EARHelper,
+            org.apache.geronimo.console.configcreator.configData.EARHelper$EarJsonTree,
+            org.apache.geronimo.console.configcreator.configData.EARHelper$TreeNode,
+            org.apache.geronimo.console.configcreator.configData.EARHelper$TreeFolder,
+            org.apache.geronimo.console.configcreator.configData.EARHelper$EnvironmentJson,
+            org.apache.geronimo.console.configcreator.configData.EARHelper$DependenciesJsonTree
+        </param-value>
+      </init-param>
+      <init-param>
+          <param-name>activeReverseAjaxEnabled</param-name>
+          <param-value>true</param-value>
+      </init-param>
+    </servlet>
+
     <servlet-mapping>
         <servlet-name>PlanCreator</servlet-name>
         <url-pattern>/PlutoInvoker/PlanCreator</url-pattern>
     </servlet-mapping>
 
+    <servlet-mapping>
+        <servlet-name>dwr-invoker</servlet-name>
+        <url-pattern>/dwr5/*</url-pattern>
+    </servlet-mapping>
+
     <security-constraint>
         <web-resource-collection>
             <web-resource-name>plan-creator</web-resource-name>
@@ -55,4 +80,21 @@
         <role-name>admin</role-name>
     </security-role>
 
+    <!--
+    For security reasons requests to the dwr servlet go through
+    the "/console" web-app context. The purpose of dwr-filter is
+    to map the attributes such as pathInfo, requestURI, etc. of
+    the original request into the request that is delivered to
+    the dwr-invoker servlet.  The dwr-invoker servlet uses those
+    attributes to create URLs that it sends back to the client.
+    -->
+    <filter>
+        <filter-name>dwr-filter</filter-name>
+        <filter-class>org.apache.geronimo.console.servlet.ForwardDispatchFilter</filter-class>
+    </filter>
+    <filter-mapping>
+        <filter-name>dwr-filter</filter-name>
+        <servlet-name>dwr-invoker</servlet-name>
+        <dispatcher>FORWARD</dispatcher>
+    </filter-mapping>
 </web-app>



Mime
View raw message