Github user olegz commented on the pull request:
https://github.com/apache/nifi/pull/347#issuecomment-211417082
@pvillard31 I was gonna play with it a bit more and possibly create the
test, but getting tied up with other things. Yet I was able to dig up one of my
experiments that I used to play with RPGs in unit test environment, and since
you already familiar with FlowController, you may make sense of it. Anyway, let
me know.
```java
System.setProperty("nifi.properties.file.path",
"/Users/ozhurakousky/dev/nifi-integration/src/main/resources/nifi.properties");
NiFiProperties properties = NiFiProperties.getInstance();
RingBufferEventRepository repository = new
RingBufferEventRepository(1);
UserService us = mock(UserService.class);
AuditService as = mock(AuditService.class);
FlowController controller =
FlowController.createStandaloneInstance(repository, properties, us, as, null);
ProcessGroup senderGroup = controller.createProcessGroup("SENDER");
senderGroup.setName("SENDER");
RemoteProcessGroup remoteProcessGroup =
controller.createRemoteProcessGroup("SENDER_REMOTE",
"http://localhost:8080/nifi");
senderGroup.addRemoteProcessGroup(remoteProcessGroup);
// INPUT PORT (DESTINATIOIN)
StandardRemoteProcessGroupPortDescriptor inputPortDescriptor = new
StandardRemoteProcessGroupPortDescriptor();
inputPortDescriptor.setId("67b1950c-554e-4cb6-92fb-7e313b015e8c");
inputPortDescriptor.setName("in");
remoteProcessGroup.setInputPorts(Collections.<RemoteProcessGroupPortDescriptor>
singleton(inputPortDescriptor));
RemoteGroupPort inputPort =
remoteProcessGroup.getInputPort("67b1950c-554e-4cb6-92fb-7e313b015e8c");
inputPort.setProcessGroup(senderGroup);
System.out.println(inputPort.isRunning());
System.out.println(inputPort.isTargetRunning());
System.out.println(inputPort.isValid());
// SOURCE
ProcessorNode source =
controller.createProcessor(GenerateFlowFile.class.getName(), "A");
source.setProperty("File Size", "10 b");
source.setScheduldingPeriod("2 sec");
source.setProcessGroup(senderGroup);
senderGroup.addProcessor(source);
// CONNECTION
Connection connection =
controller.createConnection("MyConnectionId", "MyConnectionName", source,
remoteProcessGroup.getInputPort("67b1950c-554e-4cb6-92fb-7e313b015e8c"),
Collections.singletonList("success"));
connection.setProcessGroup(senderGroup);
senderGroup.addConnection(connection);
inputPort.addConnection(connection);
remoteProcessGroup.startTransmitting();
// inputPort.verifyCanStart();
// senderGroup.addInputPort(inputPort);
// senderGroup.startInputPort(inputPort);
//controller.startTransmitting(remoteProcessGroup.getInputPort("in"));
senderGroup.startProcessor(source);
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---