Skip to content
This repository has been archived by the owner on May 26, 2020. It is now read-only.

Commit

Permalink
Merge 978e0ed into 22e77b5
Browse files Browse the repository at this point in the history
  • Loading branch information
cjs-common-platform-ci committed Jun 18, 2019
2 parents 22e77b5 + 978e0ed commit 91e0684
Show file tree
Hide file tree
Showing 19 changed files with 519 additions and 416 deletions.
107 changes: 28 additions & 79 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,8 @@

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<framework.version>6.0.0-M22</framework.version>
<event-store.version>2.0.0-M24</event-store.version>
<framework.version>6.0.0-M30</framework.version>
<event-store.version>2.0.0-M35</event-store.version>
<framework-generators.version>2.0.0-M15</framework-generators.version>
<framework-api.version>4.0.0-M24</framework-api.version>
<wildfly.version>10.0.0.Final</wildfly.version>
Expand All @@ -39,105 +37,57 @@
</dependencyManagement>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>compile</scope>
</dependency>

<dependency>
<groupId>uk.gov.justice.services</groupId>
<artifactId>jmx-command-client</artifactId>
<version>${framework.version}</version>
</dependency>

<dependency>
<groupId>uk.gov.justice.services</groupId>
<artifactId>jmx</artifactId>
<artifactId>framework-management</artifactId>
<version>${framework.version}</version>
</dependency>

<dependency>
<groupId>uk.gov.justice.event-store</groupId>
<artifactId>event-store-management</artifactId>
<version>${event-store.version}</version>
</dependency>

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.10.19</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.2</version>
</dependency>


<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>

<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-client-all</artifactId>
<version>${wildfly.version}</version>
<exclusions>
<exclusion>
<groupId>org.jboss</groupId>
<artifactId>jboss-ejb-client</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss</groupId>
<artifactId>jboss-remote-naming</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.marshalling</groupId>
<artifactId>jboss-marshalling-river</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.remoting</groupId>
<artifactId>jboss-remoting</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.sasl</groupId>
<artifactId>jboss-sasl</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.spec.javax.ejb</groupId>
<artifactId>jboss-ejb-api_3.2_spec</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.spec.javax.transaction</groupId>
<artifactId>jboss-transaction-api_1.2_spec</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.xnio</groupId>
<artifactId>xnio-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.xnio</groupId>
<artifactId>xnio-nio</artifactId>
</exclusion>
<exclusion>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
</exclusion>
<exclusion>
<groupId>org.jgroups</groupId>
<artifactId>jgroups</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.activemq</groupId>
<artifactId>artemis-core-client</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.activemq</groupId>
<artifactId>artemis-commons</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.activemq</groupId>
<artifactId>artemis-hqclient-protocol</artifactId>
</exclusion>
</exclusions>
</dependency>

<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>

</dependencies>

Expand Down Expand Up @@ -177,5 +127,4 @@
</plugins>
</build>


</project>
37 changes: 15 additions & 22 deletions src/main/java/uk/gov/justice/CatchUpAndShutteringManager.java
Original file line number Diff line number Diff line change
@@ -1,45 +1,38 @@
package uk.gov.justice;

import static org.slf4j.LoggerFactory.getLogger;
import static uk.gov.justice.Operations.CATCHUP;
import static uk.gov.justice.Operations.SHUTTER;
import static uk.gov.justice.Operations.UNSHUTTER;

import uk.gov.justice.jmx.tools.CatchUpInvoker;
import uk.gov.justice.jmx.tools.ShutteringInvoker;
import uk.gov.justice.framework.command.tools.CommandLineArgumentParser;
import uk.gov.justice.framework.command.tools.SystemCommandInvoker;

import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;

import org.slf4j.Logger;

