Should those directories be captured in something similar to the
BuildDirectories enumeration?  It seems like more than one Mojo will want to
know about the directories to ignore.

-Evan

On Jan 10, 2008 10:22 AM, Shane Isbell <[EMAIL PROTECTED]> wrote:

> The excludes are for Visual Studio generated files which we don't want
> copied: they should be hard-coded. With the flat directory structure, the
> main source files are located in the projectA directory. The test class
> files are located in the projectA/Test directory, so the main processor
> needs to exclude the ./Test, while the test processor needs to copy only
> those files under the ./Test directory.  If we start creating abstract
> mojos, we break encapsulation and just need to be more careful about the
> shared configuration parameters.
>
> Shane
> On Jan 10, 2008 12:54 AM, Evan Worley <[EMAIL PROTECTED]> wrote:
>
> > Ok, sounds fine.  You're the expert :)
> >
> > On the excludes front, it seems the hard coded excludes were just chosen
> > randomly.  Should we have these entries, or rely on the other excludes
> > which
> > come from the pom configuration?
> >
> > -Evan
> >
> > On Jan 9, 2008 8:00 PM, Shane Isbell <[EMAIL PROTECTED]> wrote:
> >
> > > On Jan 9, 2008 7:31 PM, Evan Worley <[EMAIL PROTECTED]> wrote:
> > >
> > > > Right, the AbstractCompilerMojo was based on your CompilerMojo, with
> > the
> > > > unique bits pulled out to be specified by the concrete classes.  The
> > > > setArtifactType was copied to the TestCompilerMojo, and hence
> appeared
> > > to
> > > > be
> > > > the same, but yes this needs to be fixed.  As for the set keyfile,
> > that
> > > > was
> > > > directly from the CompilerMojo, so if it doesn't perform a check,
> then
> > > > that's how I found it.
> > > >
> > > > Abstracting the CompilerMojo and the SourceProcessor was a first
> > attempt
> > > > to
> > > > unify the duplicate work that was being performed, it still needs
> some
> > > > work.  Please feel free to touch it up as you see fit, after all you
> > > wrote
> > > > 90% of the code in there.
> > >
> > >
> > > Okay I'm going to revert back the AbstractCompilerMojo. The primary
> job
> > of
> > > the abstract mojo is to set the CompilerConfig but since we have to
> pass
> > > up
> > > a bunch of those configuration parameters from methods in the concrete
> > > class
> > > to the abstract class, we don't gain anything. All the real work is
> > > handled
> > > by the CSharpCompiler implementation anyway.
> > >
> > > Also the AbstractSourceProcessorMojo uses the same excludes list but
> > since
> > > we are using a flat directory structure, we can't do this. The main
> > > compiler
> > > needs to exclude the entire ./Test directory, while the test compiler
> > > needs
> > > to include only those classes under the ./Test directory.
> > >
> > > Shane
> > >
> > >
> > > >
> > > >
> > > > Thanks for catching these,
> > > > Evan
> > > >
> > > > On Jan 9, 2008 7:25 PM, Shane Isbell <[EMAIL PROTECTED]> wrote:
> > > >
> > > > > If the project type is say dotnet:exe, this code in the
> > > > > AbstractCompilerMojo
> > > > > is going to compile the test library also as a dotnet:exe, when it
> > > > should
> > > > > be
> > > > > compiled to a library.
> > > > >
> > > > >        compilerConfig.setArtifactType(
> > > > >            ArtifactType.valueOf( project.getPackaging().split(
> "[:]"
> > > > > )[1].toUpperCase() ) );
> > > > >
> > > > > Also
> > > > >  keyInfo.setKeyFileUri( keyfile.toURI() );
> > > > >
> > > > > needlessly signs the test artifact.
> > > > >
> > > > > Specifying a single target language within the
> AbstractCompilerMojo
> > a
> > > > > makes
> > > > > it impossible to write the unit tests and main source files in
> > > different
> > > > > languages.
> > > > > Shane
> > > > > On Jan 3, 2008 10:38 PM, <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > > > Author: eworley
> > > > > > Date: Thu Jan  3 22:38:03 2008
> > > > > > New Revision: 608757
> > > > > >
> > > > > > URL: http://svn.apache.org/viewvc?rev=608757&view=rev
> > > > > > Log:
> > > > > > Cleaned up the abstract compiler mojo, base classes now passing
> > > > > > configuration up, this is more flexible and removes the need for
> > > > > extraneous
> > > > > > methods to control config
> > > > > >
> > > > > > Modified:
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>  
> incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AbstractCompilerMojo.java
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>  
> incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>  
> incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java
> > > > > >
> > > > > > Modified:
> > > > > >
> > > > >
> > > >
> > >
> >
> incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AbstractCompilerMojo.java
> > > > > > URL:
> > > > > >
> > > > >
> > > >
> > >
> >
> http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AbstractCompilerMojo.java?rev=608757&r1=608756&r2=608757&view=diff
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> ==============================================================================
> > > > > > ---
> > > > > >
> > > > >
> > > >
> > >
> >
> incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AbstractCompilerMojo.java
> > > > > > (original)
> > > > > > +++
> > > > > >
> > > > >
> > > >
> > >
> >
> incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AbstractCompilerMojo.java
> > > > > > Thu Jan  3 22:38:03 2008
> > > > > > @@ -2,8 +2,6 @@
> > > > > >
> > > > > >  import java.io.File;
> > > > > >  import java.io.IOException;
> > > > > > -import java.net.URI;
> > > > > > -import java.net.URISyntaxException;
> > > > > >
> > > > > >  import org.apache.maven.dotnet.ArtifactType;
> > > > > >  import org.apache.maven.dotnet.InitializationException;
> > > > > > @@ -84,7 +82,9 @@
> > > > > >      *
> > > > > >      * @throws MojoExecutionException
> > > > > >      */
> > > > > > -    protected File compile() throws MojoExecutionException {
> > > > > > +    protected File compile( DotnetCompilerConfig compilerConfig
> )
> > > > > > +        throws MojoExecutionException
> > > > > > +    {
> > > > > >         String outputDir = project.getBuild().getDirectory();
> > > > > >         File sourceDir =
> > > > > >             new File( outputDir, getSourceDirectoryName());
> > > > > > @@ -105,7 +105,7 @@
> > > > > >         }
> > > > > >
> > > > > >         getLog().info( ".NET Vendor: " + vendor );
> > > > > > -        DotnetCompilerConfig compilerConfig =
> > > > > > DotnetCompilerConfig.Factory.createDefaultCompilerConfig();
> > > > > > +
> > > > > >         compilerConfig.setArtifactType(
> > > > > >             ArtifactType.valueOf( project.getPackaging().split(
> > > "[:]"
> > > > > > )[1].toUpperCase() ) );
> > > > > >         compilerConfig.setCompilerPlatformVersion(
> > > > > > DotnetCompilerPlatformVersion.valueFromVersion( frameworkVersion
> )
> > > );
> > > > > > @@ -113,14 +113,7 @@
> > > > > >         KeyInfo keyInfo = KeyInfo.Factory.createDefaultKeyInfo
> ();
> > > > > >         if ( keyfile != null )
> > > > > >         {
> > > > > > -//            try
> > > > > > -//            {
> > > > > > -                keyInfo.setKeyFileUri( keyfile.toURI() );
> > > > > > -//            }
> > > > > > -//            catch ( URISyntaxException e )
> > > > > > -//            {
> > > > > > -//                throw new MojoExecutionException(
> e.getMessage
> > ()
> > > );
> > > > > > -//            }
> > > > > > +            keyInfo.setKeyFileUri( keyfile.toURI() );
> > > > > >         }
> > > > > >
> > > > > >         keyInfo.setKeyContainerName( keycontainer );
> > > > > > @@ -128,7 +121,6 @@
> > > > > >
> > > > > >         compilerConfig.setLocalRepository( localRepository );
> > > > > >         compilerConfig.setProgrammingLanguage(
> > > > > ProgrammingLanguage.C_SHARP);
> > > > > > -        compilerConfig.setTestCompile( isTestCompile() );
> > > > > >         compilerConfig.setCompilerSourceDirectory( sourceDir );
> > > > > >         compilerConfig.setVendor( vendor );
> > > > > >         compilerConfig.setTargetDirectory( new File( outputDir )
> > );
> > > > > > @@ -173,14 +165,5 @@
> > > > > >      */
> > > > > >     protected String getAssemblySuffix() {
> > > > > >         return "";
> > > > > > -    }
> > > > > > -
> > > > > > -    /**
> > > > > > -     * Sub classes can override this to configure the compiler
> > > > > > -     * for test compilation
> > > > > > -     * @return <code>boolean</code> true if test compile, else
> > > false
> > > > > > -     */
> > > > > > -    protected boolean isTestCompile() {
> > > > > > -        return false;
> > > > > >     }
> > > > > >  }
> > > > > >
> > > > > > Modified:
> > > > > >
> > > > >
> > > >
> > >
> >
> incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java
> > > > > > URL:
> > > > > >
> > > > >
> > > >
> > >
> >
> http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java?rev=608757&r1=608756&r2=608757&view=diff
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> ==============================================================================
> > > > > > ---
> > > > > >
> > > > >
> > > >
> > >
> >
> incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java
> > > > > > (original)
> > > > > > +++
> > > > > >
> > > > >
> > > >
> > >
> >
> incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/CompilerMojo.java
> > > > > > Thu Jan  3 22:38:03 2008
> > > > > > @@ -18,7 +18,10 @@
> > > > > >  */
> > > > > >  package org.apache.maven.dotnet.plugin.compiler;
> > > > > >
> > > > > > +import java.io.File;
> > > > > > +
> > > > > >  import org.apache.maven.dotnet.BuildDirectories;
> > > > > > +import org.apache.maven.dotnet.compiler.DotnetCompilerConfig;
> > > > > >  import org.apache.maven.plugin.MojoExecutionException;
> > > > > >  import org.apache.maven.plugin.MojoFailureException;
> > > > > >
> > > > > > @@ -42,6 +45,9 @@
> > > > > >     public void execute()
> > > > > >         throws MojoExecutionException, MojoFailureException
> > > > > >     {
> > > > > > -        project.getArtifact().setFile( compile() );
> > > > > > +        DotnetCompilerConfig compilerConfig =
> > > > > > DotnetCompilerConfig.Factory.createDefaultCompilerConfig();
> > > > > > +
> > > > > > +        File assembly = compile( compilerConfig );
> > > > > > +        project.getArtifact().setFile( assembly );
> > > > > >     }
> > > > > >  }
> > > > > >
> > > > > > Modified:
> > > > > >
> > > > >
> > > >
> > >
> >
> incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java
> > > > > > URL:
> > > > > >
> > > > >
> > > >
> > >
> >
> http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java?rev=608757&r1=608756&r2=608757&view=diff
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> ==============================================================================
> > > > > > ---
> > > > > >
> > > > >
> > > >
> > >
> >
> incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java
> > > > > > (original)
> > > > > > +++
> > > > > >
> > > > >
> > > >
> > >
> >
> incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java
> > > > > > Thu Jan  3 22:38:03 2008
> > > > > > @@ -19,6 +19,7 @@
> > > > > >  package org.apache.maven.dotnet.plugin.compiler;
> > > > > >
> > > > > >  import org.apache.maven.dotnet.BuildDirectories;
> > > > > > +import org.apache.maven.dotnet.compiler.DotnetCompilerConfig;
> > > > > >  import org.apache.maven.plugin.MojoExecutionException;
> > > > > >  import org.apache.maven.plugin.MojoFailureException;
> > > > > >
> > > > > > @@ -43,7 +44,11 @@
> > > > > >             return;
> > > > > >         }
> > > > > >
> > > > > > -        compile();
> > > > > > +        DotnetCompilerConfig compilerConfig =
> > > > > > DotnetCompilerConfig.Factory.createDefaultCompilerConfig();
> > > > > > +
> > > > > > +        compilerConfig.setTestCompile( true );
> > > > > > +
> > > > > > +        compile( compilerConfig );
> > > > > >     }
> > > > > >
> > > > > >     @Override
> > > > > > @@ -56,11 +61,5 @@
> > > > > >     protected String getAssemblySuffix()
> > > > > >     {
> > > > > >         return "-test";
> > > > > > -    }
> > > > > > -
> > > > > > -    @Override
> > > > > > -    protected boolean isTestCompile()
> > > > > > -    {
> > > > > > -        return true;
> > > > > >     }
> > > > > >  }
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to