Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.codehaus.mojo.gwt.utils;
  
  /*
   * 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.
  */
 
 import java.io.File;
 import java.net.URL;
 import java.util.List;
 import java.util.Set;
 

Author(s):
Olivier Lamy
Since:
2.1.0-1
 
 public class DefaultGwtModuleReader
     implements GwtModuleReader
 {
     public static final String GWT_MODULE_EXTENSION = ".gwt.xml";
 
     private MavenProject mavenProject;
 
 
     private Log log;
 
     public DefaultGwtModuleReaderMavenProject mavenProjectLog logClasspathBuilder classpathBuilder )
     {
         this. = mavenProject;
         this. = log;
         this. = classpathBuilder;
     }
 
     @SuppressWarnings("unchecked")
     public List<StringgetGwtModules()
     {
         //Use a Set to avoid duplicate when user set src/main/java as <resource>
         Set<Stringmods = new HashSet<String>();
 
         Collection<StringsourcePaths = (Collection<String>) .getCompileSourceRoots();
         for ( String sourcePath : sourcePaths )
         {
             File sourceDirectory = new FilesourcePath );
             if ( sourceDirectory.exists() )
             {
                 DirectoryScanner scanner = new DirectoryScanner();
                 scanner.setBasedirsourceDirectory.getAbsolutePath() );
                 scanner.setIncludesnew String[] { "**/*" + . } );
                 scanner.scan();
 
                 mods.addAll( Arrays.asListscanner.getIncludedFiles() ) );
             }
         }
 
         Collection<Resourceresources = (Collection<Resource>) .getResources();
         for ( Resource resource : resources )
         {
             File resourceDirectoryFile = new Fileresource.getDirectory() );
             if ( !resourceDirectoryFile.exists() )
             {
                 continue;
             }
             DirectoryScanner scanner = new DirectoryScanner();
             scanner.setBasedirresource.getDirectory() );
             scanner.setIncludesnew String[] { "**/*" + . } );
            scanner.scan();
            mods.addAll( Arrays.asListscanner.getIncludedFiles() ) );
        }
        if ( mods.isEmpty() )
        {
            .warn"GWT plugin is configured to detect modules, but none were found." );
        }
        List<Stringmodules = new ArrayList<String>( mods.size() );
        for ( String fileName : mods )
        {
            String path = fileName.substring( 0,
                                              fileName.length() - ..length() );
            modules.addpath.replace.'.' ) );
        }
        if ( modules.size() > 0 )
        {
            .info"auto discovered modules " + modules );
        }
        return modules;
    }
    public GwtModule readModuleString name )
        throws GwtModuleReaderException
    {
        String modulePath = name.replace'.''/' ) + ;
        Collection<StringsourceRoots = .getCompileSourceRoots();
        for ( String sourceRoot : sourceRoots )
        {
            File root = new FilesourceRoot );
            File xml = new FilerootmodulePath );
            if ( xml.exists() )
            {
                .debug"GWT module " + name + " found in " + root );
                return readModulenamexml );
            }
        }
        Collection<Resourceresources = (Collection<Resource>) .getResources();
        for ( Resource resource : resources )
        {
            File root = new Fileresource.getDirectory() );
            File xml = new FilerootmodulePath );
            if ( xml.exists() )
            {
                .debug"GWT module " + name + " found in " + root );
                return readModulenamexml );
            }
        }
        try
        {
            Collection<Fileclasspath = getClasspath. );
            URL[] urls = new URL[classpath.size()];
            int i = 0;
            for ( File file : classpath )
            {
                urls[i++] = file.toURI().toURL();
            }
            InputStream stream = new URLClassLoaderurls ).getResourceAsStreammodulePath );
            if ( stream != null )
            {
                return readModulenamestream );
            }
        }
        catch ( MalformedURLException e )
        {
            // ignored;
        }
        catch ( ClasspathBuilderException e )
        {
            throw new GwtModuleReaderExceptione.getMessage(), e );
        }
        throw new GwtModuleReaderException"GWT Module " + name + " not found in project sources or resources." );
    }
    private GwtModule readModuleString nameFile file )
        throws GwtModuleReaderException
    {
        try
        {
            return readModulenamenew FileInputStreamfile ) );
        }
        catch ( FileNotFoundException e )
        {
            throw new GwtModuleReaderException"Failed to read module file " + file );
        }
    }
    private GwtModule readModuleString nameInputStream xml )
        throws GwtModuleReaderException
    {
        try
        {
            Xpp3Dom dom = Xpp3DomBuilder.build( ReaderFactory.newXmlReaderxml ) );
            return new GwtModulenamedomthis );
        }
        catch ( Exception e )
        {
            String error = "Failed to read module XML file " + xml;
            .errorerror );
            throw new GwtModuleReaderExceptionerrore );
        }
    }
    public Collection<FilegetClasspathString scope )
        throws ClasspathBuilderException
    {
        if ( .isDebugEnabled() )
        {
            .debug"GWT SDK execution classpath :" );
            for ( File f : files )
            {
                .debug"   " + f.getAbsolutePath() );
            }
        }
        return files;
    }
New to GrepCode? Check out our FAQ X