Skip to content

Commit

Permalink
Merge pull request #107 from itesla/adjust_online_parameters
Browse files Browse the repository at this point in the history
OnlineWorkflowParameters and OnlineWorkflowStartParameters:  countrie…
  • Loading branch information
mathbagu committed Oct 25, 2016
2 parents ac52fbe + ad60b5b commit b8c46a9
Show file tree
Hide file tree
Showing 7 changed files with 181 additions and 249 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

import java.io.Serializable;
import java.util.*;
import java.util.stream.Collectors;

import eu.itesla_project.commons.config.ModuleConfig;
import eu.itesla_project.commons.config.PlatformConfig;
Expand Down Expand Up @@ -58,9 +57,9 @@ public class OnlineWorkflowParameters implements Serializable {
private static final long serialVersionUID = 1L;
public static final CaseType DEFAULT_CASE_TYPE = CaseType.FO;
public static final Set<Country> DEFAULT_COUNTRIES = EnumSet.of(Country.FR);
public static final boolean DAFAULT_MERGE_OPTIMIZED = false;
public static final boolean DEFAULT_MERGE_OPTIMIZED = false;
public static final float DEFAULT_LIMIT_REDUCTION = 1f;
public static final boolean DAFAULT_HANDLE_VIOLATIONS_IN_N = false;
public static final boolean DEFAULT_HANDLE_VIOLATIONS_IN_N = false;
public static final float DEFAULT_CONSTRAINT_MARGIN = 0f;

private DateTime baseCaseDate;
Expand Down Expand Up @@ -93,18 +92,12 @@ public static OnlineWorkflowParameters loadDefault() {
boolean storeStates = config.getBooleanProperty("storeStates", false);
boolean analyseBasecase = config.getBooleanProperty("analyseBasecase", true);
boolean validation = config.getBooleanProperty("validation", false);
Set<SecurityIndexType> securityIndexes = null;
String securityIndexesAsString = config.getStringProperty("securityIndexes", "");
if ( !"".equals(securityIndexesAsString) ) {
securityIndexes = Arrays.stream(securityIndexesAsString.split(","))
.map(SecurityIndexType::valueOf)
.collect(Collectors.toSet());
}
Set<SecurityIndexType> securityIndexes = config.getEnumSetProperty("securityIndexes", SecurityIndexType.class, null);
CaseType caseType = config.getEnumProperty("caseType", CaseType.class, DEFAULT_CASE_TYPE);
Set<Country> countries = config.getEnumSetProperty("countries", Country.class, DEFAULT_COUNTRIES);
boolean mergeOptimized = config.getBooleanProperty("mergeOptimized", DAFAULT_MERGE_OPTIMIZED);
boolean mergeOptimized = config.getBooleanProperty("mergeOptimized", DEFAULT_MERGE_OPTIMIZED);
float limitReduction = config.getFloatProperty("limitReduction", DEFAULT_LIMIT_REDUCTION);
boolean handleViolationsInN = config.getBooleanProperty("handleViolationsInN", DAFAULT_HANDLE_VIOLATIONS_IN_N);
boolean handleViolationsInN = config.getBooleanProperty("handleViolationsInN", DEFAULT_HANDLE_VIOLATIONS_IN_N);
float constraintMargin = config.getFloatProperty("constraintMargin", DEFAULT_CONSTRAINT_MARGIN);

return new OnlineWorkflowParameters(baseCaseDate,
Expand Down Expand Up @@ -133,6 +126,8 @@ public OnlineWorkflowParameters(DateTime baseCaseDate, int states, Interval hist
float limitReduction, boolean handleViolationsInN, float constraintMargin) {
Objects.requireNonNull(baseCaseDate);
Objects.requireNonNull(histoInterval);
Objects.requireNonNull(countries);
Objects.requireNonNull(caseType);
this.baseCaseDate = baseCaseDate;
this.states=states;
this.histoInterval = histoInterval;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,109 +6,90 @@
*/
package eu.itesla_project.online;

import java.io.Serializable;

import eu.itesla_project.commons.config.ModuleConfig;
import eu.itesla_project.commons.config.PlatformConfig;

import java.io.Serializable;
import java.util.Objects;

/**
*
* @author Quinary <itesla@quinary.com>
*/
public class OnlineWorkflowStartParameters implements Serializable {

/*
* example of online-start-parameters.properties file.
*
# number of thread
threads=20
# JMX host and port
jmxHost=127.0.0.1
jmxPort=6667
#listenerFactoryClasses=eu.itesla_project.apogee_client.ApogeeOnlineApplicationListenerFactory
#onlineWorkflowFactoryClass=eu.itesla_project.quinary_utils.online.OnlineWorkFlowFactory
*/

private static final long serialVersionUID = 1L;

private int threads;
private String jmxHost;
private String jmxPort;
private Class<? extends OnlineApplicationListenerFactory> listenerFactoryClasses=null;
private Class<? extends OnlineWorkflowFactory> onlineWorkflowFactory ;




private static final long serialVersionUID = 1L;
public static final int DEFAULT_THREADS = 1;

private int threads;
private String jmxHost;
private int jmxPort;
private Class<? extends OnlineApplicationListenerFactory> listenerFactoryClasses = null;
private Class<? extends OnlineWorkflowFactory> onlineWorkflowFactory;

public static OnlineWorkflowStartParameters loadDefault() {
ModuleConfig config = PlatformConfig.defaultConfig().getModuleConfig("online-start-parameters");
int threads = config.getIntProperty("threads", -1);
int threads = config.getIntProperty("threads", DEFAULT_THREADS);
String jmxHost = config.getStringProperty("jmxHost");
String jmxPort = config.getStringProperty("jmxPort");

int jmxPort = config.getIntProperty("jmxPort");
Class<? extends OnlineWorkflowFactory> onlineWorkflowFactory = config.getClassProperty("onlineWorkflowFactoryClass", OnlineWorkflowFactory.class, OnlineWorkflowFactoryImpl.class);
String listenerFactoryClassName = config.getStringProperty("listenerFactoryClasses",null);
if (listenerFactoryClassName != null) {
Class<? extends OnlineApplicationListenerFactory> listenerFactoryClass = config.getClassProperty("listenerFactoryClasses", OnlineApplicationListenerFactory.class);
return new OnlineWorkflowStartParameters(threads, jmxHost, jmxPort, listenerFactoryClass,onlineWorkflowFactory);
}

return new OnlineWorkflowStartParameters(threads, jmxHost, jmxPort, null,onlineWorkflowFactory);
Class<? extends OnlineApplicationListenerFactory> listenerFactoryClass = config.getClassProperty("listenerFactoryClasses", OnlineApplicationListenerFactory.class, null);

return new OnlineWorkflowStartParameters(threads, jmxHost, jmxPort, listenerFactoryClass, onlineWorkflowFactory);
}

public OnlineWorkflowStartParameters(int threads, String jmxHost, String jmxPort, Class<? extends OnlineApplicationListenerFactory> listenerFactoryClass, Class<? extends OnlineWorkflowFactory> onlineWorkflowFactory ) {
this.threads=threads;
this.jmxHost=jmxHost;
this.jmxPort=jmxPort;
this.listenerFactoryClasses=listenerFactoryClass;

public OnlineWorkflowStartParameters(int threads, String jmxHost, int jmxPort, Class<? extends OnlineApplicationListenerFactory> listenerFactoryClass, Class<? extends OnlineWorkflowFactory> onlineWorkflowFactory) {
Objects.requireNonNull(onlineWorkflowFactory);
this.onlineWorkflowFactory = onlineWorkflowFactory;
this.listenerFactoryClasses = listenerFactoryClass;
setJmxHost(jmxHost);
setJmxPort(jmxPort);
setThreads(threads);
}



public int getThreads() {
return threads;
return threads;
}

public String getJmxHost() {
return jmxHost;
}
return jmxHost;
}

public String getJmxPort() {
return jmxPort;
}

@Override
public String toString() {
return "OnlineWorkflowStartParameters [threads=" + threads + ", jmxHost=" + jmxHost + ", jmxPort=" + jmxPort
+ ", listenerFactoryClasses=" + listenerFactoryClasses + ", onlineWorkflowFactory="
+ onlineWorkflowFactory + "]";
}
public int getJmxPort() {
return jmxPort;
}

public void setThreads(int threads) {
this.threads = threads;
}
@Override
public String toString() {
return "OnlineWorkflowStartParameters [threads=" + threads + ", jmxHost=" + jmxHost + ", jmxPort=" + jmxPort
+ ", listenerFactoryClasses=" + listenerFactoryClasses + ", onlineWorkflowFactory="
+ onlineWorkflowFactory + "]";
}

public void setJmxHost(String jmxHost) {
this.jmxHost = jmxHost;
}
public void setThreads(int threads) {
if (threads <= 0) {
throw new IllegalArgumentException("threads must be greater than zero: " + threads);
}
this.threads = threads;
}

public void setJmxPort(String jmxPort) {
this.jmxPort = jmxPort;
}
public void setJmxHost(String jmxHost) {
Objects.requireNonNull(jmxHost);
this.jmxHost = jmxHost;
}

public void setJmxPort(int jmxPort) {
if (jmxPort <= 0) {
throw new IllegalArgumentException("jmxPort must be greater than zero: " + jmxPort);
}
this.jmxPort = jmxPort;
}

public Class<? extends OnlineApplicationListenerFactory> getOnlineApplicationListenerFactoryClass() {
return listenerFactoryClasses;
}

public Class<? extends OnlineWorkflowFactory> getOnlineWorkflowFactoryClass() {
return onlineWorkflowFactory;
}



public Class<? extends OnlineWorkflowFactory> getOnlineWorkflowFactoryClass() {
return onlineWorkflowFactory;
}


}

0 comments on commit b8c46a9

Please sign in to comment.