[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-12-04 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15042077#comment-15042077
 ] 

ASF GitHub Bot commented on STORM-904:
--

Github user dossett closed the pull request at:

https://github.com/apache/storm/pull/913


> move storm bin commands to java and provide appropriate bindings for windows 
> and linux
> --
>
> Key: STORM-904
> URL: https://issues.apache.org/jira/browse/STORM-904
> Project: Apache Storm
>  Issue Type: Bug
>  Components: storm-core
>Reporter: Sriharsha Chintalapani
>Assignee: Priyank Shah
>
> Currently we have python and .cmd implementation for windows. This is 
> becoming increasing difficult upkeep both versions. Lets make all the main 
> code of starting daemons etc. to java and provider wrapper scripts in shell 
> and batch for linux and windows respectively. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-12-02 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15035960#comment-15035960
 ] 

ASF GitHub Bot commented on STORM-904:
--

GitHub user dossett opened a pull request:

https://github.com/apache/storm/pull/913

Fix typo in get_jars_full

I was considering writing a python unit test to go with this change, but 
given the discussion in STORM-904 that doesn't seem useful if this will be 
migrated to java soon.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/dossett/storm patch-1

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/storm/pull/913.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #913


commit 27b5cd9eae56ed69cfb23fbc3d0e1d165fdff89e
Author: Aaron Niskode-Dossett 
Date:   2015-12-02T15:27:02Z

Fix typo in get_jars_full




> move storm bin commands to java and provide appropriate bindings for windows 
> and linux
> --
>
> Key: STORM-904
> URL: https://issues.apache.org/jira/browse/STORM-904
> Project: Apache Storm
>  Issue Type: Bug
>  Components: storm-core
>Reporter: Sriharsha Chintalapani
>Assignee: Priyank Shah
>
> Currently we have python and .cmd implementation for windows. This is 
> becoming increasing difficult upkeep both versions. Lets make all the main 
> code of starting daemons etc. to java and provider wrapper scripts in shell 
> and batch for linux and windows respectively. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-11-18 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15011585#comment-15011585
 ] 

ASF GitHub Bot commented on STORM-904:
--

Github user priyank5485 commented on the pull request:

https://github.com/apache/storm/pull/662#issuecomment-157808005
  
@longdafeng Also please see one of the previous comments about why not to 
use python.


> move storm bin commands to java and provide appropriate bindings for windows 
> and linux
> --
>
> Key: STORM-904
> URL: https://issues.apache.org/jira/browse/STORM-904
> Project: Apache Storm
>  Issue Type: Bug
>  Components: storm-core
>Reporter: Sriharsha Chintalapani
>Assignee: Priyank Shah
>
> Currently we have python and .cmd implementation for windows. This is 
> becoming increasing difficult upkeep both versions. Lets make all the main 
> code of starting daemons etc. to java and provider wrapper scripts in shell 
> and batch for linux and windows respectively. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-11-18 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15011555#comment-15011555
 ] 

ASF GitHub Bot commented on STORM-904:
--

Github user priyank5485 commented on the pull request:

https://github.com/apache/storm/pull/662#issuecomment-157804563
  
@hustfxj  I might have missed something and its been a long time since i 
did this. I could not find any storm command that would not need a waitFor. Can 
you give an example? If we do need that flag it should be easy to add and I can 
change that.

@longdafeng I am not sure I understand the point about debugging. You can 
still put a break point in this java version of storm command line. I agree 
with you that its easier to write new functions in script. But the whole point 
of this JIRA is to have one client that works for Unix based systems and 
Windows platform. The last time I was working on it we had storm.py for Unix 
and storm batch client for windows. Both of them also had a separate file for 
environment variables. It is hard to maintain two scripts anytime we want to 
change the storm command. We can ask others about their opinion and what they 
think is better between the two approaches.


