Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 2008-2012 Oracle and/or its affiliates. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License.  You can
  * obtain a copy of the License at
  * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
  * or packager/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  *
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at packager/legal/LICENSE.txt.
  *
  * GPL Classpath Exception:
  * Oracle designates this particular file as subject to the "Classpath"
  * exception as provided by Oracle in the GPL Version 2 section of the License
  * file that accompanied this code.
  *
  * Modifications:
  * If applicable, add the following below the License Header, with the fields
  * enclosed by brackets [] replaced by your own identifying information:
  * "Portions Copyright [year] [name of copyright owner]"
  *
  * Contributor(s):
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  */
 
 package com.sun.enterprise.web;
 
 
 import java.io.File;
Web module deployer.

Author(s):
jluehe
Jerome Dochez
 
 
     private static final Logger logger = .....;
 
     private static final ResourceBundle rb = .getResourceBundle();
 
     @LogMessageInfo(
             message = "Unable to load configuration of web module [{0}]",
             level = "WARNING")
     public static final String UNABLE_TO_LOAD_CONFIG = "AS-WEB-00329";
 
     @LogMessageInfo(
             message = "Failed to precompile JSP pages of web module [{0}]",
             level = "SEVERE",
             cause = "An exception occurred precompiling JSP pages",
             action = "Check the exception for the error")
     public static final String JSPC_FAILED = "AS-WEB-00330";
 
     @Inject
     ServerContext sc;
 
     @Inject
     Domain domain;
 
     @Inject
Constructor
    public WebDeployer() {
    }

    
Returns the meta data assocated with this Deployer

Returns:
the meta data for this Deployer
    @Override
    public MetaData getMetaData() {
        return new MetaData(false,
                new Class[] {WebBundleDescriptorImpl.class}, new Class[] {Application.class});
    }
    public <V> V loadMetaData(Class<V> typeDeploymentContext dc) {
        if (wbd.isStandalone()) {
            // the context root should be set using the following precedence
            // for standalone web module
            // 1. User specified value through DeployCommand
            // 2. Context root value specified through sun-web.xml
            // 3. Context root from last deployment if applicable
            // 4. The default context root which is the archive name 
            //    minus extension
            DeployCommandParameters params = dc.getCommandParameters(DeployCommandParameters.class);
            String contextRoot = params.contextroot;
            if(contextRoot==null) {
                contextRoot = wbd.getContextRoot();
                if("".equals(contextRoot))
                    contextRoot = null;
            }
            if(contextRoot==null) {
                contextRoot = params.previousContextRoot;
            }
            if(contextRoot==null)
                contextRoot = dc.getOriginalSource().getName();
            if (!contextRoot.startsWith("/")) {
                contextRoot = "/" + contextRoot;
            }
            wbd.setContextRoot(contextRoot);
            wbd.setName(params.name());
            // set the context root to deployment context props so this value
            // will be persisted in domain.xml
            dc.getAppProps().setProperty(.contextRoot);
        } 
        return null;
    }
        
        WebModuleConfig wmInfo = new WebModuleConfig();
        
        try {
            DeployCommandParameters params = dc.getCommandParameters(DeployCommandParameters.class);
            wmInfo.setDescriptor(dc.getModuleMetaData(WebBundleDescriptorImpl.class));
            wmInfo.setVirtualServers(params.virtualservers);
            wmInfo.setLocation(dc.getSourceDir());
            wmInfo.setObjectType(dc.getAppProps().getProperty(.));
        } catch (Exception ex) {
            String msg = .getString();
            msg = MessageFormat.format(msgwmInfo.getName());
            .log(.msgex);
        }
        
        return wmInfo;
        
    }
    
    @Override
    protected void generateArtifacts(DeploymentContext dc
        throws DeploymentException {
        if (params.precompilejsp) {
            //call JSPCompiler... 
            runJSPC(dc);
        }
    }
         
    @Override
    public WebApplication load(WebContainer containerDeploymentContext dc) {
        super.load(containerdc);
        WebBundleDescriptorImpl wbd = dc.getModuleMetaData(
            WebBundleDescriptorImpl.class);
        if (wbd != null) {
            wbd.setClassLoader(dc.getClassLoader());
        }
        WebModuleConfig wmInfo = loadWebModuleConfig(dc);
        WebApplication webApp = new WebApplication(containerwmInfo,
                new ApplicationConfigInfo(dc.getAppProps()));
        return webApp;
    }
    
    public void unload(WebApplication webApplicationDeploymentContext dc) {
    }
        
    
This method setups the in/outDir and classpath and invoke JSPCompiler.

Parameters:
dc - DeploymentContext to get command parameters and source directory and compile jsp directory.
Throws:
org.glassfish.deployment.common.DeploymentException if JSPCompiler is unsuccessful.
    void runJSPC(final DeploymentContext dcthrows DeploymentException {
        final WebBundleDescriptorImpl wbd = dc.getModuleMetaData(
            WebBundleDescriptorImpl.class);
        try {
            final File outDir = dc.getScratchDir(.);
            final File inDir  = dc.getSourceDir();
            StringBuilder classpath = new StringBuilder(
                super.getCommonClassPath());
            classpath.append(.);
            classpath.append(ASClassLoaderUtil.getModuleClassPath(
                    .getDefaultServices(),
                    wbd.getApplication().getName(), 
                    dc.getCommandParameters(
                        DeployCommandParameters.class).)); 
            JSPCompiler.compile(inDiroutDirwbdclasspath.toString(), );
        } catch (DeploymentException de) {
            String msg = .getString();
            msg = MessageFormat.format(msgwbd.getApplication().getName());
            .log(.msgde);
            throw de;
        }
    }
New to GrepCode? Check out our FAQ X