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/

Reply via email to