Compare commits

..

22 commits
0.4 ... 0.17

Author SHA1 Message Date
468da19020 Build 0.17.0 2021-10-14 16:18:07 +02:00
8b56f27381 Upgraded to Java 17. 2021-10-14 16:17:52 +02:00
c4eaddc724 Upgraded libraries. 2021-10-14 16:16:40 +02:00
330f27e9c6 Build 0.11.1 2021-03-16 01:11:15 +01:00
0c7d2fbf17 Changed info display to debug. 2021-03-16 01:10:52 +01:00
09ceb50e58 Build 0.11.0 2021-03-16 01:00:47 +01:00
d3772ad55f Upgraded devinsy-strings lib. 2021-03-16 00:56:33 +01:00
9180a557c0 Upgraded version number. 2020-09-13 00:53:09 +02:00
333d77a8ea Migrated to Eclipse 4.16 and Java 11. 2020-08-14 17:03:04 +02:00
612270322d Cleaned not useful MANIFEST file. 2018-06-04 11:23:23 +02:00
a9adcc4f1d Build 0.8.1 2018-06-04 10:44:36 +02:00
c4b459077e Upgraded devinsy-strings library jar file. 2018-06-04 10:39:55 +02:00
19acf91808 Build 0.8.0 2018-05-31 10:51:54 +02:00
849ff91a90 Cleaned unused library. 2018-05-31 09:32:22 +02:00
ced40908a3 Moved package from fr.devinsy.util to fr.devinsy. 2018-05-31 09:11:25 +02:00
561964cfbe Upgraded library jar files. 2018-05-30 18:49:32 +02:00
3aa35f9d7a Migrated Eclipse configuration to Java 8. 2018-05-30 15:51:30 +02:00
e747a99bc9 Init branch 0.8 for Java 8 migration. 2018-05-30 15:49:36 +02:00
ebd5f52dd5 Improved Eclipse configuration. 2018-05-25 23:40:38 +02:00
5a6fc6ba17 Build 0.4.1 2017-05-12 18:50:28 +02:00
defc25cfa9 Set Javadoc format settings. 2017-05-12 18:49:57 +02:00
60aef46677 Improved Javadoc. 2017-05-12 18:49:33 +02:00
38 changed files with 118 additions and 149 deletions

View file

@ -2,19 +2,19 @@
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="test"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="lib" path="lib/commons-lang3-3.1.jar" sourcepath="lib/commons-lang3-3.1-sources.jar"/>
<classpathentry kind="lib" path="lib/joda-time-2.3.jar" sourcepath="lib/joda-time-2.3-sources.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<attributes>
<attribute name="module" value="true"/>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="lib/devinsy-strings-0.4.0.jar" sourcepath="lib/devinsy-strings-0.4.0-sources.zip"/>
<classpathentry kind="lib" path="lib/Logs/log4j-1.2.17.jar" sourcepath="lib/Logs/log4j-1.2.17-source.zip"/>
<classpathentry kind="lib" path="lib/Logs/slf4j-api-1.7.5.jar" sourcepath="lib/Logs/slf4j-api-1.7.5-sources.jar"/>
<classpathentry kind="lib" path="lib/Logs/slf4j-log4j12-1.7.5.jar" sourcepath="lib/Logs/slf4j-log4j12-1.7.5-sources.jar"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="lib" path="lib/UnitTesting/hamcrest-core-1.3.jar" sourcepath="lib/UnitTesting/hamcrest-core-1.3-sources.jar"/>
<classpathentry kind="lib" path="lib/UnitTesting/junit-4.11.jar" sourcepath="lib/UnitTesting/junit-4.11-sources.jar"/>
<classpathentry kind="lib" path="lib/UnitTesting/junit-4.12.jar" sourcepath="lib/UnitTesting/junit-4.12-sources.jar"/>
<classpathentry kind="lib" path="lib/Logs/log4j-1.2.17.jar" sourcepath="lib/Logs/log4j-1.2.17-source.zip"/>
<classpathentry kind="lib" path="lib/Logs/slf4j-api-1.7.25.jar" sourcepath="lib/Logs/slf4j-api-1.7.25-sources.jar"/>
<classpathentry kind="lib" path="lib/Logs/slf4j-log4j12-1.7.25.jar" sourcepath="lib/Logs/slf4j-log4j12-1.7.25-sources.jar"/>
<classpathentry kind="lib" path="lib/commons-lang3-3.12.0.jar" sourcepath="lib/commons-lang3-3.12.0-sources.jar"/>
<classpathentry kind="lib" path="lib/devinsy-strings-0.17.0.jar" sourcepath="lib/devinsy-strings-0.17.0-sources.zip"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View file

