Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.codehaus.mojo.gwt;
  
  /*
   * 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;
 
Add support for GWT Modules.

Search and read the gwt.xml module files to detect project structure.

Author(s):
Nicolas De Loof
Version:
$Id$
 
 public abstract class AbstractGwtModuleMojo
     extends AbstractGwtMojo
     implements GwtModuleReader
 {
    
 
     public static final String GWT_MODULE_EXTENSION = .;

    
The project GWT modules. If not set, the plugin will scan the project for .gwt.xml files.

Parameter:
Alias:
compileTargets
 
     private String[] modules;

    
A single GWT module. Shortcut for <modules> or option to specify a single module from command line

Parameter:
expression="${gwt.module}"
 
     private String module;
 
     public List<StringgetGwtModules()
     {
         String[] modules = getModules();
         return ArrayUtils.isEmptymodules )? new ArrayList<String>(0) : Arrays.asListmodules );
     }
    
    
Return the configured modules or scan the project source/resources folder to find them

Returns:
the modules
 
     @SuppressWarnings"unchecked" )
     // FIXME move to DefaultGwtModuleReader !
     public String[] getModules()
     {
         // module has higher priority if set by expression
         if (  != null )
         {
             return new String[] {  };
         }
         if (  == null )
        {
            //Use a Set to avoid duplicate when user set src/main/java as <resource>
            Set<Stringmods = new HashSet<String>();
            Collection<StringsourcePaths = (Collection<String>) getProject().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>) getProject().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() )
            {
                getLog().warn"GWT plugin is configured to detect modules, but none were found." );
            }
             = new String[mods.size()];
            int i = 0;
            for ( String fileName : mods )
            {
                String path = fileName.substring( 0, fileName.length() - .length() );
                [i++] = path.replace.'.' );
            }
            if ( . > 0 )
            {
                getLog().info"auto discovered modules " + Arrays.asList ) );
            }
        }
        return ;
    }
    public GwtModule readModuleString name )
        throws GwtModuleReaderException
    {
        String modulePath = name.replace'.''/' ) + ;
        Collection<StringsourceRoots = getProject().getCompileSourceRoots();
        for ( String sourceRoot : sourceRoots )
        {
            File root = new FilesourceRoot );
            File xml = new FilerootmodulePath );
            if ( xml.exists() )
            {
                getLog().debug"GWT module " + name + " found in " + root );
                return readModulenamexml );
            }
        }
        Collection<Resourceresources = (Collection<Resource>) getProject().getResources();
        for ( Resource resource : resources )
        {
            File root = new Fileresource.getDirectory() );
            File xml = new FilerootmodulePath );
            if ( xml.exists() )
            {
                getLog().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 (MojoExecutionException e)
        {
            throw new GwtModuleReaderException(e.getMessage(), e);
        }
        throw new GwtModuleReaderException"GWT Module " + name + " not found in project sources or resources." );
    }
    private GwtModule readModuleString nameFile file )
        throws GwtModuleReaderException
    {
        try
        {
            GwtModule module = readModulenamenew FileInputStreamfile ) );
            module.setSourceFile(file);
            return module;
        }
        catch ( FileNotFoundException e )
        {
            throw new GwtModuleReaderException"Failed to read module file " + file );
        }
    }

    

Parameters:
module2
Returns:
    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;
            getLog().errorerror );
            throw new GwtModuleReaderExceptionerrore );
        }
    }

    

Parameters:
path file to add to the project compile directories
    protected void addCompileSourceRootFile path )
    {
        getProject().addCompileSourceRootpath.getAbsolutePath() );
    }
New to GrepCode? Check out our FAQ X