Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

args needed in start listener to access zingg dir #795

Merged
merged 5 commits into from
Feb 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 7 additions & 9 deletions common/client/src/main/java/zingg/common/client/Client.java
Original file line number Diff line number Diff line change
Expand Up @@ -195,17 +195,12 @@ public void mainMethod(String... args) {
options = new ClientOptions(args);
setOptions(options);

// after setting options as some of the listeners need options
initializeListeners();
EventsListener.getInstance().fireEvent(new ZinggStartEvent());

if (options.has(options.HELP) || options.has(options.HELP1) || options.get(ClientOptions.PHASE) == null) {
LOG.warn(options.getHelp());
System.exit(0);
}
String phase = options.get(ClientOptions.PHASE).value.trim();
ZinggOptions.verifyPhase(phase);
IArguments arguments = null;
if (options.get(ClientOptions.CONF).value.endsWith("json")) {
arguments = getArgsUtil().createArgumentsFromJSON(options.get(ClientOptions.CONF).value, phase);
}
Expand All @@ -218,6 +213,9 @@ else if (options.get(ClientOptions.CONF).value.endsWith("env")) {

client = getClient(arguments, options);
client.init();
// after setting arguments etc. as some of the listeners need it
initializeListeners();
EventsListener.getInstance().fireEvent(new ZinggStartEvent());
client.execute();
client.postMetrics();
LOG.warn("Zingg processing has completed");
Expand Down Expand Up @@ -338,13 +336,13 @@ protected ArgumentsUtil getArgsUtil() {
return argsUtil;
}

public void addListener(IEvent event, IEventListener listener) {
EventsListener.getInstance().addListener(event.getClass(), listener);
public void addListener(Class<? extends IEvent> eventClass, IEventListener listener) {
EventsListener.getInstance().addListener(eventClass, listener);
}

public void initializeListeners() {
addListener(new ZinggStartEvent(), new ZinggStartListener());
addListener(new ZinggStopEvent(), new ZinggStopListener());
addListener(ZinggStartEvent.class, new ZinggStartListener());
addListener(ZinggStopEvent.class, new ZinggStopListener());
}

public abstract S getSession();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,22 @@

public class IEvent {

public HashMap<String, Object> getProps(){
return null;
protected HashMap<String, Object> eventDataProps;

public IEvent() {
super();
}

public IEvent(HashMap<String, Object> eventDataProps) {
super();
this.eventDataProps = eventDataProps;
}

public HashMap<String, Object> getProps(){
return eventDataProps;
}

public void setProps(HashMap<String, Object> props){

this.eventDataProps = props;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

public class EventsListener {
private static EventsListener eventsListener = null;
private final ListMap<Class<? extends IEvent>, IEventListener> eventListeners;
private final ListMap<String, IEventListener> eventListeners;

private EventsListener() {
eventListeners = new ListMap<>();
Expand All @@ -19,7 +19,7 @@ public static EventsListener getInstance() {
}

public void addListener(Class<? extends IEvent> eventClass, IEventListener listener) {
eventListeners.add(eventClass, listener);
eventListeners.add(eventClass.getCanonicalName(), listener);
}

public void fireEvent(IEvent event) throws ZinggClientException {
Expand All @@ -28,7 +28,7 @@ public void fireEvent(IEvent event) throws ZinggClientException {

private void listen(IEvent event) throws ZinggClientException {
Class<? extends IEvent> eventClass = event.getClass();
for (IEventListener listener : eventListeners.get(eventClass)) {
for (IEventListener listener : eventListeners.get(eventClass.getCanonicalName())) {
listener.listen(event);
}
}
Expand Down
Loading