@ -10,16 +10,20 @@ org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.compliance=17
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=17
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@ -27,17 +31,20 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=49
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@ -68,19 +75,19 @@ org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
org.eclipse.jdt.core.formatter.comment.format_block_comments=false
org.eclipse.jdt.core.formatter.comment.format_block_comments=true
org.eclipse.jdt.core.formatter.comment.format_header=false
org.eclipse.jdt.core.formatter.comment.format_html=true
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
org.eclipse.jdt.core.formatter.comment.format_html=false
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
org.eclipse.jdt.core.formatter.comment.format_line_comments=true
org.eclipse.jdt.core.formatter.comment.format_source_code=true
org.eclipse.jdt.core.formatter.comment.format_source_code=false
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
org.eclipse.jdt.core.formatter.comment.line_length=80
org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=false
org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
org.eclipse.jdt.core.formatter.compact_else_if=true
org.eclipse.jdt.core.formatter.continuation_indentation=2
@ -88,7 +95,7 @@ org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
@ -121,11 +128,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@ -155,6 +163,8 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=inser
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@ -179,13 +189,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@ -232,6 +246,8 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do n
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@ -268,9 +284,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@ -296,6 +315,10 @@ org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=false
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true

View file

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="Apache Tomcat v7.0"/>
<fixed facet="jst.java"/>
<fixed facet="jst.utility"/>
<installed facet="jst.java" version="6.0"/>
<installed facet="jst.utility" version="1.0"/>
<installed facet="jst.java" version="17"/>
</faceted-project>

View file

@ -11,8 +11,8 @@ This software is released under the GNU LGPL.
## Requirements
- Java 1.6
- Eclipse Kepler
- Java 11
- Eclipse 4.16 (202006).
## Context
Several useful Java classes.

View file

@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit!
#Wed May 03 19:38:22 CEST 2017
#Thu Oct 14 16:18:07 CEST 2021
build.number=1

View file

