I didn't see any scenario where the user wants to haltonunresolved but not haltonfailure. Did you?
If not, the second option is better. Gilles > -----Original Message----- > From: Xavier Hanin [mailto:[EMAIL PROTECTED] > Sent: mercredi 25 avril 2007 8:45 > To: [email protected] > Subject: Re: svn commit: r532027 - in /incubator/ivy/core/trunk: > CHANGES.txt doc/doc/use/install.html > src/java/org/apache/ivy/ant/IvyInstall.java > test/java/org/apache/ivy/ant/IvyInstallTest.java > > On 4/24/07, Maarten Coene <[EMAIL PROTECTED]> wrote: > > To keep a more consistent naming, I would prefer to use "haltonfailure" > instead of "haltonunresolved" > > Yes, I was wondering myself if haltonfailure would be better. The > point is that it doesn't halt on any failure, it halts only on > unresolved dependencies. So I see 3 options: > - rename to haltonfailure and keep code as is > - rename to haltonfailure and actually halt on any failure > - add haltonfailure which halts on any failure, and keep haltonunresolved > > WDYT? > > Xavier > > > > > regards, > > Maarten > > > > ----- Original Message ---- > > From: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> > > To: [EMAIL PROTECTED] > > Sent: Tuesday, April 24, 2007 7:53:21 PM > > Subject: svn commit: r532027 - in /incubator/ivy/core/trunk: CHANGES.txt > doc/doc/use/install.html src/java/org/apache/ivy/ant/IvyInstall.java > test/java/org/apache/ivy/ant/IvyInstallTest.java > > > > Author: xavier > > Date: Tue Apr 24 10:53:20 2007 > > New Revision: 532027 > > > > URL: http://svn.apache.org/viewvc?view=rev&rev=532027 > > Log: > > BUG: ivy:install ant task does not fail on error (IVY-475) (thanks to > Jeffrey Blatttman) > > > > Added: > > > incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyInstallTest.java > > Modified: > > incubator/ivy/core/trunk/CHANGES.txt > > incubator/ivy/core/trunk/doc/doc/use/install.html > > incubator/ivy/core/trunk/src/java/org/apache/ivy/ant/IvyInstall.java > > > > Modified: incubator/ivy/core/trunk/CHANGES.txt > > URL: > http://svn.apache.org/viewvc/incubator/ivy/core/trunk/CHANGES.txt?view=dif > f&rev=532027&r1=532026&r2=532027 > > > ========================================================================== > ==== > > --- incubator/ivy/core/trunk/CHANGES.txt (original) > > +++ incubator/ivy/core/trunk/CHANGES.txt Tue Apr 24 10:53:20 2007 > > @@ -13,6 +13,7 @@ > > Ingo Adler > > Stephane Baillez > > Karl Baum > > + Jeffrey Blatttman > > Matthieu Brouillard > > Kristian Cibulskis > > Pierre Hägnestrand > > @@ -43,6 +44,9 @@ > > Johan Stuyts > > John Williams > > > > + version in SVN > > +===================================== > > +- BUG: ivy:install ant task does not fail on error (IVY-475) (thanks to > Jeffrey Blatttman) > > > > 2.0.0-alpha1-incubating > > ===================================== > > > > Modified: incubator/ivy/core/trunk/doc/doc/use/install.html > > URL: > http://svn.apache.org/viewvc/incubator/ivy/core/trunk/doc/doc/use/install. > html?view=diff&rev=532027&r1=532026&r2=532027 > > > ========================================================================== > ==== > > --- incubator/ivy/core/trunk/doc/doc/use/install.html (original) > > +++ incubator/ivy/core/trunk/doc/doc/use/install.html Tue Apr 24 > 10:53:20 2007 > > @@ -56,6 +56,8 @@ > > <td>No, defaults to false</td></tr> > > <tr><td>matcher</td><td>the name of the matcher to use to find the > modules to install</td> > > <td>No, defaults to exact</td></tr> > > + <tr><td>haltonunresolved</td><td>true to fail build on unresolved > dependencies <span class="since">since 2.0</span></td> > > + <td>No, defaults to true</td></tr> > > </tbody> > > </table> > > <h1>Examples</h1> > > > > Modified: > incubator/ivy/core/trunk/src/java/org/apache/ivy/ant/IvyInstall.java > > URL: > http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ > ivy/ant/IvyInstall.java?view=diff&rev=532027&r1=532026&r2=532027 > > > ========================================================================== > ==== > > --- incubator/ivy/core/trunk/src/java/org/apache/ivy/ant/IvyInstall.java > (original) > > +++ incubator/ivy/core/trunk/src/java/org/apache/ivy/ant/IvyInstall.java > Tue Apr 24 10:53:20 2007 > > @@ -25,12 +25,13 @@ > > import org.apache.ivy.plugins.matcher.PatternMatcher; > > import org.apache.ivy.util.filter.FilterHelper; > > import org.apache.tools.ant.BuildException; > > - > > +import org.apache.ivy.core.report.ResolveReport; > > +import org.apache.tools.ant.BuildException; > > > > /** > > * Allow to install a module or a set of module from repository to > another one. > > - * > > - * > > + * > > + * > > * @author Xavier Hanin > > * > > */ > > @@ -38,13 +39,14 @@ > > private String _organisation; > > private String _module; > > private String _revision; > > - private File _cache; > > + private File _cache; > > private boolean _overwrite = false; > > private String _from; > > private String _to; > > private boolean _transitive; > > private String _type; > > private String _matcher = PatternMatcher.EXACT; > > + private boolean _haltOnUnresolved = true; > > > > public void execute() throws BuildException { > > Ivy ivy = getIvyInstance(); > > @@ -58,12 +60,12 @@ > > if (_module == null && PatternMatcher.EXACT.equals(_matcher)) { > > throw new BuildException("no module name provided for ivy > publish task: It can either be set explicitely via the attribute 'module' > or via 'ivy.module' property or a prior call to <resolve/>"); > > } else if (_module == null && > !PatternMatcher.EXACT.equals(_matcher)) { > > - _module = PatternMatcher.ANY_EXPRESSION; > > + _module = PatternMatcher.ANY_EXPRESSION; > > } > > if (_revision == null && PatternMatcher.EXACT.equals(_matcher)) > { > > throw new BuildException("no module revision provided for > ivy publish task: It can either be set explicitely via the attribute > 'revision' or via 'ivy.revision' property or a prior call to <resolve/>"); > > } else if (_revision == null && > !PatternMatcher.EXACT.equals(_matcher)) { > > - _revision = PatternMatcher.ANY_EXPRESSION; > > + _revision = PatternMatcher.ANY_EXPRESSION; > > } > > if (_from == null) { > > throw new BuildException("no from resolver name: please > provide it through parameter 'from'"); > > @@ -72,13 +74,26 @@ > > throw new BuildException("no to resolver name: please > provide it through parameter 'to'"); > > } > > ModuleRevisionId mrid = > ModuleRevisionId.newInstance(_organisation, _module, _revision); > > + ResolveReport report; > > try { > > - ivy.install(mrid, _from, _to, _transitive, > doValidate(settings), _overwrite, > FilterHelper.getArtifactTypeFilter(_type), _cache, _matcher); > > + report = ivy.install(mrid, _from, _to, _transitive, > doValidate(settings), _overwrite, > FilterHelper.getArtifactTypeFilter(_type), _cache, _matcher); > > } catch (Exception e) { > > throw new BuildException("impossible to install "+ mrid +": > "+e, e); > > } > > + > > + if (report.getUnresolvedDependencies().length > 0 && > isHaltonunresolved()) { > > + throw new > BuildException(report.getUnresolvedDependencies().length > > + +" unresolved dependencies - see output for > details"); > > + } > > } > > - > > + > > + public boolean isHaltonunresolved() { > > + return _haltOnUnresolved; > > + } > > + public void setHaltonunresolved(boolean haltOnUnresolved) { > > + _haltOnUnresolved = haltOnUnresolved; > > + } > > + > > public File getCache() { > > return _cache; > > } > > @@ -134,11 +149,11 @@ > > public void setType(String type) { > > _type = type; > > } > > - > > + > > public String getMatcher() { > > return _matcher; > > } > > - > > + > > public void setMatcher(String matcher) { > > _matcher = matcher; > > } > > > > Added: > incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyInstallTest.java > > URL: > http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache > /ivy/ant/IvyInstallTest.java?view=auto&rev=532027 > > > ========================================================================== > ==== > > --- > incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyInstallTest.java > (added) > > +++ > incubator/ivy/core/trunk/test/java/org/apache/ivy/ant/IvyInstallTest.java > Tue Apr 24 10:53:20 2007 > > @@ -0,0 +1,101 @@ > > +/* > > + * 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. > > + * > > + */ > > +package org.apache.ivy.ant; > > + > > +import java.io.File; > > + > > +import junit.framework.TestCase; > > + > > +import org.apache.tools.ant.BuildException; > > +import org.apache.tools.ant.Project; > > +import org.apache.tools.ant.taskdefs.Delete; > > + > > + > > +public class IvyInstallTest extends TestCase { > > + private File _cache; > > + private IvyInstall _install; > > + private Project _project; > > + > > + protected void setUp() throws Exception { > > + createCache(); > > + cleanTestLib(); > > + _project = new Project(); > > + _project.setProperty("ivy.settings.file", > "test/repositories/ivysettings.xml"); > > + > > + _install = new IvyInstall(); > > + _install.setProject(_project); > > + _install.setCache(_cache); > > + } > > + > > + private void createCache() { > > + _cache = new File("build/cache"); > > + _cache.mkdirs(); > > + } > > + > > + protected void tearDown() throws Exception { > > + cleanCache(); > > + cleanTestLib(); > > + } > > + > > + private void cleanCache() { > > + Delete del = new Delete(); > > + del.setProject(new Project()); > > + del.setDir(_cache); > > + del.execute(); > > + } > > + > > + private void cleanTestLib() { > > + Delete del = new Delete(); > > + del.setProject(new Project()); > > + del.setDir(new File("build/test/lib")); > > + del.execute(); > > + } > > + > > + public void testDependencyNotFoundFailure() { > > + _install.setOrganisation("xxx"); > > + _install.setModule("yyy"); > > + _install.setRevision("zzz"); > > + _install.setFrom("test"); > > + _install.setTo("1"); > > + > > + try { > > + _install.execute(); > > + fail("unknown dependency, failure expected > (haltunresolved=true)"); > > + } catch (BuildException be) { > > + // success > > + assertTrue("invalid exception message, it should contain '1 > unresolved'," > > + +" but it's: '"+be.getMessage()+"'", > > + be.getMessage().indexOf("1 unresolved") != -1); > > + } > > + } > > + > > + public void testDependencyNotFoundSuccess() { > > + _install.setOrganisation("xxx"); > > + _install.setModule("yyy"); > > + _install.setRevision("zzz"); > > + _install.setFrom("test"); > > + _install.setTo("1"); > > + _install.setHaltonunresolved(false); > > + > > + try { > > + _install.execute(); > > + } catch (BuildException be) { > > + fail("unknown dependency, failure unexepected > (haltunresolved=false)"); > > + } > > + } > > +} > > > > > > > > > > > > > > __________________________________________________ > > Do You Yahoo!? > > Tired of spam? Yahoo! Mail has the best spam protection around > > http://mail.yahoo.com > > > > > -- > Learn Ivy at ApacheCon: http://www.eu.apachecon.com/ > Manage your dependencies with Ivy! > http://incubator.apache.org/ivy/
