diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..15bdd96
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/target
+/.idea
+*.iml
diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml
new file mode 100644
index 0000000..43595bb
--- /dev/null
+++ b/dependency-reduced-pom.xml
@@ -0,0 +1,38 @@
+
+
+ 4.0.0
+ org.archive.jmx
+ cmdline-jmxclient
+ 1
+
+
+
+ maven-shade-plugin
+ 2.4.3
+
+
+ package
+
+ shade
+
+
+
+
+ org.archive.jmx.Client
+
+
+
+
+
+
+
+ maven-compiler-plugin
+
+ 1.8
+ 1.8
+
+
+
+
+
+
diff --git a/maven.xml b/maven.xml
deleted file mode 100644
index da31b4f..0000000
--- a/maven.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..e219b20
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,48 @@
+
+
+ 4.0.0
+ org.archive.jmx
+ cmdline-jmxclient
+ 1
+
+
+
+ com.google.guava
+ guava
+ 20.0
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 2.4.3
+
+
+ package
+
+ shade
+
+
+
+
+ org.archive.jmx.Client
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.8
+ 1.8
+
+
+
+
+
diff --git a/src/java/org/archive/jmx/Client.java b/src/main/java/org/archive/jmx/Client.java
similarity index 95%
rename from src/java/org/archive/jmx/Client.java
rename to src/main/java/org/archive/jmx/Client.java
index 07a5237..47b4129 100644
--- a/src/java/org/archive/jmx/Client.java
+++ b/src/main/java/org/archive/jmx/Client.java
@@ -25,17 +25,17 @@
*/
package org.archive.jmx;
+import com.google.common.collect.BoundType;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.FieldPosition;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
import java.util.logging.ConsoleHandler;
import java.util.logging.Handler;
import java.util.logging.LogRecord;
@@ -43,6 +43,7 @@
import java.util.logging.SimpleFormatter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
import javax.management.Attribute;
import javax.management.AttributeList;
@@ -64,6 +65,8 @@
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
+import static java.util.stream.Collectors.*;
+
/**
* A Simple Command-Line JMX Client.
@@ -651,9 +654,15 @@ protected Object doBeanOperation(MBeanServerConnection mbsc,
: new Object[paraminfosLength];
for (int i = 0; i < paraminfosLength; i++) {
MBeanParameterInfo paraminfo = paraminfos[i];
- java.lang.reflect.Constructor c = Class.forName(
- paraminfo.getType()).getConstructor(
- new Class[] {String.class});
+ java.lang.reflect.Constructor c;
+ if (isPrimitive(paraminfo.getType())) {
+ c = classForPrimitive(paraminfo.getType()).getConstructor(
+ new Class[]{String.class});
+ } else {
+ c = Class.forName(
+ paraminfo.getType()).getConstructor(
+ new Class[]{String.class});
+ }
params[i] =
c.newInstance(new Object[] {parse.getArgs()[i]});
signature[i] = paraminfo.getType();
@@ -665,6 +674,27 @@ protected Object doBeanOperation(MBeanServerConnection mbsc,
return result;
}
+ private static ImmutableMap primitivesToWrappers = ImmutableMap.builder().
+ put("boolean", Boolean.class).
+ put("byte", Byte.class).
+ put("char", Character.class).
+ put("short", Short.class).
+ put("int", Integer.class).
+ put("long", Long.class).
+ put("float", Float.class).
+ put("doulbe", Double.class).
+ build();
+
+ private static boolean isPrimitive(String type) {
+ return primitivesToWrappers.entrySet().
+ stream().map(x -> x.getKey()).
+ collect(toList()).contains(type);
+ }
+
+ private static Class classForPrimitive(String primitive) {
+ return primitivesToWrappers.get(primitive);
+ }
+
protected String listOptions(MBeanServerConnection mbsc,
ObjectInstance instance)
throws InstanceNotFoundException, IntrospectionException,