@ -1,3 +1,3 @@
product.name=devinsy-cmdexec
product.revision.major=0
product.revision.minor=4
product.revision.minor=17

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,8 +1,13 @@
Description of used libraries:
- commons-lang: useful tools (StringUtils...)
- hamcrest-core: required by junit
- joda-time: useful DateTime library
Standards:
- commons-lang: useful tools (StringUtils…)
Testing:
- hamcrest-core: required by JUnit
- junit: unit tests API
Logging:
- log4j: log API
- slf4j-api: facade log API
- slf4j-log4j12: adaptation layer between slf4j and log4j

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,3 +0,0 @@
Manifest-Version: 1.0
Class-Path:

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2010,2013,2015-2017 Christian Pierre MOMON
* Copyright (C) 2005-2010,2013,2015-2018 Christian Pierre MOMON
*
* This file is part of Devinsy-cmdexec.
*
@ -16,14 +16,14 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-cmdexec. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.cmdexec;
package fr.devinsy.cmdexec;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.devinsy.util.cmdexec.StreamGobbler.StreamWay;
import fr.devinsy.util.cmdexec.util.CommandSplitter;
import fr.devinsy.util.strings.StringListUtils;
import fr.devinsy.cmdexec.StreamGobbler.StreamWay;
import fr.devinsy.cmdexec.util.CommandSplitter;
import fr.devinsy.strings.StringsUtils;
/**
* The Class CmdExec.
@ -203,7 +203,7 @@ public class CmdExec
{
int result;
logger.info("CmdExec(command) = [" + command + "]");
logger.debug("CmdExec(command) = [" + command + "]");
String[] commands = CommandSplitter.split(command);
@ -251,8 +251,8 @@ public class CmdExec
{
int result;
logger.info("CmdExec(command[]) = [" + StringListUtils.toStringSeparatedBy(command, " ") + "]");
logger.info("CmdExec(command[]) = [" + StringListUtils.toStringWithBrackets(command) + "]");
logger.debug("CmdExec(command[]) = [" + StringsUtils.toStringSeparatedBy(command, " ") + "]");
logger.debug("CmdExec(command[]) = [" + StringsUtils.toStringWithBrackets(command) + "]");
try
{
@ -272,7 +272,7 @@ public class CmdExec
// Wait and manage the exit value.
this.exitValue = process.waitFor();
logger.info("ExitValue: {}", this.exitValue);
logger.debug("ExitValue: {}", this.exitValue);
// Sometimes, process ends before Gobblers read its outpout, so we
// must wait them.

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2016-2017 Christian Pierre MOMON
* Copyright (C) 2016-2018 Christian Pierre MOMON
*
* This file is part of Devinsy-cmdexec.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-cmdexec. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.cmdexec;
package fr.devinsy.cmdexec;
/**
* The Class CmdExecException.

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2010,2013,2015-2017 Christian Pierre MOMON
* Copyright (C) 2005-2010,2013,2015-2018 Christian Pierre MOMON
*
* This file is part of Devinsy-cmdexec.
*
@ -16,15 +16,16 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-cmdexec. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.cmdexec;
package fr.devinsy.cmdexec;
import java.util.ArrayList;
import org.apache.commons.lang3.ArrayUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.devinsy.util.cmdexec.util.CommandSplitter;
import fr.devinsy.util.strings.StringListUtils;
import fr.devinsy.cmdexec.util.CommandSplitter;
import fr.devinsy.strings.StringsUtils;
/**
* The Class CmdExecUtils
@ -149,8 +150,8 @@ public class CmdExecUtils
}
else
{
logger.error("Command=\"{}\"", StringListUtils.toStringWithBrackets(command));
logger.error("\tout => [{}]", StringListUtils.toString(command), cmd.getOutStream());
logger.error("Command=\"{}\"", StringsUtils.toStringWithBrackets(command));
logger.error("\tout => [{}]", StringsUtils.toString(command), cmd.getOutStream());
logger.error("\terr => ({})[{}]", cmd.getErrStream().length(), cmd.getErrStream());
throw new CmdExecException(cmd.getErrStream());
}
@ -173,44 +174,14 @@ public class CmdExecUtils
* the program 2
* @param args
* the args
* @param min
* the min
* @param max
* the max
* @return the string
* @throws CmdExecException
* the cmd exec exception
*/
public static String run(final String program1, final String program2, final String[] args, final int min, final int max) throws CmdExecException
public static String run(final String program1, final String program2, final String[] args) throws CmdExecException
{
String result;
//
boolean nullArg = false;
boolean ended = false;
int argumentIndex = 0;
while (!ended)
{
if (argumentIndex >= args.length)
{
ended = true;
nullArg = false;
}
else
{
if (args[argumentIndex] == null)
{
ended = true;
nullArg = true;
}
else
{
argumentIndex += 1;
}
}
}
//
if (program1 == null)
{
throw new IllegalArgumentException("Null program parameter 1 detected: [" + program1 + "].");
@ -219,21 +190,16 @@ public class CmdExecUtils
{
throw new IllegalArgumentException("Null program parameter 2 detected: [" + program2 + "].");
}
else if (nullArg)
else if (ArrayUtils.contains(args, null))
{
throw new IllegalArgumentException("Null parameter detected in position " + argumentIndex + " for " + StringListUtils.toStringWithBrackets(args) + ".");
}
else if ((args.length < min) || (args.length > max))
{
throw new IllegalArgumentException("Bad number of parameters: " + args.length + " for " + StringListUtils.toStringWithBrackets(args) + ".");
throw new IllegalArgumentException("Null parameter detected in " + StringsUtils.toStringWithBrackets(args) + ".");
}
else
{
//
String[] command = new String[args.length + 2];
command[0] = program1;
command[1] = program2;
for (argumentIndex = 0; argumentIndex < args.length; argumentIndex++)
for (int argumentIndex = 0; argumentIndex < args.length; argumentIndex++)
{
command[argumentIndex + 2] = args[argumentIndex];
}
@ -256,62 +222,27 @@ public class CmdExecUtils
* the program
* @param args
* the args
* @param min
* the min
* @param max
* the max
* @return the string
* @throws CmdExecException
* the cmd exec exception
*/
public static String run(final String program, final String[] args, final int min, final int max) throws CmdExecException
public static String run(final String program, final String[] args) throws CmdExecException
{
String result;
//
boolean nullArg = false;
boolean ended = false;
int argumentCounter = 0;
while (!ended)
{
if (argumentCounter >= args.length)
{
ended = true;
nullArg = false;
}
else
{
if (args[argumentCounter] == null)
{
ended = true;
nullArg = true;
}
else
{
argumentCounter += 1;
}
}
}
//
if (program == null)
{
throw new IllegalArgumentException("Null program parameter detected: [" + program + "].");
}
else if (nullArg)
else if (ArrayUtils.contains(args, null))
{
throw new IllegalArgumentException("Null parameter detected in position " + argumentCounter + " for " + StringListUtils.toStringWithBrackets(args) + ".");
}
else if ((args.length < min) || (args.length > max))
{
throw new IllegalArgumentException("Bad number of parameters: " + args.length + " for " + StringListUtils.toStringWithBrackets(args) + ".");
throw new IllegalArgumentException("Null parameter detected in " + StringsUtils.toStringWithBrackets(args) + ".");
}
else
{
//
String[] command = new String[args.length + 1];
command[0] = program;
for (argumentCounter = 0; argumentCounter < args.length; argumentCounter++)
for (int argumentCounter = 0; argumentCounter < args.length; argumentCounter++)
{
command[argumentCounter + 1] = args[argumentCounter];
}

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2008,2010,2013,2016-2017 Christian Pierre MOMON
* Copyright (C) 2005-2008,2010,2013,2016-2018 Christian Pierre MOMON
*
* This file is part of Devinsy-cmdexec.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-cmdexec. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.cmdexec;
package fr.devinsy.cmdexec;
import java.io.BufferedReader;
import java.io.IOException;
@ -152,7 +152,9 @@ public class StreamGobbler extends Thread
return result;
}
/* (non-Javadoc)
/*
* (non-Javadoc)
*
* @see java.lang.Thread#run()
*/
@Override

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017 Christian Pierre MOMON
* Copyright (C) 2017-2018 Christian Pierre MOMON
*
* This file is part of Devinsy-cmdexec.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-cmdexec. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.cmdexec.demo;
package fr.devinsy.cmdexec.demo;
import java.io.File;
import java.io.IOException;
@ -26,10 +26,10 @@ import org.apache.log4j.Level;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.devinsy.util.cmdexec.CmdExec;
import fr.devinsy.util.cmdexec.CmdExecException;
import fr.devinsy.util.cmdexec.CmdExecUtils;
import fr.devinsy.util.cmdexec.StreamGobbler;
import fr.devinsy.cmdexec.CmdExec;
import fr.devinsy.cmdexec.CmdExecException;
import fr.devinsy.cmdexec.CmdExecUtils;
import fr.devinsy.cmdexec.StreamGobbler;
/**
* The Class Demo.

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2010,2013,2015-2017 Christian Pierre MOMON
* Copyright (C) 2005-2010,2013,2015-2018 Christian Pierre MOMON
*
* This file is part of Devinsy-cmdexec.
*
@ -16,15 +16,15 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-cmdexec. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.cmdexec.util;
package fr.devinsy.cmdexec.util;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.devinsy.util.strings.StringList;
import fr.devinsy.strings.StringList;
/**
/**
* The Class SplitWorker.
*
* @author Christian Pierre MOMON (christian.momon@devinsy.fr)
@ -41,8 +41,19 @@ public class CommandSplitter
private static Logger logger = LoggerFactory.getLogger(CommandSplitter.class);;
/**
* Split a string command to an array managing quote and simple quote.
/** <p>Split a string command to an array managing quote and simple
* quote.</p>
*
* <p>Examples:</p>
*
* <pre>
* CommandSplitter.split(null) = null
* CommandSplitter.split("") = { }
* CommandSplitter.split(" ") = { }
* CommandSplitter.split(" aaa bbb ") = { "aaa", "bbb" }
* CommandSplitter.split("aaa \"bb'b b\" ccc") = { "aaa", "bb'b b", "ccc" }
* CommandSplitter.split("aaa 'bb\"b b' ccc") = { "aaa", "bb\"b b", "ccc" }
* </pre>
*
* @param command
* the command

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013,2017 Christian Pierre MOMON
* Copyright (C) 2013,2018 Christian Pierre MOMON
*
* This file is part of Devinsy-cmdexec.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-cmdexec. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.cmdexec;
package fr.devinsy.cmdexec;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.PatternLayout;

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2017 Christian Pierre MOMON
* Copyright (C) 2018 Christian Pierre MOMON
*
* This file is part of Devinsy-cmdexec.
*
@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Devinsy-cmdexec. If not, see <http://www.gnu.org/licenses/>
*/
package fr.devinsy.util.cmdexec.util;
package fr.devinsy.cmdexec.util;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
@ -26,7 +26,8 @@ import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.devinsy.util.strings.StringList;
import fr.devinsy.cmdexec.util.CommandSplitter;
import fr.devinsy.strings.StringList;
/**
* The Class SplitWorkerTest.