|
Glassfish example source code file (JavaEEDeployer.java)
The Glassfish JavaEEDeployer.java source code/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2008-2010 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 org.glassfish.javaee.core.deployment; import org.glassfish.api.deployment.*; import org.glassfish.api.container.Container; import org.glassfish.api.admin.ServerEnvironment; import org.glassfish.api.deployment.archive.ReadableArchive; import org.glassfish.internal.data.ApplicationInfo; import org.glassfish.internal.data.ApplicationRegistry; import org.glassfish.internal.api.JAXRPCCodeGenFacade; import org.glassfish.loader.util.ASClassLoaderUtil; import com.sun.enterprise.deployment.Application; import com.sun.enterprise.deployment.BundleDescriptor; import com.sun.enterprise.deployment.util.ApplicationVisitor; import org.glassfish.deployment.common.DeploymentException; import org.glassfish.deployment.common.DeploymentProperties; import com.sun.enterprise.config.serverbeans.ServerTags; import org.jvnet.hk2.annotations.Inject; import org.jvnet.hk2.component.Habitat; import java.io.File; import java.io.IOException; import java.util.jar.Manifest; import java.util.jar.Attributes; import java.util.List; import java.net.URL; /** * Convenient superclass for JavaEE Deployer implementations. * */ public abstract class JavaEEDeployer<T extends Container, U extends ApplicationContainer> implements Deployer<T, U> { @Inject protected ServerEnvironment env; @Inject protected ApplicationRegistry appRegistry; @Inject protected Habitat habitat; @Inject(name="application_undeploy", optional=true) protected ApplicationVisitor undeploymentVisitor=null; private static final String APPLICATION_TYPE = "Application-Type"; /** * Returns the meta data assocated with this Deployer * * @return the meta data for this Deployer */ public MetaData getMetaData() { return new MetaData(false, null, null); } /** * Returns the classpath associated with this module * Can be used to compile generated cmp classes, * rmi stubs etc. * * @return the classpath for this module */ protected String getModuleClassPath(DeploymentContext ctx) { // get the base module classpath // this includes the system classpath and deploy time lib libraries StringBuilder classpath = new StringBuilder (ASClassLoaderUtil.getModuleClassPath(habitat, ctx)); try { // add the module dir classpath.append(ctx.getSourceDir().toURI().getPath()); classpath.append(File.pathSeparator); // add the stubs dir classpath.append(ctx.getScratchDir("ejb").toURI().getPath()); classpath.append(File.pathSeparator); // add the ear lib libraries if it's ear Application app = ctx.getModuleMetaData(Application.class); if (!app.isVirtual()) { ReadableArchive parentArchive = ctx.getSource().getParentArchive(); String compatProp = ctx.getAppProps().getProperty( DeploymentProperties.COMPATIBILITY); List<URL> earLibURLs = ASClassLoaderUtil.getAppLibDirLibrariesAsList(new File( parentArchive.getURI()), app.getLibraryDirectory(), compatProp); for (URL url : earLibURLs) { classpath.append(url.toURI().getPath()); classpath.append(File.pathSeparator); } } } catch (Exception e) { // log a warning } return classpath.toString(); } /* * Gets the common instance classpath, which is composed of the * pathnames of domain_root/lib/classes and * domain_root/lib/[*.jar|*.zip] (in this * order), separated by the path-separator character. * @return The instance classpath */ protected String getCommonClassPath() { StringBuffer sb = new StringBuffer(); File libDir = env.getLibPath(); String libDirPath = libDir.getAbsolutePath(); // Append domain_root/lib/classes sb.append(libDirPath + File.separator + "classes"); sb.append(File.pathSeparator); // Append domain_root/lib/[*.jar|*.zip] String[] files = libDir.list(); if (files != null) { for (int i=0; i<files.length; i++) { if (files[i].endsWith(".jar") || files[i].endsWith(".zip")) { sb.append(libDirPath + File.separator + files[i]); sb.append(File.pathSeparator); } } } return sb.toString(); } /** * Loads the meta date associated with the application. * * @param type type of metadata that this deployer has declared providing. * @param dc deployment context */ public <V> V loadMetaData(Class Other Glassfish examples (source code examples)Here is a short list of links related to this Glassfish JavaEEDeployer.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.