aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/osgi
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2021-04-02 16:59:04 +0200
committergjoranv <gv@verizonmedia.com>2021-04-12 16:13:43 +0200
commitc62b861a30b923c5d1b23732f2131806030ee9e0 (patch)
treee964664339731c1eb436ffe9529af14893fc5ef6 /container-core/src/main/java/com/yahoo/osgi
parent68deb69917fb923aab6d98feaa6fac932c6858ef (diff)
Add java source from container-di.
Diffstat (limited to 'container-core/src/main/java/com/yahoo/osgi')
-rw-r--r--container-core/src/main/java/com/yahoo/osgi/provider/model/ComponentModel.java50
-rw-r--r--container-core/src/main/java/com/yahoo/osgi/provider/model/package-info.java5
2 files changed, 55 insertions, 0 deletions
diff --git a/container-core/src/main/java/com/yahoo/osgi/provider/model/ComponentModel.java b/container-core/src/main/java/com/yahoo/osgi/provider/model/ComponentModel.java
new file mode 100644
index 00000000000..8c501963db3
--- /dev/null
+++ b/container-core/src/main/java/com/yahoo/osgi/provider/model/ComponentModel.java
@@ -0,0 +1,50 @@
+// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.osgi.provider.model;
+
+import com.yahoo.component.ComponentId;
+import com.yahoo.component.ComponentSpecification;
+import com.yahoo.container.bundle.BundleInstantiationSpecification;
+
+/**
+ * Describes how a component should be created.
+ *
+ * Immutable
+ *
+ * @author gjoranv
+ */
+public class ComponentModel {
+
+ public final BundleInstantiationSpecification bundleInstantiationSpec;
+ public final String configId; // only used in the container, null when used in the model
+
+ public ComponentModel(BundleInstantiationSpecification bundleInstantiationSpec, String configId) {
+ if (bundleInstantiationSpec == null)
+ throw new IllegalArgumentException("Null bundle instantiation spec!");
+
+ this.bundleInstantiationSpec = bundleInstantiationSpec;
+ this.configId = configId;
+ }
+
+ public ComponentModel(String idSpec, String classSpec, String bundleSpec, String configId) {
+ this(BundleInstantiationSpecification.getFromStrings(idSpec, classSpec, bundleSpec), configId);
+ }
+
+ // For vespamodel
+ public ComponentModel(BundleInstantiationSpecification bundleInstantiationSpec) {
+ this(bundleInstantiationSpec, null);
+ }
+
+ // For vespamodel
+ public ComponentModel(String idSpec, String classSpec, String bundleSpec) {
+ this(BundleInstantiationSpecification.getFromStrings(idSpec, classSpec, bundleSpec));
+ }
+
+ public ComponentId getComponentId() {
+ return bundleInstantiationSpec.id;
+ }
+
+ public ComponentSpecification getClassId() {
+ return bundleInstantiationSpec.classId;
+ }
+
+}
diff --git a/container-core/src/main/java/com/yahoo/osgi/provider/model/package-info.java b/container-core/src/main/java/com/yahoo/osgi/provider/model/package-info.java
new file mode 100644
index 00000000000..f930f56ae4a
--- /dev/null
+++ b/container-core/src/main/java/com/yahoo/osgi/provider/model/package-info.java
@@ -0,0 +1,5 @@
+// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+@ExportPackage
+package com.yahoo.osgi.provider.model;
+
+import com.yahoo.osgi.annotation.ExportPackage;