You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by hi...@apache.org on 2010/12/20 11:52:44 UTC
svn commit: r1051054 - in /ant/ivy/core/trunk/src/java/org/apache/ivy/osgi:
core/BundleInfoAdapter.java obr/OBRResolver.java repo/BundleRepoResolver.java
Author: hibou
Date: Mon Dec 20 10:52:44 2010
New Revision: 1051054
URL: http://svn.apache.org/viewvc?rev=1051054&view=rev
Log:
- make the osgi metadata loaded only one per resolve
- add a namespace to the osgi extra attribute
Modified:
ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/BundleInfoAdapter.java
ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/obr/OBRResolver.java
ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/BundleRepoResolver.java
Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/BundleInfoAdapter.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/BundleInfoAdapter.java?rev=1051054&r1=1051053&r2=1051054&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/BundleInfoAdapter.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/BundleInfoAdapter.java Mon Dec 20 10:52:44 2010
@@ -26,6 +26,7 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Set;
+import org.apache.ivy.Ivy;
import org.apache.ivy.core.module.descriptor.Artifact;
import org.apache.ivy.core.module.descriptor.Configuration;
import org.apache.ivy.core.module.descriptor.Configuration.Visibility;
@@ -64,7 +65,7 @@ public class BundleInfoAdapter {
public static final String CONF_USE_PREFIX = "use_";
- public static final String EXTRA_ATTRIBUTE_NAME = "osgi";
+ public static final String EXTRA_ATTRIBUTE_NAME = "o:type";
public static final Map/* <String, String> */OSGI_BUNDLE = Collections.singletonMap(
EXTRA_ATTRIBUTE_NAME, BundleInfo.BUNDLE_TYPE);
@@ -78,6 +79,7 @@ public class BundleInfoAdapter {
public static DefaultModuleDescriptor toModuleDescriptor(BundleInfo bundle,
ExecutionEnvironmentProfileProvider profileProvider) throws ProfileNotFoundException {
DefaultModuleDescriptor md = new DefaultModuleDescriptor(null, null);
+ md.addExtraAttributeNamespace("o", Ivy.getIvyHomeURL() + "osgi");
ModuleRevisionId mrid = asMrid(bundle.getSymbolicName(), bundle.getVersion(), OSGI_BUNDLE);
md.setResolvedPublicationDate(new Date());
md.setModuleRevisionId(mrid);
Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/obr/OBRResolver.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/obr/OBRResolver.java?rev=1051054&r1=1051053&r2=1051054&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/obr/OBRResolver.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/obr/OBRResolver.java Mon Dec 20 10:52:44 2010
@@ -46,7 +46,7 @@ public class OBRResolver extends BundleR
this.repoXmlURL = repositoryXmlURL;
}
- protected void ensureInit() {
+ protected void init() {
if (repoXmlFile != null && repoXmlURL != null) {
throw new RuntimeException("The OBR repository resolver " + getName()
+ " couldn't be configured: repoXmlFile and repoXmlUrl cannot be set both");
Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/BundleRepoResolver.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/BundleRepoResolver.java?rev=1051054&r1=1051053&r2=1051054&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/BundleRepoResolver.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/BundleRepoResolver.java Mon Dec 20 10:52:44 2010
@@ -62,7 +62,7 @@ import org.apache.ivy.plugins.version.Ve
import org.apache.ivy.util.Message;
import org.xml.sax.SAXException;
-public class BundleRepoResolver extends BasicResolver {
+public abstract class BundleRepoResolver extends BasicResolver {
private Repository repository = null;
@@ -111,12 +111,13 @@ public class BundleRepoResolver extends
}
protected void ensureInit() {
- if (repoDescriptor != null || repository != null) {
- throw new IllegalStateException("The osgi repository resolver " + getName()
- + " wasn't correctly configured, see previous error in the logs");
+ if (repoDescriptor == null || repository == null) {
+ init();
}
}
+ abstract protected void init();
+
public Repository getRepository() {
ensureInit();
return repository;
@@ -143,7 +144,7 @@ public class BundleRepoResolver extends
private DefaultModuleDescriptor getDependencyMD(DependencyDescriptor dd, ResolveData data) {
ModuleRevisionId mrid = dd.getDependencyRevisionId();
- String osgiAtt = mrid.getAttribute(BundleInfoAdapter.EXTRA_ATTRIBUTE_NAME);
+ String osgiAtt = mrid.getExtraAttribute(BundleInfoAdapter.EXTRA_ATTRIBUTE_NAME);
Map/* <String, Set<BundleCapabilityAndLocation>> */bundleCapabilities = (Map) getRepoDescriptor()
.getBundleByCapabilities().get(osgiAtt);
if (bundleCapabilities == null) {
@@ -268,7 +269,7 @@ public class BundleRepoResolver extends
BundleCandidate found = (BundleCandidate) founds.get(0);
- String osgiAtt = mrid.getAttribute(BundleInfoAdapter.EXTRA_ATTRIBUTE_NAME);
+ String osgiAtt = mrid.getExtraAttribute(BundleInfoAdapter.EXTRA_ATTRIBUTE_NAME);
// for non bundle requirement : log the selected bundle
if (!BundleInfo.BUNDLE_TYPE.equals(osgiAtt)) {
// several candidates with different symbolic name : make an warning about the ambiguity