@ApplicationScoped
public class CatchUpAndShutteringManager {

private static final Logger logger = getLogger(CatchUpAndShutteringManager.class.getName());

/**
*
* @param args operation, host, port
* @throws Exception
*/
public static void main(String... args) throws Exception {
public static void main(String... args) {
boolean argumentParsed = new CommandLineArgumentParser(args).parse();

final String operation = args[0];
final String host = args[1];
final String port = args[2];
if(argumentParsed){
final String command = args[0];
final String host = args[1];
final String port = args[2];

logger.info("Operation: {}", operation);
logger.info("Host: {}", host);
logger.info("Port: {}", port);
SystemCommandInvoker systemCommandInvoker = new SystemCommandInvoker();

if(operation.equalsIgnoreCase(SHUTTER.name())){
new ShutteringInvoker().runShuttering(true, host, port);
}
if(operation.equalsIgnoreCase(UNSHUTTER.name())){
new ShutteringInvoker().runShuttering(false, host, port);
systemCommandInvoker.runSystemCommand(command, host, port);

logger.info("CatchUpAndShutteringManager invoked successfully");
}
if(operation.equalsIgnoreCase(CATCHUP.name())){
new CatchUpInvoker().runCatchup(host, port);
else{
logger.error("CatchUpAndShutteringManager not invoked successfully!!! Please check command line arguments & usage");
}
}
}
3 changes: 3 additions & 0 deletions src/main/java/uk/gov/justice/Operation.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package uk.gov.justice;

public enum Operation {SHUTTER, UNSHUTTER, CATCHUP, REBUILD, UNKNOWN}
3 changes: 0 additions & 3 deletions src/main/java/uk/gov/justice/Operations.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package uk.gov.justice.framework.command.tools;

import static org.apache.commons.lang3.StringUtils.isNotBlank;
import static org.slf4j.LoggerFactory.getLogger;

import org.apache.commons.cli.BasicParser;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.slf4j.Logger;


public class CommandLineArgumentParser {

private static final Logger logger = getLogger(CommandLineArgumentParser.class.getName());

private String[] args;
private Options options = new Options();


public CommandLineArgumentParser(String[] args) {

this.args = args;

options.addOption("h", "help", false, "show help.");
options.addOption("c", "command", true, "Framework command to execute, for example CATCHUP,SHUTTER, UNSHUTTER & REBUILD.");
options.addOption("ho", "host", true, "Host Remote or Localhost");
options.addOption("p", "port", true, "Wildfly management port");
}

public boolean parse() {
CommandLineParser parser = new BasicParser();

try {
CommandLine cmd = parser.parse(options, args);

if (cmd.hasOption("h")){
help();
}

if (isCommandNullOrEmpty(cmd) && isHostNullOrEmpty(cmd) && isPortNullOrEmpty(cmd)) {
return true;
} else {
help();
return false;
}

} catch (ParseException e) {
logger.info("Failed to parse command line properties", e);
help();
return false;
}
}

private void help() {
// This prints out some help
HelpFormatter formatter = new HelpFormatter();

formatter.printHelp("CatchUpAndShutteringManager", options);
}

private boolean isCommandNullOrEmpty(CommandLine cmd){
return cmd.hasOption("c") &&
(isNotBlank(cmd.getOptionValue("c")));
}

private boolean isHostNullOrEmpty(CommandLine cmd){
return cmd.hasOption("ho") &&
isNotBlank(cmd.getOptionValue("ho"));
}

private boolean isPortNullOrEmpty(CommandLine cmd){
return cmd.hasOption("p") &&
isNotBlank(cmd.getOptionValue("p"));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package uk.gov.justice.framework.command.tools;

import uk.gov.justice.Operation;

import javax.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class EnumValidator {


public boolean checkCommandIsValid(final String command) {
return contains(Operation.class, command);
}

private static boolean contains(Class<? extends Enum> clazz, String val) {
Enum[] arr = clazz.getEnumConstants();
for (Enum operation : arr) {
if (operation.name().equals(val)) {
return true;
}
}
return false;
}
}
Loading

0 comments on commit 91e0684

Please sign in to comment.