You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by si...@apache.org on 2019/06/19 22:28:39 UTC

[sling-org-apache-sling-feature-inventoryprinter] branch r2f updated: [r2f] InventoryPrinters implementation simplified via new r2f APIs

This is an automated email from the ASF dual-hosted git repository.

simonetripodi pushed a commit to branch r2f
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-inventoryprinter.git


The following commit(s) were added to refs/heads/r2f by this push:
     new 1de976e  [r2f] InventoryPrinters implementation simplified via new r2f APIs
1de976e is described below

commit 1de976e8562c92d6884a7512c8b3eb99d64428c8
Author: Simo Tripodi <st...@adobe.com>
AuthorDate: Thu Jun 20 00:28:32 2019 +0200

    [r2f] InventoryPrinters implementation simplified via new r2f APIs
---
 .../impl/AbstractFeatureInventoryPrinter.java      | 11 ++++---
 ...ractRuntimeEnvironment2FeatureModelPrinter.java | 38 ----------------------
 .../impl/FeaturesInventoryPrinter.java             |  7 ++--
 .../impl/Launch2RuntimeInventoryPrinter.java       | 20 ++----------
 .../impl/RuntimeInventoryPrinter.java              |  6 ++--
 5 files changed, 15 insertions(+), 67 deletions(-)

diff --git a/src/main/java/org/apache/sling/feature/inventoryservice/impl/AbstractFeatureInventoryPrinter.java b/src/main/java/org/apache/sling/feature/inventoryservice/impl/AbstractFeatureInventoryPrinter.java
index 63ba605..536b334 100644
--- a/src/main/java/org/apache/sling/feature/inventoryservice/impl/AbstractFeatureInventoryPrinter.java
+++ b/src/main/java/org/apache/sling/feature/inventoryservice/impl/AbstractFeatureInventoryPrinter.java
@@ -18,6 +18,8 @@
  */
 package org.apache.sling.feature.inventoryservice.impl;
 
+import static org.apache.sling.feature.io.json.FeatureJSONWriter.write;
+
 import java.io.PrintWriter;
 
 import org.apache.felix.inventory.Format;
@@ -27,20 +29,21 @@ import org.apache.sling.feature.r2f.RuntimeEnvironment2FeatureModel;
 
 abstract class AbstractFeatureInventoryPrinter implements InventoryPrinter {
 
-
     protected RuntimeEnvironment2FeatureModel generator;
 
     @Override
     public final void print(PrintWriter printWriter, Format format, boolean isZip) {
         try {
-            Feature launchFeature = generator.getLaunchFeature();
-            onLaunchFeature(launchFeature, printWriter);
+            Feature computedFeature = getComputedFeature();
+            write(printWriter, computedFeature);
         } catch (Throwable t) {
             t.printStackTrace(printWriter);
         }
         printWriter.println();
     }
 
-    protected abstract void onLaunchFeature(Feature launchFeature, PrintWriter printWriter) throws Exception;
+    protected abstract Feature getComputedFeature();
+
+    
 
 }
diff --git a/src/main/java/org/apache/sling/feature/inventoryservice/impl/AbstractRuntimeEnvironment2FeatureModelPrinter.java b/src/main/java/org/apache/sling/feature/inventoryservice/impl/AbstractRuntimeEnvironment2FeatureModelPrinter.java
deleted file mode 100644
index 8d1bdeb..0000000
--- a/src/main/java/org/apache/sling/feature/inventoryservice/impl/AbstractRuntimeEnvironment2FeatureModelPrinter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.
- */
-package org.apache.sling.feature.inventoryservice.impl;
-
-import static org.apache.sling.feature.io.json.FeatureJSONWriter.write;
-
-import java.io.PrintWriter;
-
-import org.apache.sling.feature.Feature;
-
-abstract class AbstractRuntimeEnvironment2FeatureModelPrinter extends AbstractFeatureInventoryPrinter {
-
-    @Override
-    protected void onLaunchFeature(Feature launchFeature, PrintWriter printWriter) throws Exception {
-        Feature runtimeFeature = generator.getRuntimeFeature();
-
-        Feature computedFeature = compute(launchFeature, runtimeFeature);
-
-        write(printWriter, computedFeature);
-    }
-
-    protected abstract Feature compute(Feature launchFeature, Feature runtimeFeature);
-
-}
diff --git a/src/main/java/org/apache/sling/feature/inventoryservice/impl/FeaturesInventoryPrinter.java b/src/main/java/org/apache/sling/feature/inventoryservice/impl/FeaturesInventoryPrinter.java
index 3e352eb..f348b52 100644
--- a/src/main/java/org/apache/sling/feature/inventoryservice/impl/FeaturesInventoryPrinter.java
+++ b/src/main/java/org/apache/sling/feature/inventoryservice/impl/FeaturesInventoryPrinter.java
@@ -21,9 +21,6 @@ package org.apache.sling.feature.inventoryservice.impl;
 import static org.apache.felix.inventory.InventoryPrinter.FORMAT;
 import static org.apache.felix.inventory.InventoryPrinter.NAME;
 import static org.apache.felix.inventory.InventoryPrinter.TITLE;
