Repository: karaf Updated Branches: refs/heads/karaf-2.x 744b4ce4b -> 4bc28ef91
AdminServiceMBean now exposes methods that allow passing the InstanceSettings. Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/4bc28ef9 Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/4bc28ef9 Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/4bc28ef9 Branch: refs/heads/karaf-2.x Commit: 4bc28ef916ea2f44094524070740030167be9a1f Parents: 744b4ce Author: Ioannis Canellos <[email protected]> Authored: Tue Jul 29 15:49:08 2014 +0300 Committer: Guillaume Nodet <[email protected]> Committed: Mon Sep 1 09:10:13 2014 +0200 ---------------------------------------------------------------------- .../java/org/apache/karaf/admin/InstanceSettings.java | 3 ++- .../karaf/admin/management/AdminServiceMBean.java | 4 ++++ .../management/internal/AdminServiceMBeanImpl.java | 13 +++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/4bc28ef9/admin/core/src/main/java/org/apache/karaf/admin/InstanceSettings.java ---------------------------------------------------------------------- diff --git a/admin/core/src/main/java/org/apache/karaf/admin/InstanceSettings.java b/admin/core/src/main/java/org/apache/karaf/admin/InstanceSettings.java index f6fc500..deac7e0 100644 --- a/admin/core/src/main/java/org/apache/karaf/admin/InstanceSettings.java +++ b/admin/core/src/main/java/org/apache/karaf/admin/InstanceSettings.java @@ -16,6 +16,7 @@ */ package org.apache.karaf.admin; +import java.io.Serializable; import java.net.URL; import java.util.ArrayList; import java.util.Collections; @@ -23,7 +24,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -public class InstanceSettings { +public class InstanceSettings implements Serializable { private final int sshPort; private final int rmiRegistryPort; private final int rmiServerPort; http://git-wip-us.apache.org/repos/asf/karaf/blob/4bc28ef9/admin/management/src/main/java/org/apache/karaf/admin/management/AdminServiceMBean.java ---------------------------------------------------------------------- diff --git a/admin/management/src/main/java/org/apache/karaf/admin/management/AdminServiceMBean.java b/admin/management/src/main/java/org/apache/karaf/admin/management/AdminServiceMBean.java index f11d053..1d1f620 100644 --- a/admin/management/src/main/java/org/apache/karaf/admin/management/AdminServiceMBean.java +++ b/admin/management/src/main/java/org/apache/karaf/admin/management/AdminServiceMBean.java @@ -16,6 +16,8 @@ */ package org.apache.karaf.admin.management; +import org.apache.karaf.admin.InstanceSettings; + import javax.management.openmbean.TabularData; public interface AdminServiceMBean { @@ -34,6 +36,7 @@ public interface AdminServiceMBean { INSTANCE_RMI_SERVER_PORT, INSTANCE_STATE, INSTANCE_LOCATION, INSTANCE_JAVAOPTS }; // Operations + int createInstance(String name, InstanceSettings settings) throws Exception; int createInstance(String name, int sshPort, int rmiRegistryPort, int rmiServerPort, String location, String javaOpts, String features, String featureURLs) throws Exception; int createInstance(String name, int sshPort, int rmiRegistryPort, int rmiServerPort, String location, String javaOpts, String features, String featureURLs, String address) throws Exception; void changeSshPort(String name, int port) throws Exception; @@ -47,6 +50,7 @@ public interface AdminServiceMBean { void startInstance(String name, String opts, boolean wait) throws Exception; void stopInstance(String name) throws Exception; void renameInstance(String originalName, String newName) throws Exception; + void cloneInstance(String name, String cloneName, InstanceSettings settings) throws Exception; void cloneInstance(String name, String cloneName, int sshPort, int rmiRegistryPort, int rmiServerPort, String location, String javaOpts) throws Exception; // Attributes http://git-wip-us.apache.org/repos/asf/karaf/blob/4bc28ef9/admin/management/src/main/java/org/apache/karaf/admin/management/internal/AdminServiceMBeanImpl.java ---------------------------------------------------------------------- diff --git a/admin/management/src/main/java/org/apache/karaf/admin/management/internal/AdminServiceMBeanImpl.java b/admin/management/src/main/java/org/apache/karaf/admin/management/internal/AdminServiceMBeanImpl.java index 5ab40c7..b184307 100644 --- a/admin/management/src/main/java/org/apache/karaf/admin/management/internal/AdminServiceMBeanImpl.java +++ b/admin/management/src/main/java/org/apache/karaf/admin/management/internal/AdminServiceMBeanImpl.java @@ -48,6 +48,15 @@ public class AdminServiceMBeanImpl extends StandardMBean implements AdminService this.adminService = adminService; } + public int createInstance(String name, InstanceSettings settings) throws Exception { + Instance inst = adminService.createInstance(name, settings); + if (inst != null) { + return inst.getPid(); + } else { + return -1; + } + } + public int createInstance(String name, int sshPort, int rmiRegistryPort, int rmiServerPort, String location, String javaOpts, String features, String featureURLs) throws Exception { return this.createInstance(name, sshPort, rmiRegistryPort, rmiServerPort, location, javaOpts, features, featureURLs, "0.0.0.0"); @@ -131,6 +140,10 @@ public class AdminServiceMBeanImpl extends StandardMBean implements AdminService adminService.renameInstance(originalName, newName); } + public void cloneInstance(String name, String cloneName, InstanceSettings settings) throws Exception { + adminService.cloneInstance(name, cloneName, settings); + } + public void cloneInstance(String name, String cloneName, int sshPort, int rmiRegistryPort, int rmiServerPort, String location, String javaOpts) throws Exception { if ("".equals(location)) { location = null;
