Skip to content

Commit

Permalink
added implementation for remote loader
Browse files Browse the repository at this point in the history
  • Loading branch information
dpavlikovskiy committed Oct 23, 2016
1 parent b2b07de commit a42dd8a
Show file tree
Hide file tree
Showing 40 changed files with 680 additions and 420 deletions.
5 changes: 5 additions & 0 deletions .gitignore
@@ -0,0 +1,5 @@
/target/
/.settings/
/.externalToolBuilders/
.classpath
.project
4 changes: 4 additions & 0 deletions demo/flows-demo/.gitignore
@@ -1 +1,5 @@
/target/
/.settings/
/.externalToolBuilders/
.classpath
.project
6 changes: 3 additions & 3 deletions demo/flows-web-demo/.gitignore
@@ -1,6 +1,6 @@
*.DS_Store
bin
target
/target/
/.settings/
/.externalToolBuilders/
.classpath
.project
.settings
Expand Down
8 changes: 8 additions & 0 deletions demo/web-site-demo/.gitignore
@@ -1 +1,9 @@
/target/
/.settings/
/.externalToolBuilders/
.classpath
.project
.settings
src/main/webapp/META-INF
.idea
*.iml
Expand Up @@ -17,15 +17,16 @@
import org.neuro4j.workflow.WorkflowRequest;
import org.neuro4j.workflow.cache.ActionRegistry;
import org.neuro4j.workflow.cache.EmptyWorkflowCache;
import org.neuro4j.workflow.common.ClasspathWorkflowLoader;
import org.neuro4j.workflow.common.FlowExecutionException;
import org.neuro4j.workflow.common.FlowInitializationException;
import org.neuro4j.workflow.common.RemoteWorkflowLoader;
import org.neuro4j.workflow.common.WorkflowEngine;
import org.neuro4j.workflow.common.WorkflowEngine;
import org.neuro4j.workflow.common.WorkflowEngine.ConfigBuilder;
import org.neuro4j.workflow.common.XmlWorkflowConverter;
import org.neuro4j.workflow.guice.flows.CustomBlockWithService;
import org.neuro4j.workflow.loader.ClasspathWorkflowLoader;
import org.neuro4j.workflow.loader.DefaultCustomBlockInitStrategy;
import org.neuro4j.workflow.loader.RemoteWorkflowLoader;
import org.neuro4j.workflow.log.Logger;

import com.google.inject.Module;
Expand Down Expand Up @@ -64,9 +65,9 @@ public void tearDown() throws Exception {
@Test
public void testFlow() {
// Now all custom blocks will be initialized with Guice.
WorkflowEngine engine = new WorkflowEngine(new ConfigBuilder().withLoader(new ClasspathWorkflowLoader()).withCustomBlockInitStrategy(initStrategy));
WorkflowEngine engine = new WorkflowEngine(new ConfigBuilder().withLoader(new ClasspathWorkflowLoader(new XmlWorkflowConverter())).withCustomBlockInitStrategy(initStrategy));

engine.execute("org.neuro4j.workflow.guice.flows.Flow-Start", new HashMap<String, Object>());
engine.execute("org.neuro4j.workflow.guice.flows.Flow-Start");
}

@Test
Expand Down
9 changes: 8 additions & 1 deletion neuro4j-workflow-core/pom.xml
Expand Up @@ -21,7 +21,14 @@
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.10.19</version>
<scope>test</scope>
</dependency>

</dependencies>

<build>
Expand Down
Expand Up @@ -172,7 +172,7 @@ public String toString() {
}

public Map<String, Object> getParameters(){
return new HashMap<String, Object>(parameters);
return Collections.unmodifiableMap(parameters);
}

}
Expand Up @@ -21,7 +21,7 @@

import org.neuro4j.workflow.common.FlowExecutionException;
import org.neuro4j.workflow.common.Workflow;
import org.neuro4j.workflow.common.WorkflowLoader;
import org.neuro4j.workflow.loader.WorkflowLoader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down
Expand Up @@ -18,8 +18,7 @@

