X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=runtime%2Forg.argeo.slc.support.osgi%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fosgi%2FOsgiBundle.java;h=0296a13d2b436371d222a0890c77925be7b4fcdb;hb=827cc6fa4bff1994f89cb8d925808def5600b5dc;hp=7cce2308350f9d7000d932ce120be25e0bb9d813;hpb=1fdb1b4e7b1d2b0cabb6483238301b857a6392fa;p=gpl%2Fargeo-slc.git
diff --git a/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/OsgiBundle.java b/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/OsgiBundle.java
index 7cce23083..0296a13d2 100644
--- a/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/OsgiBundle.java
+++ b/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/OsgiBundle.java
@@ -16,23 +16,28 @@
package org.argeo.slc.osgi;
-import org.argeo.slc.build.BasicNameVersion;
+import org.argeo.slc.BasicNameVersion;
+import org.argeo.slc.NameVersion;
import org.argeo.slc.build.Distribution;
-import org.argeo.slc.build.NameVersion;
import org.argeo.slc.core.build.ResourceDistribution;
import org.argeo.slc.deploy.DeploymentData;
import org.argeo.slc.deploy.Module;
+import org.argeo.slc.deploy.ModuleDescriptor;
import org.argeo.slc.deploy.TargetData;
import org.argeo.slc.process.RealizedFlow;
import org.osgi.framework.Bundle;
import org.osgi.framework.Constants;
+import org.springframework.core.io.Resource;
+/** A deployed OSGi bundle. */
public class OsgiBundle extends BasicNameVersion implements Module {
+ private static final long serialVersionUID = 35073826504550477L;
+
private ResourceDistribution distribution;
private Long internalBundleId;
- private String label;
+ private String title;
private String description;
public OsgiBundle() {
@@ -52,6 +57,17 @@ public class OsgiBundle extends BasicNameVersion implements Module {
internalBundleId = bundle.getBundleId();
}
+ /**
+ * Initialize from a {@link RealizedFlow}.
+ *
+ * @deprecated introduce an unnecessary dependency. TODO: create a separate
+ * helper.
+ */
+ public OsgiBundle(RealizedFlow realizedFlow) {
+ super(realizedFlow.getModuleName(), realizedFlow.getModuleVersion());
+ }
+
+ /** Utility to avoid NPE. */
private static String getVersionSafe(Bundle bundle) {
Object versionObj = bundle.getHeaders().get(Constants.BUNDLE_VERSION);
if (versionObj != null)
@@ -60,26 +76,35 @@ public class OsgiBundle extends BasicNameVersion implements Module {
return null;
}
- public OsgiBundle(RealizedFlow realizedFlow) {
- super(realizedFlow.getModuleName(), realizedFlow.getModuleVersion());
- }
-
+ /** Unique deployed system id. TODO: use internal bundle id when available? */
public String getDeployedSystemId() {
return getName() + ":" + getVersion();
}
+ /**
+ * OSGi bundle are self-contained and do not require additional deployment
+ * data.
+ *
+ * @return always null
+ */
public DeploymentData getDeploymentData() {
- throw new UnsupportedOperationException();
+ return null;
}
+ /** The related distribution. */
public Distribution getDistribution() {
return distribution;
}
+ /**
+ * The related distribution, a jar file with OSGi metadata referenced by a
+ * {@link Resource}.
+ */
public ResourceDistribution getResourceDistribution() {
return distribution;
}
+ /** TODO: reference the {@link OsgiRuntime} as target data? */
public TargetData getTargetData() {
throw new UnsupportedOperationException();
}
@@ -89,8 +114,8 @@ public class OsgiBundle extends BasicNameVersion implements Module {
}
/**
- * To be used for optimization when looking in the bundle context. Can
- * therefore be null.
+ * Bundle ID used by the OSGi runtime. To be used for optimization when
+ * looking in the bundle context. Can therefore be null.
*/
public Long getInternalBundleId() {
return internalBundleId;
@@ -101,14 +126,16 @@ public class OsgiBundle extends BasicNameVersion implements Module {
this.internalBundleId = internalBundleId;
}
- public String getLabel() {
- return label;
+ /** Value of the Bundle-Name
directive. */
+ public String getTitle() {
+ return title;
}
- public void setLabel(String label) {
- this.label = label;
+ public void setTitle(String label) {
+ this.title = label;
}
+ /** Value of the Bundle-Description
directive. */
public String getDescription() {
return description;
}
@@ -117,4 +144,12 @@ public class OsgiBundle extends BasicNameVersion implements Module {
this.description = description;
}
+ public ModuleDescriptor getModuleDescriptor() {
+ ModuleDescriptor moduleDescriptor = new ModuleDescriptor();
+ moduleDescriptor.setName(getName());
+ moduleDescriptor.setVersion(getVersion());
+ moduleDescriptor.setDescription(description);
+ moduleDescriptor.setTitle(title);
+ return moduleDescriptor;
+ }
}