-import static org.apache.sling.feature.io.json.FeatureJSONWriter.write;
-
-import java.io.PrintWriter;
 
 import org.apache.felix.inventory.InventoryPrinter;
 import org.apache.sling.feature.Feature;
@@ -45,8 +42,8 @@ import org.osgi.service.component.annotations.Reference;
 public class FeaturesInventoryPrinter extends AbstractFeatureInventoryPrinter {
 
     @Override
-    protected void onLaunchFeature(Feature launchFeature, PrintWriter printWriter) throws Exception {
-        write(printWriter, launchFeature);
+    protected Feature getComputedFeature() {
+        return generator.getLaunchFeature();
     }
 
 }
diff --git a/src/main/java/org/apache/sling/feature/inventoryservice/impl/Launch2RuntimeInventoryPrinter.java b/src/main/java/org/apache/sling/feature/inventoryservice/impl/Launch2RuntimeInventoryPrinter.java
index d43eca9..32a02f0 100644
--- a/src/main/java/org/apache/sling/feature/inventoryservice/impl/Launch2RuntimeInventoryPrinter.java
+++ b/src/main/java/org/apache/sling/feature/inventoryservice/impl/Launch2RuntimeInventoryPrinter.java
@@ -19,12 +19,9 @@ package org.apache.sling.feature.inventoryservice.impl;
 import static org.apache.felix.inventory.InventoryPrinter.FORMAT;
 import static org.apache.felix.inventory.InventoryPrinter.NAME;
 import static org.apache.felix.inventory.InventoryPrinter.TITLE;
-import static org.apache.sling.feature.diff.FeatureDiff.compareFeatures;
 
 import org.apache.felix.inventory.InventoryPrinter;
-import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.Feature;
-import org.apache.sling.feature.diff.DiffRequest;
 import org.apache.sling.feature.r2f.RuntimeEnvironment2FeatureModel;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
@@ -40,22 +37,11 @@ import org.osgi.service.component.annotations.Reference;
         @Reference(field = "generator", name = "generator", service = RuntimeEnvironment2FeatureModel.class)
     }
 )
-public class Launch2RuntimeInventoryPrinter extends AbstractRuntimeEnvironment2FeatureModelPrinter {
+public class Launch2RuntimeInventoryPrinter extends AbstractFeatureInventoryPrinter {
 
     @Override
-    protected Feature compute(Feature launchFeature, Feature runtimeFeature) {
-        Feature featureDiff = compareFeatures(new DiffRequest()
-                                              .setPrevious(launchFeature)
-                                              .setCurrent(runtimeFeature)
-                                              .addIncludeComparator("bundles")
-                                              .addIncludeComparator("configurations")
-                                              .setResultId(new ArtifactId(runtimeFeature.getId().getGroupId(),
-                                                                          runtimeFeature.getId().getArtifactId(), 
-                                                                          runtimeFeature.getId().getVersion(),
-                                                                          runtimeFeature.getId().getClassifier() + "_updater",
-                                                                          runtimeFeature.getId().getType())));
-
-        return featureDiff;
+    protected Feature getComputedFeature() {
+        return generator.getLaunch2RuntimeUpgradingFeature();
     }
 
 }
diff --git a/src/main/java/org/apache/sling/feature/inventoryservice/impl/RuntimeInventoryPrinter.java b/src/main/java/org/apache/sling/feature/inventoryservice/impl/RuntimeInventoryPrinter.java
index c9e538a..8f7fc1a 100644
--- a/src/main/java/org/apache/sling/feature/inventoryservice/impl/RuntimeInventoryPrinter.java
+++ b/src/main/java/org/apache/sling/feature/inventoryservice/impl/RuntimeInventoryPrinter.java
@@ -37,11 +37,11 @@ import org.osgi.service.component.annotations.Reference;
         @Reference(field = "generator", name = "generator", service = RuntimeEnvironment2FeatureModel.class)
     }
 )
-public final class RuntimeInventoryPrinter extends AbstractRuntimeEnvironment2FeatureModelPrinter {
+public final class RuntimeInventoryPrinter extends AbstractFeatureInventoryPrinter {
 
     @Override
-    protected Feature compute(Feature previousFeature, Feature currentFeature) {
-        return currentFeature;
+    protected Feature getComputedFeature() {
+        return generator.getRuntimeFeature();
     }
 
 }