You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by da...@apache.org on 2020/01/06 14:49:16 UTC
[sling-whiteboard] branch master updated: Use the new builders in
FeatureServiceImpl
This is an automated email from the ASF dual-hosted git repository.
davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git
The following commit(s) were added to refs/heads/master by this push:
new 746a4cf Use the new builders in FeatureServiceImpl
746a4cf is described below
commit 746a4cf5ccaf8884f09c729b06061cd1be8c255a
Author: David Bosschaert <da...@gmail.com>
AuthorDate: Mon Jan 6 14:48:48 2020 +0000
Use the new builders in FeatureServiceImpl
---
.../main/java/org/osgi/feature/BuilderFactory.java | 4 ++++
.../org/osgi/feature/impl/BuilderFactoryImpl.java | 11 ++++++++++
.../org/osgi/feature/impl/FeatureServiceImpl.java | 25 +++++++++++++---------
3 files changed, 30 insertions(+), 10 deletions(-)
diff --git a/osgi-featuremodel/src/main/java/org/osgi/feature/BuilderFactory.java b/osgi-featuremodel/src/main/java/org/osgi/feature/BuilderFactory.java
index 1f80a77..cbbe9a2 100644
--- a/osgi-featuremodel/src/main/java/org/osgi/feature/BuilderFactory.java
+++ b/osgi-featuremodel/src/main/java/org/osgi/feature/BuilderFactory.java
@@ -19,6 +19,10 @@ package org.osgi.feature;
public interface BuilderFactory {
BundleBuilder newBundleBuilder(ArtifactID id);
+ ConfigurationBuilder newConfigurationBuilder(String pid);
+
+ ConfigurationBuilder newConfigurationBuilder(String factoryPid, String name);
+
FeatureBuilder newFeatureBuilder(ArtifactID id);
ExtensionBuilder newExtensionBuilder(String name, Extension.Type type, Extension.Kind kind);
diff --git a/osgi-featuremodel/src/main/java/org/osgi/feature/impl/BuilderFactoryImpl.java b/osgi-featuremodel/src/main/java/org/osgi/feature/impl/BuilderFactoryImpl.java
index 6c1b3bb..52f39f7 100644
--- a/osgi-featuremodel/src/main/java/org/osgi/feature/impl/BuilderFactoryImpl.java
+++ b/osgi-featuremodel/src/main/java/org/osgi/feature/impl/BuilderFactoryImpl.java
@@ -19,6 +19,7 @@ package org.osgi.feature.impl;
import org.osgi.feature.ArtifactID;
import org.osgi.feature.BuilderFactory;
import org.osgi.feature.BundleBuilder;
+import org.osgi.feature.ConfigurationBuilder;
import org.osgi.feature.Extension.Kind;
import org.osgi.feature.Extension.Type;
import org.osgi.feature.ExtensionBuilder;
@@ -32,6 +33,16 @@ class BuilderFactoryImpl implements BuilderFactory {
}
@Override
+ public ConfigurationBuilder newConfigurationBuilder(String pid) {
+ return new ConfigurationBuilderImpl(pid);
+ }
+
+ @Override
+ public ConfigurationBuilder newConfigurationBuilder(String factoryPid, String name) {
+ return new ConfigurationBuilderImpl(factoryPid, name);
+ }
+
+ @Override
public FeatureBuilder newFeatureBuilder(ArtifactID id) {
return new FeatureBuilderImpl(id);
}
diff --git a/osgi-featuremodel/src/main/java/org/osgi/feature/impl/FeatureServiceImpl.java b/osgi-featuremodel/src/main/java/org/osgi/feature/impl/FeatureServiceImpl.java
index a935cc4..c0e224f 100644
--- a/osgi-featuremodel/src/main/java/org/osgi/feature/impl/FeatureServiceImpl.java
+++ b/osgi-featuremodel/src/main/java/org/osgi/feature/impl/FeatureServiceImpl.java
@@ -19,9 +19,13 @@ package org.osgi.feature.impl;
import org.osgi.feature.ArtifactID;
import org.osgi.feature.BuilderFactory;
import org.osgi.feature.Bundle;
+import org.osgi.feature.BundleBuilder;
import org.osgi.feature.Configuration;
+import org.osgi.feature.ConfigurationBuilder;
import org.osgi.feature.Extension;
+import org.osgi.feature.ExtensionBuilder;
import org.osgi.feature.Feature;
+import org.osgi.feature.FeatureBuilder;
import org.osgi.feature.FeatureService;
import org.osgi.feature.MergeContext;
@@ -42,9 +46,11 @@ import javax.json.JsonString;
import javax.json.JsonValue;
public class FeatureServiceImpl implements FeatureService {
+ private final BuilderFactoryImpl builderFactory = new BuilderFactoryImpl();
+
@Override
public BuilderFactory getBuilderFactory() {
- return new BuilderFactoryImpl();
+ return builderFactory;
}
@Override
@@ -52,7 +58,7 @@ public class FeatureServiceImpl implements FeatureService {
JsonObject json = Json.createReader(jsonReader).readObject();
String id = json.getString("id");
- FeatureBuilderImpl builder = new FeatureBuilderImpl(ArtifactID.fromMavenID(id));
+ FeatureBuilder builder = builderFactory.newFeatureBuilder(ArtifactID.fromMavenID(id));
builder.setTitle(json.getString("title", null));
builder.setDescription(json.getString("description", null));
@@ -81,7 +87,7 @@ public class FeatureServiceImpl implements FeatureService {
if (val.getValueType() == JsonValue.ValueType.OBJECT) {
JsonObject jo = val.asJsonObject();
String bid = jo.getString("id");
- BundleBuilderImpl builder = new BundleBuilderImpl(ArtifactID.fromMavenID(bid));
+ BundleBuilder builder = builderFactory.newBundleBuilder(ArtifactID.fromMavenID(bid));
for (Map.Entry<String, JsonValue> entry : jo.entrySet()) {
if (entry.getKey().equals("id"))
@@ -126,11 +132,11 @@ public class FeatureServiceImpl implements FeatureService {
p = p.substring(idx + 1);
}
- ConfigurationBuilderImpl builder;
+ ConfigurationBuilder builder;
if (factoryPid == null) {
- builder = new ConfigurationBuilderImpl(p);
+ builder = builderFactory.newConfigurationBuilder(p);
} else {
- builder = new ConfigurationBuilderImpl(factoryPid, p);
+ builder = builderFactory.newConfigurationBuilder(factoryPid, p);
}
JsonObject values = entry.getValue().asJsonObject();
@@ -186,7 +192,7 @@ public class FeatureServiceImpl implements FeatureService {
String k = exData.getString("kind", "optional");
Extension.Kind kind = Extension.Kind.valueOf(k.toUpperCase());
- ExtensionBuilderImpl builder = new ExtensionBuilderImpl(entry.getKey(), type, kind);
+ ExtensionBuilder builder = builderFactory.newExtensionBuilder(entry.getKey(), type, kind);
switch (type) {
case TEXT:
@@ -219,8 +225,7 @@ public class FeatureServiceImpl implements FeatureService {
@Override
public Feature mergeFeatures(ArtifactID targetID, Feature f1, Feature f2, MergeContext ctx) {
-
- FeatureBuilderImpl fb = new FeatureBuilderImpl(targetID);
+ FeatureBuilder fb = builderFactory.newFeatureBuilder(targetID);
copyAttrs(f1, fb);
copyAttrs(f2, fb);
@@ -309,7 +314,7 @@ public class FeatureServiceImpl implements FeatureService {
return extensions.values().toArray(new Extension[] {});
}
- private void copyAttrs(Feature f, FeatureBuilderImpl fb) {
+ private void copyAttrs(Feature f, FeatureBuilder fb) {
if (f.getTitle() != null)
fb.setTitle(f.getTitle());