> move storm bin commands to java and provide appropriate bindings for windows 
> and linux
> --
>
> Key: STORM-904
> URL: https://issues.apache.org/jira/browse/STORM-904
> Project: Apache Storm
>  Issue Type: Bug
>  Components: storm-core
>Reporter: Sriharsha Chintalapani
>Assignee: Priyank Shah
>
> Currently we have python and .cmd implementation for windows. This is 
> becoming increasing difficult upkeep both versions. Lets make all the main 
> code of starting daemons etc. to java and provider wrapper scripts in shell 
> and batch for linux and windows respectively. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-11-18 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15010827#comment-15010827
 ] 

ASF GitHub Bot commented on STORM-904:
--

Github user longdafeng commented on the pull request:

https://github.com/apache/storm/pull/662#issuecomment-157686065
  
@priyank5485 

I don't prefer switch storm.py from python to java. Because  I often add 
debug point in the storm.py, it is very easy to debug in online 
system(especially when environment is bad or jvm parameter is wrong). if we 
change to java version, it is very hard to debug. 

Another point is that python's code is more easy to add new functions in 
the script. 




> move storm bin commands to java and provide appropriate bindings for windows 
> and linux
> --
>
> Key: STORM-904
> URL: https://issues.apache.org/jira/browse/STORM-904
> Project: Apache Storm
>  Issue Type: Bug
>  Components: storm-core
>Reporter: Sriharsha Chintalapani
>Assignee: Priyank Shah
>
> Currently we have python and .cmd implementation for windows. This is 
> becoming increasing difficult upkeep both versions. Lets make all the main 
> code of starting daemons etc. to java and provider wrapper scripts in shell 
> and batch for linux and windows respectively. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-11-18 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15010812#comment-15010812
 ] 

ASF GitHub Bot commented on STORM-904:
--

Github user hustfxj commented on a diff in the pull request:

https://github.com/apache/storm/pull/662#discussion_r45188898
  
