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 {