----- "Brett Porter" <[email protected]> wrote:

> On 17/11/2010, at 11:57 AM, Josimpson Ocaba wrote:
> 
> >>> +        
> >>> +        
> >>> +        try
> >>> +        {    
> >>> +              FileUtils.copyFile(new File( source ),
> targetFile);
> >>> +        }   
> >>> +        catch (IOException ioe) 
> >>> +        {
> >>> +            logger.warning("\nNPANDAY-1005-0001: Error copying
> >> dependency " + artifact +" "+ioe.getMessage());
> >>> +        }
> >> 
> >> Should this only be a warning? Won't it cause problems later? I'd
> >> think it should be thrown...
> > 
> > Ok Noted. But wouldn't it have to be caught somewhere else? I caught
> it here thinking that way. So that the build will not break.
> 
> Right - but my question was *should* the build actually break if this
> happens? Is it recoverable?

Ahh I see, I guess it would provide a better alert to the developer that one of 
his dependencies are missing, rather than just having it lost in the logs that 
"there was a dependency missing". Yup, the build should break.

> >> 
> >> You shouldn't construct the path yourself. I'm not sure where this
> is
> >> used, but it should be passed from the result of artifact
> resolution.
> >> Is artifact.getFile() already set?
> > 
> > Sometimes artifact.getFile() returns a null that is why there is the
> need for the generation.
> 
> Under what situations? I would think that's a faulty lifecycle /
> plugin that should be fixed in that case rather than hard coding
> here.
> > 
> > 
> >>> 
> >>> Modified:
> >>
> incubator/npanday/trunk/components/dotnet-dao-project/src/main/java/npanday/dao/impl/ProjectDaoImpl.java
> >>> URL:
> >>
> http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-dao-project/src/main/java/npanday/dao/impl/ProjectDaoImpl.java?rev=1025815&r1=1025814&r2=1025815&view=diff
> >>> 
> >>
> ==============================================================================
> >>> ---
> >>
> incubator/npanday/trunk/components/dotnet-dao-project/src/main/java/npanday/dao/impl/ProjectDaoImpl.java
> >> (original)
> >>> +++
> >>
> incubator/npanday/trunk/components/dotnet-dao-project/src/main/java/npanday/dao/impl/ProjectDaoImpl.java
> >> Thu Oct 21 03:02:36 2010
> >>> @@ -294,12 +294,16 @@ public final class ProjectDaoImpl
> >>> 
> >>>            if ( !result.hasNext() )
> >>>            {
> >>> -                if ( artifactType != null &&
> >> ArtifactTypeHelper.isDotnetAnyGac( artifactType ) )
> >>> +                
> >>> +                //if ( artifactType != null &&
> >> ArtifactTypeHelper.isDotnetAnyGac( artifactType ) )
> >>> +                if ( artifactType != null )
> >> 
> >> why was this changed?
> 
> Not sure if you answered this in another question?
> 
> >> 
> >>> Modified:
> >>
> incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/compiler/impl/DefaultCompiler.java
> >>> URL:
> >>
> http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/compiler/impl/DefaultCompiler.java?rev=1025815&r1=1025814&r2=1025815&view=diff
> >>> 
> >>
> ==============================================================================
> >>> ---
> >>
> incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/compiler/impl/DefaultCompiler.java
> >> (original)
> >>> +++
> >>
> incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/compiler/impl/DefaultCompiler.java
> >> Thu Oct 21 03:02:36 2010
> >>> @@ -108,7 +108,11 @@ public final class DefaultCompiler
> >>>            for ( Artifact artifact : references )
> >>>            {
> >>>                String path =
> artifact.getFile().getAbsolutePath();
> >>> -                commands.add( "/reference:" + path );
> >>> +          
> >>> +                if( !path.contains( ".jar" ) )
> >>> +                {
> >>> +                    commands.add( "/reference:" + path );
> >>> +                }
> >> 
> >> This hardcoding doesn't seem good - it seems linked to the other
> >> change above about unknown extensions. Shouldn't it be checking
> the
> >> artifact types against suitable references?
> > 
> > It was including the jars and it was causing problems during
> compilation since csc/vbc aren't using them.
> 
> Which JARs would be included? I was suggesting you should have a list
> of suitable references and check the actual type against that. At the
> moment, foo.war would be included, and cookie.jar-1.0.dll would be
> excluded.
> 
> > 
> >>> 
> >>> Modified:
> >>
> incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/CompilerContextImpl.java
> >>> URL:
> >>
> http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/CompilerContextImpl.java?rev=1025815&r1=1025814&r2=1025815&view=diff
> >>> 
> >>
> ==============================================================================
> >>> ---
> >>
> incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/CompilerContextImpl.java
> >> (original)
> >>> +++
> >>
> incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/impl/CompilerContextImpl.java
> >> Thu Oct 21 03:02:36 2010
> >>> @@ -28,6 +28,7 @@ import npanday.executable.compiler.*;
> >>> import npanday.artifact.ArtifactContext;
> >>> import npanday.artifact.ArtifactException;
> >>> import npanday.ArtifactType;
> >>> +import npanday.PathUtil;
> >>> 
> >>> import org.apache.maven.project.MavenProject;
> >>> import org.apache.maven.artifact.Artifact;
> >>> @@ -388,7 +389,19 @@ public final class CompilerContextImpl
> >>>                logger.debug( "NPANDAY-061-006: Artifact Type:" +
> >> type);
> >>>                logger.debug( "NPANDAY-061-007: Artifact Type:" +
> >> ArtifactTypeHelper.isDotnetGenericGac( type ));
> >>>                ArtifactType artifactType =
> >> ArtifactType.getArtifactTypeForPackagingName( type );
> >>> -
> >>> +                if ( ArtifactTypeHelper.isDotnetModule( type ))
> >>> +                {
> >>> +                    modules.add( artifact );
> >>> +                }
> >>> +                else if ( (artifactType != ArtifactType.NULL &&
> (
> >>> +                            StringUtils.equals(
> >> artifactType.getTargetCompileType(), "library" )
> >>> +                            ||
> artifactType.getExtension().equals(
> >> "dll" )
> >>> +                            ||
> artifactType.getExtension().equals(
> >> "exe" ))
> >>> +                          )
> >>> +                          || type.equals( "jar" ) )
> >>> +                {
> >>> +                    libraries.add( artifact );
> >>> +                }
> >> 
> >> Is there an isDotnet* method that better represents this? Why
> .jar?
> 
> Maybe related to above?
> >> 
> >> 
> >>> Modified:
> >>
> incubator/npanday/trunk/components/dotnet-repository/src/test/java/npanday/repository/impl/RepositoryConverterImplTest.java
> >>> URL:
> >>
> http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-repository/src/test/java/npanday/repository/impl/RepositoryConverterImplTest.java?rev=1025815&r1=1025814&r2=1025815&view=diff
> >>> 
> >>
> ==============================================================================
> >>> ---
> >>
> incubator/npanday/trunk/components/dotnet-repository/src/test/java/npanday/repository/impl/RepositoryConverterImplTest.java
> >> (original)
> >>> +++
> >>
> incubator/npanday/trunk/components/dotnet-repository/src/test/java/npanday/repository/impl/RepositoryConverterImplTest.java
> >> Thu Oct 21 03:02:36 2010
> >>> @@ -30,64 +30,7 @@ public class RepositoryConverterImplTest
> >>> 
> >>>    private static File basedir = new File( System.getProperty(
> >> "basedir" ) );
> >>> 
> >>> -
> >>> -    public void testConvertArtifact()
> >>> -    {
> >>> -        File testRepo = new File( System.getProperty( "basedir"
> ),
> >> "target/test-repo/repository-1" );
> >>> -        testRepo.mkdir();
> >>> -
> >>> -        Repository repository = this.createRepository();
> >>> -        ProjectDao dao = this.createProjectDao( repository );
> >>> -
> >>> -        Project project = new Project();
> >>> -        project.setGroupId( "npanday.model" );
> >>> -        project.setArtifactId( "NPanday.Model.Pom" );
> >>> -        project.setVersion( "1.0" );
> >>> -        project.setArtifactType( "library" );
> >>> -        project.setPublicKeyTokenId( "abc" );
> >>> -
> >>> -        ProjectDependency test2 = createProjectDependency(
> >> "npanday", "NPanday.Test", "1.0" );
> >>> -        test2.setArtifactType( "library" );
> >>> -        project.addProjectDependency( test2 );
> >>> -
> >>> -        try
> >>> -        {
> >>> -            dao.storeProjectAndResolveDependencies( project,
> >> testRepo, new ArrayList<ArtifactRepository>() );
> >>> -        }
> >>> -        catch ( java.io.IOException e )
> >>> -        {
> >>> -            e.printStackTrace();
> >>> -            fail( "Could not store the project: " +
> e.getMessage()
> >> );
> >>> -        }
> >>> -
> >>> -        RepositoryConverterImpl repositoryConverter = new
> >> RepositoryConverterImpl();
> >>> -        repositoryConverter.initTest( new
> >> DataAccessObjectRegistryStub(), new ArtifactFactoryTestStub(),
> >>> -                                      null, new
> >> ArtifactResolverTestStub() );
> >>> -
> >>> -        ArtifactFactory artifactFactory = new
> >> ArtifactFactoryTestStub();
> >>> -        Artifact artifact =
> >> artifactFactory.createArtifactWithClassifier(
> project.getGroupId(),
> >> project.getArtifactId(),
> >>> -                                                                 
>  
> >>      project.getVersion(),
> >>> -                                                                 
>  
> >>      project.getArtifactType(), "abc" );
> >>> -        File artifactFile = new File( testRepo.getParentFile(),
> >>> -                                     
> >>
> "/uac/gac_msil/NPanday.Model.Pom/1.0__npanday.model/NPanday.Model.Pom.dll"
> >> );
> >>> -
> >>> -        artifact.setFile( artifactFile );
> >>> -        try
> >>> -        {
> >>> -            repositoryConverter.convertRepositoryFormatFor(
> >> artifact, null, repository, testRepo );
> >>> -        }
> >>> -        catch ( IOException e )
> >>> -        {
> >>> -            fail( "Could not convert the repository: " +
> >> e.getMessage() );
> >>> -        }
> >>> -        this.exportRepositoryToRdf(
> "testConvertArtifact-rdf.xml",
> >> testRepo, repository );
> >>> -
> >>> -        assertTrue( new File( testRepo,
> >>
> "/npanday/model/NPanday.Model.Pom/1.0/NPanday.Model.Pom-1.0-abc.dll"
> >> ).exists() );
> >>> -        assertTrue( new File( testRepo,
> >> "/npanday/model/NPanday.Model.Pom/1.0/NPanday.Model.Pom-1.0.pom"
> >> ).exists() );
> >>> -        assertFalse( new File( testRepo,
> >> "/npanday/NPanday.Test/1.0/NPanday.Test-1.0.dll" ).exists() );
> >>> -        assertFalse( new File( testRepo,
> >> "/npanday/NPanday.Test/1.0/NPanday.Test-1.0.pom" ).exists() );
> >>> -    }
> >> 
> >> Why was this removed?
> 
> Did I miss the answer to this?
> 
> >> 
> >>> -
> >>> +    
> >>>    public void testConvert()
> >>>    {
> >>>        File testRepo = new File( System.getProperty( "basedir" ),
> >> "target/test-repo/repository" );
> >>> @@ -101,9 +44,8 @@ public class RepositoryConverterImplTest
> >>>        project.setArtifactId( "NPanday.Model.Pom" );
> >>>        project.setVersion( "1.0" );
> >>>        project.setArtifactType( "library" );
> >>> -        project.setPublicKeyTokenId( "abc" );
> >>> 
> >>> -        ProjectDependency test2 = createProjectDependency(
> >> "npanday", "NPanday.Test", "1.0" );
> >>> +        ProjectDependency test2 = createProjectDependency(
> >> "npanday", "ClassLibrary1", "1.0" );
> >>>        test2.setArtifactType( "library" );
> >>>        project.addProjectDependency( test2 );
> >>> 
> >>> @@ -130,10 +72,10 @@ public class RepositoryConverterImplTest
> >>>        }
> >>>        this.exportRepositoryToRdf( "testConvert-rdf.xml",
> testRepo,
> >> repository );
> >>> 
> >>> -        assertTrue( new File( testRepo,
> >>
> "/npanday/model/NPanday.Model.Pom/1.0/NPanday.Model.Pom-1.0-abc.dll"
> >> ).exists() );
> >>> +        assertTrue( new File( testRepo,
> >> "/npanday/model/NPanday.Model.Pom/1.0/NPanday.Model.Pom-1.0.dll"
> >> ).exists() );
> >>>        assertTrue( new File( testRepo,
> >> "/npanday/model/NPanday.Model.Pom/1.0/NPanday.Model.Pom-1.0.pom"
> >> ).exists() );
> >>> -        assertTrue( new File( testRepo,
> >> "/npanday/NPanday.Test/1.0/NPanday.Test-1.0.dll" ).exists() );
> >>> -        assertTrue( new File( testRepo,
> >> "/npanday/NPanday.Test/1.0/NPanday.Test-1.0.pom" ).exists() );
> >>> +        assertTrue( new File( testRepo,
> >> "/npanday/ClassLibrary1/1.0/ClassLibrary1-1.0.dll" ).exists() );
> >>> +
> >> 
> >> Are these results correct? I realise you needed to remove the UAC,
> but
> >> not sure why the test for the model (particularly the classifier)
> was
> >> removed.
> 
> Same here...
> 
> >> 
> >>> Modified:
> >>
> incubator/npanday/trunk/dotnet/assemblies/NPanday.Artifact/src/main/csharp/NPanday/Artifact/ArtifactRepository.cs
> >>> URL:
> >>
> http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.Artifact/src/main/csharp/NPanday/Artifact/ArtifactRepository.cs?rev=1025815&r1=1025814&r2=1025815&view=diff
> >>> 
> >>
> ==============================================================================
> >>> ---
> >>
> incubator/npanday/trunk/dotnet/assemblies/NPanday.Artifact/src/main/csharp/NPanday/Artifact/ArtifactRepository.cs
> >> (original)
> >>> +++
> >>
> incubator/npanday/trunk/dotnet/assemblies/NPanday.Artifact/src/main/csharp/NPanday/Artifact/ArtifactRepository.cs
> >> Thu Oct 21 03:02:36 2010
> >>> @@ -26,6 +26,7 @@ using System.Text;
> >>> using System.Xml;
> >>> using System.Xml.Serialization;
> >>> using System.Windows.Forms;
> >>> +using NPanday.Model.Setting;
> >>> 
> >>> namespace NPanday.Artifact
> >>> {
> >>> @@ -34,8 +35,14 @@ namespace NPanday.Artifact
> >>> 
> >>>        public string GetLocalUacPath(Artifact artifact, string
> >> ext)
> >>>        {
> >>> -            return Path.Combine(localRepository.FullName,
> >> string.Format(@"uac\gac_msil\{1}\{2}__{0}\{1}{3}",
> artifact.GroupId,
> >> artifact.ArtifactId, artifact.Version, ext));
> >>> +            return
> >> Path.Combine(SettingsUtil.GetLocalRepositoryPath(),
> >> string.Format(@"{0}\{1}\{1}{2}-{3}", Tokenize(artifact.GroupId),
> >> artifact.ArtifactId, artifact.Version, 
> >> 
> >> This is duplicated with PathUtil.cs. They should be shared. Also,
> does
> >> the Artifact type support classifiers? They don't seem to be
> included
> >> here.
> 
> Did you get a chance to fix this already?
> > 
> >> 
> >>> Modified:
> >>
> incubator/npanday/trunk/dotnet/assemblies/NPanday.Artifact/src/main/csharp/NPanday/Artifact/PathUtil.cs
> >>> URL:
> >>
> http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.Artifact/src/main/csharp/NPanday/Artifact/PathUtil.cs?rev=1025815&r1=1025814&r2=1025815&view=diff
> >>> 
> >>
> ==============================================================================
> >>> ---
> >>
> incubator/npanday/trunk/dotnet/assemblies/NPanday.Artifact/src/main/csharp/NPanday/Artifact/PathUtil.cs
> >> (original)
> >>> +++
> >>
> incubator/npanday/trunk/dotnet/assemblies/NPanday.Artifact/src/main/csharp/NPanday/Artifact/PathUtil.cs
> >> Thu Oct 21 03:02:36 2010
> >>> @@ -23,21 +23,35 @@ using System;
> >>> using System.Collections.Generic;
> >>> using System.IO;
> >>> using System.Text;
> >>> +using NPanday.Model.Setting;
> >>> 
> >>> namespace NPanday.Artifact
> >>> {
> >>>    public class PathUtil
> >>>    {
> >>> -        public static FileInfo
> >> GetPrivateApplicationBaseFileFor(Artifact artifact, DirectoryInfo
> >> localRepository)
> >>> +        public static FileInfo
> >> GetPrivateApplicationBaseFileFor(Artifact artifact, DirectoryInfo
> >> localRepository, string currentDir)
> >>>        {
> >>> -            return new FileInfo(localRepository.Parent.FullName
> +
> >> @"\pab\gac_msil\" + artifact.ArtifactId + @"\" + artifact.Version
> +
> >> "__" +
> >>> -                artifact.GroupId + @"\" + artifact.ArtifactId +
> "."
> >> + artifact.Extension);
> >>> +            FileInfo target = new FileInfo(currentDir +
> >> Path.PathSeparator + "target" +
> Path.PathSeparator+artifact.ArtifactId
> >> + artifact.Extension);
> >> 
> >> This is probably ok, but if there's a way to read it from the POM
> or
> >> pass in the target directory rather than just the basedir, that'd
> be
> >> more flexible. 
> > 
> > Ok, but wouldn't reading from the pom take up more resources? But I
> agree with making npanday as flexible as possible.
> 
> I'd guess the POM is already read somewhere? But otherwise, it'd be
> good to centralise the code.
> 
> > 
> >> 
> >>> +           
> >>> +            FileInfo source =
> GetUserAssemblyCacheFileFor(artifact,
> >> localRepository);
> >>> +
> >>> +            if(source.Exists)
> >>> +            {
> >>> +                   File.Copy( source.ToString(),
> >> target.ToString());
> >>> +            } 
> >>> +            
> >>> +           
> >> 
> >> Why might these be different?
> 
> Not sure if you caught this one in the middle too :)
> 
> > 
> > 
> >>> Modified: incubator/npanday/trunk/dotnet/pom.xml
> >>> URL:
> >>
> http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/pom.xml?rev=1025815&r1=1025814&r2=1025815&view=diff
> >>> 
> >>
> ==============================================================================
> >>> --- incubator/npanday/trunk/dotnet/pom.xml (original)
> >>> +++ incubator/npanday/trunk/dotnet/pom.xml Thu Oct 21 03:02:36
> 2010
> >>> @@ -35,7 +35,8 @@ under the License.
> >>>  </modules>  
> >>>  <build> 
> >>>    <sourceDirectory>src/main/csharp</sourceDirectory>  
> >>> -    <testSourceDirectory>src/test/csharp</testSourceDirectory>  
> >>> +    <!-- Disabled because of NUnit-console Issue NPANDAY-332 -->
> >>> +    <!--
> <testSourceDirectory>src/test/csharp</testSourceDirectory>
> >> -->
> >> 
> >> Did this work for you before you applied your changes? Or could it
> be
> >> related to the VS2010 changes?
> > 
> > This was already failing for me before I added in any changes for
> the pab & uac removal
> 
> Do we need to backtrack to the problem?
> 
> > 
> >>> 
> >>> Modified:
> >>
> incubator/npanday/trunk/plugins/maven-repository-plugin/src/main/java/npanday/plugin/repository/RepositoryRdfExporterMojo.java
> >>> URL:
> >>
> http://svn.apache.org/viewvc/incubator/npanday/trunk/plugins/maven-repository-plugin/src/main/java/npanday/plugin/repository/RepositoryRdfExporterMojo.java?rev=1025815&r1=1025814&r2=1025815&view=diff
> >>> 
> >>
> ==============================================================================
> >>> ---
> >>
> incubator/npanday/trunk/plugins/maven-repository-plugin/src/main/java/npanday/plugin/repository/RepositoryRdfExporterMojo.java
> >> (original)
> >>> +++
> >>
> incubator/npanday/trunk/plugins/maven-repository-plugin/src/main/java/npanday/plugin/repository/RepositoryRdfExporterMojo.java
> >> Thu Oct 21 03:02:36 2010
> >>> @@ -67,8 +71,7 @@ public class RepositoryRdfExporterMojo
> >>>        RDFHandler rdfxmlWriter;
> >>>        try
> >>>        {
> >>> -            File exportFile = new File(
> >> localRepository.getParentFile(),
> >> "/uac/rdfRepository/rdf-repository-export.xml" );
> >>> -            rdfxmlWriter = new RDFXMLWriter( new
> FileOutputStream(
> >> exportFile ) );
> >>> +            rdfxmlWriter = new RDFXMLWriter( new
> FileOutputStream(
> >> localRepository ) );
> >> 
> >> This seems to have dropped the filename.
> >> 
> >>> @@ -478,7 +478,8 @@ under the License.
> >>>    <mavenVersion>2.0.9</mavenVersion>  
> >>> 
> >>
> <npanday.snapshots.url>http://repo.npanday.org/archiva/repository/npanday-snapshots</npanday.snapshots.url>
> >>> 
> >>
> <npanday.releases.url>http://repo.npanday.org/archiva/repository/npanday-releases</npanday.releases.url>
> >>> -    <stable.npanday.version>1.2</stable.npanday.version>
> >>> +    <!--<stable.npanday.version>1.2</stable.npanday.version>-->
> >>> +    
> >>
> <stable.npanday.version>1.2.2-incubating-SNAPSHOT</stable.npanday.version>
> >> 
> >> This will make it hard to release. I noticed your comment when
> >> resolving the issue about this. What problem occurs if you use the
> >> released version?
> >> 
> >> (Note that old versions should be able to coincide with new ones)
> > 
> > The problem was it used the old compilers so we need a way to have
> the unreleased compilers used. Because if we use the release once. It
> will still have the pab and uac removal. But I think just for release
> purposes we can use the old compilers to release the new one. and Then
> after the release we can go back one version earlier.
> 
> Does it fail, or is it just that it uses the UAC again? I would have
> expected them to work side by side
> 
> - Brett
> 
> --
> Brett Porter
> [email protected]
> http://brettporter.wordpress.com/

Reply via email to