--- Diff: storm-core/src/jvm/backtype/storm/utils/StormCommandExecutor.java 
---
@@ -0,0 +1,868 @@
+package backtype.storm.utils;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+
+import clojure.lang.IFn;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.SystemUtils;
+
+/**
+ * Created by pshah on 7/17/15.
+ */
+abstract class StormCommandExecutor {
+final String NIMBUS_CLASS = "backtype.storm.daemon.nimbus";
+final String SUPERVISOR_CLASS = "backtype.storm.daemon.supervisor";
+final String UI_CLASS = "backtype.storm.ui.core";
+final String LOGVIEWER_CLASS = "backtype.storm.daemon.logviewer";
+final String DRPC_CLASS = "backtype.storm.daemon.drpc";
+final String REPL_CLASS = "clojure.main";
+final String ACTIVATE_CLASS = "backtype.storm.command.activate";
+final String DEACTIVATE_CLASS = "backtype.storm.command.deactivate";
+final String REBALANCE_CLASS = "backtype.storm.command.rebalance";
+final String LIST_CLASS = "backtype.storm.command.list";
+final String DEVZOOKEEPER_CLASS = 
"backtype.storm.command.dev_zookeeper";
+final String VERSION_CLASS = "backtype.storm.utils.VersionInfo";
+final String MONITOR_CLASS = "backtype.storm.command.monitor";
+final String UPLOADCREDENTIALS_CLASS = "backtype.storm.command" +
+".upload_credentials";
+final String GETERRORS_CLASS = "backtype.storm.command.get_errors";
+final String SHELL_CLASS = "backtype.storm.command.shell_submission";
+String stormHomeDirectory;
+String userConfDirectory;
+String stormConfDirectory;
+String clusterConfDirectory;
+String stormLibDirectory;
+String stormBinDirectory;
+String stormLog4jConfDirectory;
+String configFile = "";
+String javaCommand;
+List configOptions = new ArrayList();
+String stormExternalClasspath;
+String stormExternalClasspathDaemon;
+String fileSeparator;
+final List COMMANDS = Arrays.asList("jar", "kill", "shell",
+"nimbus", "ui", "logviewer", "drpc", "supervisor",
+"localconfvalue",  "remoteconfvalue", "repl", "classpath",
+"activate", "deactivate", "rebalance", "help",  "list",
+"dev-zookeeper", "version", "monitor", "upload-credentials",
+"get-errors");
+
+public static void main (String[] args) {
+for (String arg : args) {
+System.out.println("Argument ++ is " + arg);
+}
+StormCommandExecutor stormCommandExecutor;
+if (System.getProperty("os.name").startsWith("Windows")) {
+stormCommandExecutor = new WindowsStormCommandExecutor();
+} else {
+stormCommandExecutor = new UnixStormCommandExecutor();
+}
+stormCommandExecutor.initialize();
+stormCommandExecutor.execute(args);
+}
+
+StormCommandExecutor () {
+
+}
+
+abstract void initialize ();
+
+abstract void execute (String[] args);
+
+void callMethod (String command, List args) {
+Class implementation = this.getClass();
+String methodName = command.replace("-", "") + "Command";
+try {
+Method method = implementation.getDeclaredMethod(methodName, 
List
+.class);
+method.invoke(this, args);
+} catch (NoSuchMethodException ex) {
+System.out.println("No such method exception occured while 
trying" +
+" to run storm method " + command);
+} catch (IllegalAccessException ex) {
+System.out.println("Illegal access exception occured while 
trying" +
+" to run storm method " + command);
+} catch (IllegalArgumentException ex) {
+System.out.println("Illegal argument exception occured while " 
+
+"trying" + " to run storm method " + command);
+} catch (InvocationTargetException ex) {
+System.out.println("Invocation target exception occured while 
" +
 

[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-11-17 Thread Priyank Shah (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15009320#comment-15009320
 ] 

Priyank Shah commented on STORM-904:


I have not worked on this in a while. The windows implementation is not done 
yet. Besides, the Unix based implementation will also need to be updated based 
on any additions to the command line. It needs an upmerge and additional review 
as well. I have updated the JIRA to Stop Progress for now. Sorry for not doing 
it sooner. 

> move storm bin commands to java and provide appropriate bindings for windows 
> and linux
> --
>
> Key: STORM-904
> URL: https://issues.apache.org/jira/browse/STORM-904
> Project: Apache Storm
>  Issue Type: Bug
>  Components: storm-core
>Reporter: Sriharsha Chintalapani
>Assignee: Priyank Shah
>
> Currently we have python and .cmd implementation for windows. This is 
> becoming increasing difficult upkeep both versions. Lets make all the main 
> code of starting daemons etc. to java and provider wrapper scripts in shell 
> and batch for linux and windows respectively. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-11-17 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15008779#comment-15008779
 ] 

ASF GitHub Bot commented on STORM-904:
--

Github user ptgoetz commented on the pull request:

https://github.com/apache/storm/pull/662#issuecomment-157395059
  
Any update on this PR? It would seem it at least needs an upmerge and 
additional review.


> move storm bin commands to java and provide appropriate bindings for windows 
> and linux
> --
>
> Key: STORM-904
> URL: https://issues.apache.org/jira/browse/STORM-904
> Project: Apache Storm
>  Issue Type: Bug
>  Components: storm-core
>Reporter: Sriharsha Chintalapani
>Assignee: Priyank Shah
>
> Currently we have python and .cmd implementation for windows. This is 
> becoming increasing difficult upkeep both versions. Lets make all the main 
> code of starting daemons etc. to java and provider wrapper scripts in shell 
> and batch for linux and windows respectively. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-08-13 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14695915#comment-14695915
 ] 

ASF GitHub Bot commented on STORM-904:
--

Github user harshach commented on the pull request:

https://github.com/apache/storm/pull/662#issuecomment-130838110
  
@knusbaum it will make lot easier for commands to be in java and we can 
have just wrappers for windows & nix* os. We don't need to have python 
dependency and in our experience of running python to execute java command to 
start a jvm takes lot of time and in larger clusters Ambari times out these 
commands.


> move storm bin commands to java and provide appropriate bindings for windows 
> and linux
> --
>
> Key: STORM-904
> URL: https://issues.apache.org/jira/browse/STORM-904
> Project: Apache Storm
>  Issue Type: Bug
>Reporter: Sriharsha Chintalapani
>Assignee: Priyank Shah
>
> Currently we have python and .cmd implementation for windows. This is 
> becoming increasing difficult upkeep both versions. Lets make all the main 
> code of starting daemons etc. to java and provider wrapper scripts in shell 
> and batch for linux and windows respectively. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-08-13 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14695899#comment-14695899
 ] 

ASF GitHub Bot commented on STORM-904:
--

Github user knusbaum commented on the pull request:

https://github.com/apache/storm/pull/662#issuecomment-130832806
  
I have a little confusion about why we're moving the python to java instead 
of just having the storm.cmd run the existing storm.py.

I'm all in favor of de-duplicating the storm.py and storm.cmd commands, but 
rather than reimplementing storm.py, I'd rather reuse it.


> move storm bin commands to java and provide appropriate bindings for windows 
> and linux
> --
>
> Key: STORM-904
> URL: https://issues.apache.org/jira/browse/STORM-904
> Project: Apache Storm
>  Issue Type: Bug
>Reporter: Sriharsha Chintalapani
>Assignee: Priyank Shah
>
> Currently we have python and .cmd implementation for windows. This is 
> becoming increasing difficult upkeep both versions. Lets make all the main 
> code of starting daemons etc. to java and provider wrapper scripts in shell 
> and batch for linux and windows respectively. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-08-05 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14658501#comment-14658501
 ] 

ASF GitHub Bot commented on STORM-904:
--

Github user priyank5485 commented on a diff in the pull request:

https://github.com/apache/storm/pull/662#discussion_r36324914
  
--- Diff: storm-core/src/jvm/backtype/storm/utils/StormCommandExecutor.java 
---
@@ -0,0 +1,785 @@
+package backtype.storm.utils;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+
+import clojure.lang.IFn;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.SystemUtils;
+
+/**
+ * Created by pshah on 7/17/15.
+ */
+abstract class StormCommandExecutor {
+final String NIMBUS_CLASS = "backtype.storm.daemon.nimbus";
+final String SUPERVISOR_CLASS = "backtype.storm.daemon.supervisor";
+final String UI_CLASS = "backtype.storm.ui.core";
+final String LOGVIEWER_CLASS = "backtype.storm.daemon.logviewer";
+final String DRPC_CLASS = "backtype.storm.daemon.drpc";
+final String REPL_CLASS = "clojure.main";
+final String ACTIVATE_CLASS = "backtype.storm.command.activate";
+final String DEACTIVATE_CLASS = "backtype.storm.command.deactivate";
+final String REBALANCE_CLASS = "backtype.storm.command.rebalance";
+final String LIST_CLASS = "backtype.storm.command.list";
+String stormHomeDirectory;
+String userConfDirectory;
+String stormConfDirectory;
+String clusterConfDirectory;
+String stormLibDirectory;
+String stormBinDirectory;
+String stormLog4jConfDirectory;
+String configFile = "";
+String javaCommand;
+List configOptions = new ArrayList();
+String stormExternalClasspath;
+String stormExternalClasspathDaemon;
+String fileSeparator;
+final List COMMANDS = Arrays.asList("jar", "kill", "shell",
+"nimbus", "ui", "logviewer", "drpc", "supervisor",
+"localconfvalue",  "remoteconfvalue", "repl", "classpath",
+"activate", "deactivate", "rebalance", "help",  "list",
+"dev-zookeeper", "version", "monitor", "upload-credentials",
+"get-errors");
+
+public static void main (String[] args) {
+for (String arg : args) {
+System.out.println("Argument ++ is " + arg);
+}
+StormCommandExecutor stormCommandExecutor;
+if (System.getProperty("os.name").startsWith("Windows")) {
+stormCommandExecutor = new WindowsStormCommandExecutor();
+} else {
+stormCommandExecutor = new UnixStormCommandExecutor();
+}
+stormCommandExecutor.initialize();
+stormCommandExecutor.execute(args);
+}
+
+StormCommandExecutor () {
+
+}
+
+abstract void initialize ();
+
+abstract void execute (String[] args);
+
+void callMethod (String command, List args) {
+Class implementation = this.getClass();
+String methodName = command.replace("-", "") + "Command";
+try {
+Method method = implementation.getDeclaredMethod(methodName, 
List
+.class);
+method.invoke(this, args);
+} catch (NoSuchMethodException ex) {
+System.out.println("No such method exception occured while 
trying" +
+" to run storm method " + command);
+} catch (IllegalAccessException ex) {
+System.out.println("Illegal access exception occured while 
trying" +
+" to run storm method " + command);
+} catch (IllegalArgumentException ex) {
+System.out.println("Illegal argument exception occured while " 
+
+"trying" + " to run storm method " + command);
+} catch (InvocationTargetException ex) {
+System.out.println("Invocation target exception occured while 
" +
+"trying" + " to run storm method " + command);
+}
+}
+}
+
+class UnixStormCommandExecutor extends StormCommandExecutor {
+
+UnixStormCommandExecutor () {
+
+}
+
+void initialize () {
+Collections.sort(this.COMMANDS);
+this.fileSeparator = System .getProperty ("file.separator");
+this.stormHomeDirectory = System.getenv("STORM_BASE_DIR");
+this.userConfDire

[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-08-05 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14655066#comment-14655066
 ] 

ASF GitHub Bot commented on STORM-904:
--

Github user caofangkun commented on a diff in the pull request:

https://github.com/apache/storm/pull/662#discussion_r36284000
  
--- Diff: storm-core/src/jvm/backtype/storm/utils/StormCommandExecutor.java 
---
@@ -0,0 +1,785 @@
+package backtype.storm.utils;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+
+import clojure.lang.IFn;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.SystemUtils;
+
+/**
+ * Created by pshah on 7/17/15.
+ */
+abstract class StormCommandExecutor {
+final String NIMBUS_CLASS = "backtype.storm.daemon.nimbus";
+final String SUPERVISOR_CLASS = "backtype.storm.daemon.supervisor";
+final String UI_CLASS = "backtype.storm.ui.core";
+final String LOGVIEWER_CLASS = "backtype.storm.daemon.logviewer";
+final String DRPC_CLASS = "backtype.storm.daemon.drpc";
+final String REPL_CLASS = "clojure.main";
+final String ACTIVATE_CLASS = "backtype.storm.command.activate";
+final String DEACTIVATE_CLASS = "backtype.storm.command.deactivate";
+final String REBALANCE_CLASS = "backtype.storm.command.rebalance";
+final String LIST_CLASS = "backtype.storm.command.list";
+String stormHomeDirectory;
+String userConfDirectory;
+String stormConfDirectory;
+String clusterConfDirectory;
+String stormLibDirectory;
+String stormBinDirectory;
+String stormLog4jConfDirectory;
+String configFile = "";
+String javaCommand;
+List configOptions = new ArrayList();
+String stormExternalClasspath;
+String stormExternalClasspathDaemon;
+String fileSeparator;
+final List COMMANDS = Arrays.asList("jar", "kill", "shell",
+"nimbus", "ui", "logviewer", "drpc", "supervisor",
+"localconfvalue",  "remoteconfvalue", "repl", "classpath",
+"activate", "deactivate", "rebalance", "help",  "list",
+"dev-zookeeper", "version", "monitor", "upload-credentials",
+"get-errors");
+
+public static void main (String[] args) {
+for (String arg : args) {
+System.out.println("Argument ++ is " + arg);
+}
+StormCommandExecutor stormCommandExecutor;
+if (System.getProperty("os.name").startsWith("Windows")) {
+stormCommandExecutor = new WindowsStormCommandExecutor();
+} else {
+stormCommandExecutor = new UnixStormCommandExecutor();
+}
+stormCommandExecutor.initialize();
+stormCommandExecutor.execute(args);
+}
+
+StormCommandExecutor () {
+
+}
+
+abstract void initialize ();
+
+abstract void execute (String[] args);
+
+void callMethod (String command, List args) {
+Class implementation = this.getClass();
+String methodName = command.replace("-", "") + "Command";
+try {
+Method method = implementation.getDeclaredMethod(methodName, 
List
+.class);
+method.invoke(this, args);
+} catch (NoSuchMethodException ex) {
+System.out.println("No such method exception occured while 
trying" +
+" to run storm method " + command);
+} catch (IllegalAccessException ex) {
+System.out.println("Illegal access exception occured while 
trying" +
+" to run storm method " + command);
+} catch (IllegalArgumentException ex) {
+System.out.println("Illegal argument exception occured while " 
+
+"trying" + " to run storm method " + command);
+} catch (InvocationTargetException ex) {
+System.out.println("Invocation target exception occured while 
" +
+"trying" + " to run storm method " + command);
+}
+}
+}
+
+class UnixStormCommandExecutor extends StormCommandExecutor {
+
+UnixStormCommandExecutor () {
+
+}
+
+void initialize () {
+Collections.sort(this.COMMANDS);
+this.fileSeparator = System .getProperty ("file.separator");
+this.stormHomeDirectory = System.getenv("STORM_BASE_DIR");
+this.userConfDirec

[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-07-31 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14649624#comment-14649624
 ] 

ASF GitHub Bot commented on STORM-904:
--

Github user priyank5485 commented on the pull request:

https://github.com/apache/storm/pull/662#issuecomment-126779134
  
This PR aims at factoring out the logic for storm command line client which 
currently resides in two places. One in storm bash script and storm.py for Unix 
and storm.cmd for Windows. Idea is to create a java program that will be called 
from storm.cmd and storm bash script which will have all the logic from 
storm.py and storm.cmd in one place. This will help us maintain the storm 
client better since we will have only one file to change and in most cases only 
the base class that both Windows and Unix classes inherit from. I have already 
removed storm.py. I am working on finishing up the java file and also removing 
the storm.cmd file. Just putting it out there to elicit response to this 
approach from the community.


> move storm bin commands to java and provide appropriate bindings for windows 
> and linux
> --
>
> Key: STORM-904
> URL: https://issues.apache.org/jira/browse/STORM-904
> Project: Apache Storm
>  Issue Type: Bug
>Reporter: Sriharsha Chintalapani
>Assignee: Priyank Shah
>
> Currently we have python and .cmd implementation for windows. This is 
> becoming increasing difficult upkeep both versions. Lets make all the main 
> code of starting daemons etc. to java and provider wrapper scripts in shell 
> and batch for linux and windows respectively. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-07-31 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14649599#comment-14649599
 ] 

ASF GitHub Bot commented on STORM-904:
--

GitHub user priyank5485 opened a pull request:

https://github.com/apache/storm/pull/662

STORM-904: Move bin/storm command line to java.



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/priyank5485/storm storm-904

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/storm/pull/662.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #662


commit 193f59e027a8ab95d72c8e386d66f0b90f9b86f9
Author: Priyank 
Date:   2015-07-17T23:45:13Z

Remove python and add a java class to support storm cli.

Add a java class that encapsulates storm cli functionality currently
coded in two different places. storm, storm.py for bash and storm.cmd
for windows. Now both storm and storm.cmd will call the java class
eliminating python code and putting all the code in one place for bash
and windows respectively.

commit 793781cfd55c56f7184910fd744341351f6cc4bf
Author: Priyank 
Date:   2015-07-20T23:04:48Z

Add apace commons cli library for command line parsing

commit a425fc50ab9b518337d0c095ae80e9d78221e3fd
Author: Priyank 
Date:   2015-07-21T17:44:30Z

Adding version for dependency in pom file.

commit 5a4ec36ac17af69297dfc73aaa682b8e43edf5de
Author: Priyank 
Date:   2015-07-21T21:23:54Z

Sample code to test for apache commons cli.

commit 1a8240a558516110a5c14d3a4bb0b177ab76090b
Author: Priyank 
Date:   2015-07-22T23:40:40Z

Removing apache commons cli, renaming and some intiialization code.

commit b69e295e81216e992187737cc069ff66d2e74687
Author: Priyank 
Date:   2015-07-23T10:14:48Z

Some redesigning/refactoring.

commit 8c2fbeadbf699b5b286479649d133623c92bc85c
Author: Priyank 
Date:   2015-07-23T21:49:43Z

Add printUsage mainly.

commit 74f45c7c9d6ae813635c91ba14fdb1cd3dd24c74
Author: Priyank 
Date:   2015-07-24T18:49:15Z

Call storm command methods using reflection.

commit 10ba25f8c81e2fdc34f4ae3e0e2cdf9ecd142a4a
Author: Priyank 
Date:   2015-07-24T19:25:01Z

Add method boxes without code for other storm commands.

commit fb2022db8dda7a5183ee5a2cc64a7ef035006c80
Author: Priyank 
Date:   2015-07-27T17:59:20Z

Initial executeStorm method creating a new process.

Need to test storm daemons if they can be killed using shutdown hooks.

commit 493b0dfeb7be2daa0a54e7dec2f3f716d0af0e26
Author: Priyank 
Date:   2015-07-29T07:02:49Z

Ship some more code over from python.

commit 3082d4f5ea2d66babe232e5ff49506b322385473
Author: Priyank 
Date:   2015-07-29T18:49:57Z

Fix an exception which failed to start the nimbus command.

commit c616068d90dd47fa61fbb670c2853805d7ccb324
Author: Priyank 
Date:   2015-07-29T21:53:27Z

Use exec to replace current process rather than creating a new one.

commit 06f4dcc17d8dcf3c81094557ed97ff117d6410ed
Author: Priyank 
Date:   2015-07-30T08:37:08Z

Add some commented code.

commit da0ad60438841a1f874c115cef27190a59401f4f
Author: Priyank 
Date:   2015-07-30T15:45:52Z

Add nil check for strings returned from conclave

commit 0b242adf0bc261e9140c3587b3eedd2141e31718
Author: Priyank 
Date:   2015-07-30T19:04:35Z

Fix an issue with passing options to storm command,

commit 0bb15782c171d336be905d2f5143865e288a8239
Author: Priyank 
Date:   2015-07-31T00:37:07Z

STORM-904: Add shutdown hook thread to kill subprocess.

Does not work for kill -9. Need to debug.




> move storm bin commands to java and provide appropriate bindings for windows 
> and linux
> --
>
> Key: STORM-904
> URL: https://issues.apache.org/jira/browse/STORM-904
> Project: Apache Storm
>  Issue Type: Bug
>Reporter: Sriharsha Chintalapani
>Assignee: Priyank Shah
>
> Currently we have python and .cmd implementation for windows. This is 
> becoming increasing difficult upkeep both versions. Lets make all the main 
> code of starting daemons etc. to java and provider wrapper scripts in shell 
> and batch for linux and windows respectively. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-07-09 Thread Priyank Shah (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14621252#comment-14621252
 ] 

Priyank Shah commented on STORM-904:


[~harsha_ch] please ignore the previous comment. You already mentioned it in 
the subject and i found it. storm.py and storm.cmd in bin folder of storm git 
repo source code.

> move storm bin commands to java and provide appropriate bindings for windows 
> and linux
> --
>
> Key: STORM-904
> URL: https://issues.apache.org/jira/browse/STORM-904
> Project: Apache Storm
>  Issue Type: Bug
>Reporter: Sriharsha Chintalapani
>Assignee: Priyank Shah
>
> Currently we have python and .cmd implementation for windows. This is 
> becoming increasing difficult upkeep both versions. Lets make all the main 
> code of starting daemons etc. to java and provider wrapper scripts in shell 
> and batch for linux and windows respectively. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (STORM-904) move storm bin commands to java and provide appropriate bindings for windows and linux

2015-07-09 Thread Priyank Shah (JIRA)

[ 
https://issues.apache.org/jira/browse/STORM-904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14621248#comment-14621248
 ] 

Priyank Shah commented on STORM-904:


[~harsha_ch] what is the directory where i can find all the python and cmd 
scripts?

> move storm bin commands to java and provide appropriate bindings for windows 
> and linux
> --
>
> Key: STORM-904
> URL: https://issues.apache.org/jira/browse/STORM-904
> Project: Apache Storm
>  Issue Type: Bug
>Reporter: Sriharsha Chintalapani
>Assignee: Priyank Shah
>
> Currently we have python and .cmd implementation for windows. This is 
> becoming increasing difficult upkeep both versions. Lets make all the main 
> code of starting daemons etc. to java and provider wrapper scripts in shell 
> and batch for linux and windows respectively. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)