You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2015/04/16 09:58:39 UTC

[1/3] karaf git commit: [KARAF-1729] Fix possible “bundle xxx is invalid” after killing Karaf

Repository: karaf
Updated Branches:
  refs/heads/master 8cf80ffef -> f33cc7702


[KARAF-1729] Fix possible “bundle xxx is invalid” after killing Karaf


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/f33cc770
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/f33cc770
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/f33cc770

Branch: refs/heads/master
Commit: f33cc770254df7ffb010ecf95b5cbcd36b55da7d
Parents: 8cefa75
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Thu Apr 16 09:58:20 2015 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Thu Apr 16 09:58:30 2015 +0200

----------------------------------------------------------------------
 .../features/internal/region/DigraphHelper.java | 27 +++++++++++++++++---
 .../internal/service/FeaturesServiceImpl.java   |  4 +++
 2 files changed, 27 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/f33cc770/features/core/src/main/java/org/apache/karaf/features/internal/region/DigraphHelper.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/region/DigraphHelper.java b/features/core/src/main/java/org/apache/karaf/features/internal/region/DigraphHelper.java
index 3c71df6..71c77e2 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/region/DigraphHelper.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/region/DigraphHelper.java
@@ -26,6 +26,7 @@ import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -62,10 +63,6 @@ public final class DigraphHelper {
         File digraphFile = bundleContext.getDataFile(DIGRAPH_FILE);
         if (digraphFile == null || !digraphFile.exists()) {
             digraph = new StandardRegionDigraph(bundleContext, threadLocal);
-            Region root = digraph.createRegion(FeaturesServiceImpl.ROOT_REGION);
-            for (Bundle bundle : bundleContext.getBundles()) {
-                root.addBundle(bundle);
-            }
         } else {
             try (
                     InputStream in = new FileInputStream(digraphFile)
@@ -73,6 +70,28 @@ public final class DigraphHelper {
                 digraph = readDigraph(new DataInputStream(in), bundleContext, threadLocal);
             }
         }
+        // Create default region is missing
+        Region defaultRegion = digraph.getRegion(FeaturesServiceImpl.ROOT_REGION);
+        if (defaultRegion == null) {
+            defaultRegion = digraph.createRegion(FeaturesServiceImpl.ROOT_REGION);
+        }
+        // Add all unknown bundle to default region
+        Set<Long> ids = new HashSet<>();
+        for (Bundle bundle : bundleContext.getBundles()) {
+            long id = bundle.getBundleId();
+            ids.add(id);
+            if (digraph.getRegion(id) == null) {
+                defaultRegion.addBundle(id);
+            }
+        }
+        // Clean stalled bundles
+        for (Region region : digraph) {
+            Set<Long> bundleIds = new HashSet<>(region.getBundleIds());
+            bundleIds.removeAll(ids);
+            for (long id : bundleIds) {
+                region.removeBundle(id);
+            }
+        }
         return digraph;
     }
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/f33cc770/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java b/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
index 4c45b24..b003331 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
@@ -59,6 +59,7 @@ import org.apache.karaf.features.Repository;
 import org.apache.karaf.features.RepositoryEvent;
 import org.apache.karaf.features.internal.download.DownloadManager;
 import org.apache.karaf.features.internal.download.DownloadManagers;
+import org.apache.karaf.features.internal.region.DigraphHelper;
 import org.apache.karaf.features.internal.util.JsonReader;
 import org.apache.karaf.features.internal.util.JsonWriter;
 import org.apache.karaf.util.bundles.BundleUtils;
@@ -286,6 +287,9 @@ public class FeaturesServiceImpl implements FeaturesService, Deployer.DeployCall
                     state.bundleChecksums.clear();
                 }
                 storage.save(state);
+                if (bundle != null) { // For tests, this should never happen at runtime
+                    DigraphHelper.saveDigraph(bundle.getBundleContext(), digraph);
+                }
             }
         } catch (IOException e) {
             LOGGER.warn("Error saving FeaturesService state", e);


[3/3] karaf git commit: [KARAF-3670] The client may use a group definition as the default user

Posted by gn...@apache.org.
[KARAF-3670] The client may use a group definition as the default user


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/5e4a8f3c
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/5e4a8f3c
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/5e4a8f3c

Branch: refs/heads/master
Commit: 5e4a8f3c65a45d41126baeb7042fffd316a0e330
Parents: 8cf80ff
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Thu Apr 16 09:57:50 2015 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Thu Apr 16 09:58:30 2015 +0200

----------------------------------------------------------------------
 .../main/java/org/apache/karaf/client/ClientConfig.java  | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/5e4a8f3c/client/src/main/java/org/apache/karaf/client/ClientConfig.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/karaf/client/ClientConfig.java b/client/src/main/java/org/apache/karaf/client/ClientConfig.java
index ab08a72..0773d79 100644
--- a/client/src/main/java/org/apache/karaf/client/ClientConfig.java
+++ b/client/src/main/java/org/apache/karaf/client/ClientConfig.java
@@ -19,13 +19,16 @@ package org.apache.karaf.client;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
+import java.util.HashSet;
 import java.util.Properties;
+import java.util.Set;
 
 import org.slf4j.impl.SimpleLogger;
 
 public class ClientConfig {
 
     private static final String ROLE_DELIMITER = ",";
+    private static final String GROUP_PREFIX = "_g_:";
 
     private String host;
     private int port;
@@ -149,8 +152,14 @@ public class ClientConfig {
 
         Properties usersCfg = loadProps(new File(System.getProperty("karaf.etc") + "/users.properties"));
         if (!usersCfg.isEmpty()) {
+            Set<String> users = new HashSet<>();
+            for (String user : usersCfg.stringPropertyNames()) {
+                if (!user.startsWith(GROUP_PREFIX)) {
+                    users.add(user);
+                }
+            }
             if (user == null) {
-                user = (String) usersCfg.keySet().iterator().next();
+                user = (String) users.iterator().next();
             }
             password = (String) usersCfg.getProperty(user);
             if (password != null && password.contains(ROLE_DELIMITER)) {


[2/3] karaf git commit: Remove unused imports

Posted by gn...@apache.org.
Remove unused imports


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/8cefa756
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/8cefa756
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/8cefa756

Branch: refs/heads/master
Commit: 8cefa7568e10afafb32c06f7fd218423a04e7374
Parents: 5e4a8f3
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Thu Apr 16 09:57:59 2015 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Thu Apr 16 09:58:30 2015 +0200

----------------------------------------------------------------------
 .../java/org/apache/karaf/features/internal/service/Deployer.java  | 2 --
 1 file changed, 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/8cefa756/features/core/src/main/java/org/apache/karaf/features/internal/service/Deployer.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/service/Deployer.java b/features/core/src/main/java/org/apache/karaf/features/internal/service/Deployer.java
index 37c276c..e1d4354 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/service/Deployer.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/service/Deployer.java
@@ -105,8 +105,6 @@ import static org.osgi.framework.Bundle.UNINSTALLED;
 import static org.osgi.framework.namespace.HostNamespace.HOST_NAMESPACE;
 import static org.osgi.framework.namespace.IdentityNamespace.IDENTITY_NAMESPACE;
 import static org.osgi.framework.namespace.IdentityNamespace.TYPE_BUNDLE;
-import static org.osgi.resource.Namespace.CAPABILITY_EFFECTIVE_DIRECTIVE;
-import static org.osgi.resource.Namespace.EFFECTIVE_ACTIVE;
 
 public class Deployer {