On Jan 10, 2008 12:41 AM, kermitt <[EMAIL PROTECTED]> wrote: > > I attached my previous post from user mailling. I take a moment tonight to > figure out the error. > > In my mind, I wanted to synchronize two repositories which is not possible > regarding the code. As if overwrite is set to false an IOException is > thrown > as soon as an existing artifact is found. > > I feel like synchronization would be a good feature, what do you think of? > > There is different way to handle the feature but it would requires API > change somehow. We need distingate the case of an exception of Input > Output > and the "file already exist" case. > > Some suggestions: > > void publish(Artifact artifact, File src, boolean overwrite) throws > IOException, ExistingArtifactUncheckedException; > > => Would unify error message regarding duplicate as IOException is filled > with various message according the resolver. > > void publish(Artifact artifact, File src, boolean overwrite,boolean > skipExistingFile) throws IOException;
If we make ExistingArtifactException extends IOException we keep the same API and we still have finer grain information as you want. Feel free to open an issue, and maybe attach a patch since you seem to already have a pretty clear idea of what you want (don't forget unit test to increase chance to get included). Xavier > > > .... > > > > > Trace confuse me a bit , I am using SFTP and I would suggest to add to > SFTPRepository.java line 137: > if (!overwrite && checkExistence(destination, c)) { > throw new IOException("destination file " + destination + " > exists and overwrite == true"); > } > > regards, > > > Hello, > > I have two repo : local , integration > > I tried to use ivy:install to migrate my modules between them. > > After publishing in local, i start a new task to migrate new dependencies > I > could have added to my local repo during my developpement: > > <ivy:install organisation="${ivy.organisation}" module="${ivy.module}" > revision="${ivy.revision}" from="local" to="integration" transitive="true" > /> > > > [ivy:install] :: installing com.foo.test#Basic;1.53 :: > [ivy:install] :: resolving dependencies :: > [ivy:install] found com.foo.test#Basic;1.53 in fs-local > [ivy:install] found foo#AntCommon;1.39D in remote-private > [ivy:install] found junit#junit;3.8.1 in remote-private > [ivy:install] :: downloading artifacts to cache :: > [ivy:install] downloading > d:\javadev\local-repository\com.foo.test\Basic\jars\Basic-1.53.jar ... > [ivy:install] .. (1kB) > [ivy:install] .. (0kB) > [ivy:install] [SUCCESSFUL ] com.foo.test#Basic;1.53!Basic.jar (20ms) > [ivy:install] :: installing in remote :: > [ivy:install] published Basic to > ./repository/private/com.foo.test/Basic/jars/Basic-1.53.jar > [ivy:install] published ivy to > ./repository/private/com.foo.test/Basic/ivy-1.53.xml > [ivy:install] missing artifact foo#AntCommon;1.39D!AntCommon.zip: > [ivy:install] > d:\javadev\repository\.ivy-cache\foo\AntCommon\zips\AntCommon-1.39D.zipfile > does not exist > > BUILD FAILED > C:\javadev\src\AntCommon\src\build-common.xml:321: impossible to install > com.foo.test#Basic;1.53: java.io.IOException: destination file exists and > overwrite == true > > Total time: 1 minute 1 second > > > > I tried with ivy 1.4.1 and ivy 2.0 beta 1 same error, if I put transitive > to > false I don't get this error. I guess there is an issue with the artifact > being reprocessed one more time when transitive. > I don't really want to put overwrite="true" because I have so many > artifact > it would take too long ... > > > -- > View this message in context: > http://www.nabble.com/ivy%3Ainstall-tp14724560p14724560.html > Sent from the Ant - Dev mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Xavier Hanin - Independent Java Consultant http://xhab.blogspot.com/ http://ant.apache.org/ivy/ http://www.xoocode.org/