Author: gscokart
Date: Mon Aug 6 07:57:48 2007
New Revision: 563160
URL: http://svn.apache.org/viewvc?view=rev&rev=563160
Log:
support *(public) and *(private) in the configuration
Added:
incubator/ivy/core/trunk/test/repositories/1/org2/mod2.2/ivys/ivy-0.8.xml
(with props)
Modified:
incubator/ivy/core/trunk/CHANGES.txt
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/ResolveEngine.java
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/ResolveOptions.java
Modified: incubator/ivy/core/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/CHANGES.txt?view=diff&rev=563160&r1=563159&r2=563160
==============================================================================
--- incubator/ivy/core/trunk/CHANGES.txt (original)
+++ incubator/ivy/core/trunk/CHANGES.txt Mon Aug 6 07:57:48 2007
@@ -53,6 +53,9 @@
=====================================
- FIX: cachepath based on a resolve done in a previous build broken (IVY-583)
+- IMPROVEMENT: artifactproperty should not overwrite the existing properties
(IVY-587)
+- IMPROVEMENT: Support *(private) and *(public) in the confs parameter of the
resolve (IVY-588)
+
2.0.0-alpha2-incubating
=====================================
- NEW: Add cleancache task (IVY-565)
Modified:
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/ResolveEngine.java
URL:
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/ResolveEngine.java?view=diff&rev=563160&r1=563159&r2=563160
==============================================================================
---
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/ResolveEngine.java
(original)
+++
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/ResolveEngine.java
Mon Aug 6 07:57:48 2007
@@ -142,14 +142,13 @@
boolean changing) throws ParseException, IOException {
DefaultModuleDescriptor md;
- String[] confs = options.getConfs();
- if (confs.length == 1 && confs[0].equals("*")) {
+ if (options.useSpecialConfs()) {
// create new resolve options because this is a different resolve
than the real resolve
// (which will be a resolve of a newCallerInstance module)
ResolvedModuleRevision rmr = findModule(mrid, new
ResolveOptions(options));
if (rmr == null) {
- md = DefaultModuleDescriptor.newCallerInstance(mrid, confs,
options.isTransitive(),
- changing);
+ md = DefaultModuleDescriptor.newCallerInstance(mrid,
+ options.getConfs(rmr.getDescriptor()),
options.isTransitive(), changing);
return new ResolveReport(md, options.getResolveId()) {
public boolean hasError() {
return true;
@@ -160,13 +159,13 @@
}
};
} else {
- confs = rmr.getDescriptor().getConfigurationsNames();
+ String[] confs = options.getConfs(rmr.getDescriptor());
md =
DefaultModuleDescriptor.newCallerInstance(ModuleRevisionId.newInstance(mrid,
rmr.getId().getRevision()), confs, options.isTransitive(),
changing);
}
} else {
- md = DefaultModuleDescriptor.newCallerInstance(mrid, confs,
options.isTransitive(),
- changing);
+ md = DefaultModuleDescriptor.newCallerInstance(mrid,
options.getConfs()
+ , options.isTransitive(), changing);
}
return resolve(md, options);
@@ -213,10 +212,7 @@
IvyContext.getContext().setCache(cacheManager.getCache());
}
- String[] confs = options.getConfs();
- if (confs.length == 1 && confs[0].equals("*")) {
- confs = md.getConfigurationsNames();
- }
+ String[] confs = options.getConfs(md);
options.setConfs(confs);
if (options.getResolveId() == null) {
@@ -415,10 +411,7 @@
IvyContext.getContext().setCache(cacheManager.getCache());
}
- String[] confs = options.getConfs();
- if (confs.length == 1 && confs[0].equals("*")) {
- confs = md.getConfigurationsNames();
- }
+ String[] confs = options.getConfs(md);
options.setConfs(confs);
Date reportDate = new Date();
Modified:
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/ResolveOptions.java
URL:
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/ResolveOptions.java?view=diff&rev=563160&r1=563159&r2=563160
==============================================================================
---
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/ResolveOptions.java
(original)
+++
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/ResolveOptions.java
Mon Aug 6 07:57:48 2007
@@ -22,6 +22,7 @@
import org.apache.ivy.core.cache.CacheManager;
import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
import org.apache.ivy.core.module.id.ModuleId;
+import org.apache.ivy.util.ConfigurationUtils;
import org.apache.ivy.util.filter.Filter;
import org.apache.ivy.util.filter.FilterHelper;
@@ -137,10 +138,46 @@
return this;
}
+ /**
+ * Indicates if the configurations use a special configuration
+ * * , *(private) or *(public).
+ * When special configurations are used, to must have the module
+ * descriptor in order to get the list of configurations.
+ * @see #getConfs()
+ * @see #getConfs(ModuleDescriptor)
+ */
+ public boolean useSpecialConfs() {
+ for (int i = 0; confs != null && i < confs.length; i++) {
+ if (confs[0].startsWith("*")) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @pre can only be called if useSpecialConfs()==false. When it is true,
+ * you have to provide a module desciptor so that configurations can be
resolved.
+ * @see #getConfs(ModuleDescriptor)
+ */
public String[] getConfs() {
+ if (useSpecialConfs()) {
+ throw new AssertionError("ResolveOptions.getConfs() "
+ + "can not be used for options used special confs.");
+ }
return confs;
}
+ /**
+ * Get the aksed confs. Special confs (like *) use the moduleDescriptor
to find the values *
+ * @param md Used to get the exact values for special confs.
+ * */
+ public String[] getConfs(ModuleDescriptor md) {
+ //TODO add isInline, in that case, replace * by *(public).
+ return ConfigurationUtils.replaceWildcards(confs, md);
+ }
+
+
public ResolveOptions setConfs(String[] confs) {
this.confs = confs;
return this;
@@ -227,6 +264,7 @@
return this;
}
+
public static String getDefaultResolveId(ModuleDescriptor md) {
ModuleId module = md.getModuleRevisionId().getModuleId();
return getDefaultResolveId(module);
@@ -235,4 +273,5 @@
public static String getDefaultResolveId(ModuleId moduleId) {
return moduleId.getOrganisation() + "-" + moduleId.getName();
}
+
}
Added: incubator/ivy/core/trunk/test/repositories/1/org2/mod2.2/ivys/ivy-0.8.xml
URL:
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/repositories/1/org2/mod2.2/ivys/ivy-0.8.xml?view=auto&rev=563160
==============================================================================
--- incubator/ivy/core/trunk/test/repositories/1/org2/mod2.2/ivys/ivy-0.8.xml
(added)
+++ incubator/ivy/core/trunk/test/repositories/1/org2/mod2.2/ivys/ivy-0.8.xml
Mon Aug 6 07:57:48 2007
@@ -0,0 +1,36 @@
+<!--
+ 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.
+-->
+<ivy-module version="1.0">
+ <info organisation="org2"
+ module="mod2.2"
+ revision="0.8"
+ status="integration"
+ publication="20041101110000"
+ />
+ <configurations>
+ <conf name="myconf1" description="desc 1" visibility="public"/>
+ <conf name="myconf2" description="desc 2" visibility="private"/>
+ </configurations>
+ <dependencies>
+ <dependency org="org1" name="mod1.3" rev="3.0">
+ <artifact name="mod1.3-A" type="jar"/>
+ <artifact name="mod1.3-B" type="jar" conf="myconf1"/>
+ </dependency>
+ </dependencies>
+</ivy-module>
Propchange:
incubator/ivy/core/trunk/test/repositories/1/org2/mod2.2/ivys/ivy-0.8.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/ivy/core/trunk/test/repositories/1/org2/mod2.2/ivys/ivy-0.8.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"