Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 1997-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 org.glassfish.web.embed.impl;
 
 
 import java.io.File;
 import java.net.URL;
 import java.util.Set;
 

Author(s):
Jerome Dochez
 
 public class EmbeddedWebArchivist extends WebArchivist {
 
     private static final Logger _logger = .....;
 
     @LogMessageInfo(
             message = "Cannot load class {0}",
             level = "FINER")
     public static final String CANNOT_LOAD_CLASS = "AS-WEB-00349";
 
     private final ModuleScanner scanner = new ModuleScanner() {
 
             final Set<Classelements = new HashSet<Class>();
 
             @Override
             public void process(ReadableArchive archiveFileObject bundleDescClassLoader classLoaderParser parser)
                     throws IOException {
                 // in embedded mode, we don't scan archive, we just process all classes.
                 Enumeration<Stringentries = archiveFile.entries();
                 while (entries.hasMoreElements()) {
                     String entry = entries.nextElement();
                     if (entry.endsWith(".class")) {
                         try {
                             .add(classLoader.loadClass(toClassName(entry)));
                         } catch (ClassNotFoundException e) {
                             .log(.,
                                     MessageFormat.format(
                                             .getResourceBundle().getString(), entry),
                                     e);
                         }
                     }
                }
            }
            private String toClassName(String entryName) {
                String name = entryName.substring("WEB-INF/classes/".length(), entryName.length()-".class".length());
                return name.replaceAll("/",".");
            }
            public void process(File archiveFileObject bundleDescClassLoader classLoaderthrows IOException {
            }
            @Override
            public Set getElements() {
                return ;
            }
    };
    static private URL defaultWebXmlLocation = null;
    protected void setDefaultWebXml(URL defaultWebXml) {
         = defaultWebXml;
    }
    @Override
    protected URL getDefaultWebXML() throws IOException {
        if ( != null) {
            return ;
        } else {
            URL defaultWebXml = super.getDefaultWebXML();
            return defaultWebXml == null ? getClass().getClassLoader().getResource(
                    "org/glassfish/web/embed/default-web.xml") : defaultWebXml;
        }
    }
    @Override
                                               ModuleScanner scanner,
                                               ReadableArchive archive)
            throws AnnotationProcessorExceptionIOException {
        // in embedded mode, I ignore all scanners and parse all possible classes.
        if (archive instanceof ScatteredArchive) {
            return super.processAnnotations(bundleDesc, this.archive);
        } else {
            return super.processAnnotations(bundleDescscannerarchive);
        }
    }
New to GrepCode? Check out our FAQ X