Skip to content

Commit

Permalink
updates the instrumentation engine interface and moves runseq instrum…
Browse files Browse the repository at this point in the history
…entation engine related classes into a new package
  • Loading branch information
arminbalalaie committed Mar 1, 2019
1 parent ed0bddf commit 5e7731a
Show file tree
Hide file tree
Showing 11 changed files with 35 additions and 24 deletions.
2 changes: 1 addition & 1 deletion failify/src/main/java/io/failify/FailifyRunner.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
import io.failify.execution.RuntimeEngine;
import io.failify.execution.LimitedRuntimeEngine;
import io.failify.instrumentation.InstrumentationEngine;
import io.failify.instrumentation.RunSequenceInstrumentationEngine;
import io.failify.instrumentation.runseq.RunSequenceInstrumentationEngine;
import io.failify.workspace.WorkspaceManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
import io.failify.dsl.entities.Node;
import io.failify.instrumentation.InstrumentationDefinition;
import io.failify.instrumentation.InstrumentationPoint;
import io.failify.instrumentation.RunSeqRuntimeOperation;
import io.failify.instrumentation.runseq.RunSeqRuntimeOperation;
import io.failify.dsl.events.InternalEvent;

import java.util.ArrayList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
import io.failify.dsl.entities.Node;
import io.failify.instrumentation.InstrumentationDefinition;
import io.failify.instrumentation.InstrumentationPoint;
import io.failify.instrumentation.RunSeqRuntimeOperation;
import io.failify.instrumentation.runseq.RunSeqRuntimeOperation;

import java.util.ArrayList;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
import io.failify.dsl.entities.Node;
import io.failify.instrumentation.InstrumentationDefinition;
import io.failify.instrumentation.InstrumentationPoint;
import io.failify.instrumentation.RunSeqRuntimeOperation;
import io.failify.instrumentation.runseq.RunSeqRuntimeOperation;

import java.util.ArrayList;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@

package io.failify.instrumentation;

import io.failify.instrumentation.runseq.RunSeqRuntimeOperation;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,20 @@
package io.failify.instrumentation;

import io.failify.dsl.entities.Deployment;
import io.failify.dsl.entities.ServiceType;
import io.failify.exceptions.InstrumentationException;
import io.failify.instrumentation.java.JavaInstrumentor;
import io.failify.workspace.NodeWorkspace;

import java.util.Map;

public abstract class InstrumentationEngine {

protected Instrumentor getInstrumentor(ServiceType serviceType) {
if (serviceType == ServiceType.JAVA) {
return new JavaInstrumentor();
} else {
return null;
}
}

// This method shouldn't change any of the application paths
public abstract void instrumentNodes(Deployment deployment, Map<String, NodeWorkspace> nodeWorkspaceMap)
public interface InstrumentationEngine {
/**
* This method should instrument the nodes based on the given definition and node workspaces. It is important that
* this method doesn't change any of the application paths
* @param deployment the deployment definition object
* @param nodeWorkspaceMap the map of node name to the node's workspace information
* @throws InstrumentationException if something goes wrong during instrumentation
*/
void instrumentNodes(Deployment deployment, Map<String, NodeWorkspace> nodeWorkspaceMap)
throws InstrumentationException;

}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@

package io.failify.instrumentation;

import io.failify.instrumentation.runseq.RunSeqRuntimeOperation;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
*
*/

package io.failify.instrumentation;
package io.failify.instrumentation.runseq;

public enum RunSeqRuntimeOperation {
ALLOW_BLOCKING,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,12 @@
*
*/

package io.failify.instrumentation;
package io.failify.instrumentation.runseq;

import io.failify.Constants;
import io.failify.dsl.entities.ServiceType;
import io.failify.instrumentation.*;
import io.failify.instrumentation.runseq.java.JavaInstrumentor;
import io.failify.workspace.NodeWorkspace;
import io.failify.dsl.entities.Deployment;
import io.failify.dsl.entities.Node;
Expand All @@ -40,9 +43,17 @@
/**
* Only non-lib binary instrumentation is possible
*/
public class RunSequenceInstrumentationEngine extends InstrumentationEngine {
public class RunSequenceInstrumentationEngine implements InstrumentationEngine {
private final static Logger logger = LoggerFactory.getLogger(RunSequenceInstrumentationEngine.class);

protected Instrumentor getInstrumentor(ServiceType serviceType) {
if (serviceType == ServiceType.JAVA) {
return new JavaInstrumentor();
} else {
return null;
}
}

@Override
public void instrumentNodes(Deployment deployment, Map<String, NodeWorkspace> nodeWorkspaceMap) throws InstrumentationException {
String[] eventNames = deployment.getRunSequence().split("\\W+");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@
*
*/

package io.failify.instrumentation.java;
package io.failify.instrumentation.runseq.java;

import io.failify.Constants;
import io.failify.instrumentation.InstrumentationDefinition;
import io.failify.instrumentation.InstrumentationOperation;
import io.failify.instrumentation.InstrumentationPoint;
import io.failify.instrumentation.RunSeqRuntimeOperation;
import io.failify.instrumentation.runseq.RunSeqRuntimeOperation;
import io.failify.util.HashingUtil;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
*
*/

package io.failify.instrumentation.java;
package io.failify.instrumentation.runseq.java;

import io.failify.exceptions.InstrumentationException;
import io.failify.instrumentation.InstrumentationDefinition;
Expand Down

0 comments on commit 5e7731a

Please sign in to comment.