import org.neuro4j.workflow.common.FlowExecutionException;
import org.neuro4j.workflow.common.Workflow;
import org.neuro4j.workflow.common.WorkflowLoader;
import org.neuro4j.workflow.common.WorkflowSource;
import org.neuro4j.workflow.loader.WorkflowLoader;

/**
* Default cache implementation
Expand All @@ -30,13 +29,12 @@ public enum EmptyWorkflowCache implements WorkflowCache {


@Override
public Workflow get(WorkflowLoader loader, String flowName) throws FlowExecutionException {
WorkflowSource workflowSource = loader.load(flowName);
if (workflowSource == null) {
public Workflow get(WorkflowLoader loader, String flowName) throws FlowExecutionException {
Workflow workflow = loader.load(flowName);
if (workflow == null) {
throw new FlowExecutionException("Workflow " + flowName + " not loaded");
}

Workflow workflow = workflowSource.content();
return workflow;
}

Expand Down
Expand Up @@ -18,7 +18,7 @@

import org.neuro4j.workflow.common.FlowExecutionException;
import org.neuro4j.workflow.common.Workflow;
import org.neuro4j.workflow.common.WorkflowLoader;
import org.neuro4j.workflow.loader.WorkflowLoader;

/**
* Base interface for cache
Expand Down
@@ -0,0 +1,20 @@
package org.neuro4j.workflow.common;

import java.io.Reader;

import org.neuro4j.workflow.utils.Validation;

public class JSONWorkflowConverter implements WorkflowConverter{

@Override
public Workflow convert(Reader stream, String name) throws FlowExecutionException {
Validation.requireNonNull(stream, () -> new FlowExecutionException("InputStream can not be null"));
throw new UnsupportedOperationException("Not supported yet");
}

@Override
public String getFileExt() {
throw new UnsupportedOperationException("Not supported yet");
}

}

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

@@ -0,0 +1,13 @@
package org.neuro4j.workflow.common;

import java.io.Reader;

public interface WorkflowConverter {

public final static String DEFAULT_EXT = ".n4j";

Workflow convert(Reader stream, String name) throws FlowExecutionException;

String getFileExt();

}
Expand Up @@ -26,8 +26,11 @@
import org.neuro4j.workflow.cache.ConcurrentMapWorkflowCache;
import org.neuro4j.workflow.cache.EmptyWorkflowCache;
import org.neuro4j.workflow.cache.WorkflowCache;
import org.neuro4j.workflow.loader.ClasspathWorkflowLoader;
import org.neuro4j.workflow.loader.CustomBlockInitStrategy;
import org.neuro4j.workflow.loader.DefaultCustomBlockInitStrategy;
import org.neuro4j.workflow.loader.RemoteWorkflowLoader;
import org.neuro4j.workflow.loader.WorkflowLoader;
import org.neuro4j.workflow.node.WorkflowProcessor;

/**
Expand Down Expand Up @@ -56,7 +59,7 @@ public WorkflowEngine(ConfigBuilder builder) {
public WorkflowEngine() {
this(new ConfigBuilder().withCustomBlockInitStrategy(new DefaultCustomBlockInitStrategy())
.withWorkflowCache(new ConcurrentMapWorkflowCache())
.withLoader(new ClasspathWorkflowLoader()));
.withLoader(new ClasspathWorkflowLoader(new XmlWorkflowConverter())));
}


Expand Down Expand Up @@ -108,9 +111,11 @@ public static class ConfigBuilder {
private WorkflowCache workflowCache;

private ActionRegistry registry;

private final WorkflowConverter converter;

public ConfigBuilder() {

converter = new XmlWorkflowConverter();
}

public ConfigBuilder withLoader(WorkflowLoader loader) {
Expand All @@ -134,7 +139,7 @@ public ConfigBuilder withActionRegistry(ActionRegistry registry) {
}

public WorkflowLoader getLoader() {
return loader != null ? loader : new RemoteWorkflowLoader(new ClasspathWorkflowLoader());
return loader != null ? loader : new RemoteWorkflowLoader(converter, new ClasspathWorkflowLoader(converter));
}

public CustomBlockInitStrategy getCustomInitStrategy() {
Expand Down

This file was deleted.

This file was deleted.

0 comments on commit a42dd8a

Please sign in to comment.