use of com.datatorrent.stram.api.RequestFactory in project apex-core by apache.
the class TupleRecorderCollection method setup.
@Override
public void setup(Context ctx) {
tupleRecordingPartFileSize = ctx.getValue(LogicalPlan.TUPLE_RECORDING_PART_FILE_SIZE);
tupleRecordingPartFileTimeMillis = ctx.getValue(LogicalPlan.TUPLE_RECORDING_PART_FILE_TIME_MILLIS);
appId = ctx.getValue(LogicalPlan.APPLICATION_ID);
gatewayAddress = ctx.getValue(LogicalPlan.GATEWAY_CONNECT_ADDRESS);
gatewayUseSsl = ctx.getValue(LogicalPlan.GATEWAY_USE_SSL);
gatewayUserName = ctx.getValue(LogicalPlan.GATEWAY_USER_NAME);
gatewayPassword = ctx.getValue(LogicalPlan.GATEWAY_PASSWORD);
appPath = ctx.getValue(LogicalPlan.APPLICATION_PATH);
codecs = ctx.getAttributes().get(Context.DAGContext.STRING_CODECS);
RequestDelegateImpl impl = new RequestDelegateImpl();
RequestFactory rf = ctx.getValue(ContainerContext.REQUEST_FACTORY);
if (rf == null) {
logger.warn("No request factory defined, recording is disabled!");
} else {
rf.registerDelegate(StramToNodeRequest.RequestType.START_RECORDING, impl);
rf.registerDelegate(StramToNodeRequest.RequestType.STOP_RECORDING, impl);
rf.registerDelegate(StramToNodeRequest.RequestType.SYNC_RECORDING, impl);
}
}
use of com.datatorrent.stram.api.RequestFactory in project apex-core by apache.
the class StreamingContainer method setup.
@SuppressWarnings("unchecked")
public void setup(StreamingContainerContext ctx) {
containerContext = ctx;
/* add a request factory local to this container */
this.requestFactory = new RequestFactory();
ctx.attributes.put(ContainerContext.REQUEST_FACTORY, requestFactory);
heartbeatIntervalMillis = ctx.getValue(Context.DAGContext.HEARTBEAT_INTERVAL_MILLIS);
firstWindowMillis = ctx.startWindowMillis;
windowWidthMillis = ctx.getValue(Context.DAGContext.STREAMING_WINDOW_SIZE_MILLIS);
checkpointWindowCount = ctx.getValue(Context.DAGContext.CHECKPOINT_WINDOW_COUNT);
fastPublisherSubscriber = ctx.getValue(LogicalPlan.FAST_PUBLISHER_SUBSCRIBER);
Map<Class<?>, Class<? extends StringCodec<?>>> codecs = ctx.getValue(Context.DAGContext.STRING_CODECS);
StringCodecs.loadConverters(codecs);
try {
if (ctx.deployBufferServer) {
eventloop.start();
int bufferServerRAM = ctx.getValue(ContainerContext.BUFFER_SERVER_MB);
logger.debug("buffer server memory {}", bufferServerRAM);
int blockCount;
int blocksize;
if (bufferServerRAM < ContainerContext.BUFFER_SERVER_MB.defaultValue) {
blockCount = 8;
blocksize = bufferServerRAM / blockCount;
if (blocksize < 1) {
blocksize = 1;
}
} else {
blocksize = 64;
blockCount = bufferServerRAM / blocksize;
}
// start buffer server, if it was not set externally
bufferServer = new Server(eventloop, 0, blocksize * 1024 * 1024, blockCount);
bufferServer.setAuthToken(ctx.getValue(StreamingContainerContext.BUFFER_SERVER_TOKEN));
if (ctx.getValue(Context.DAGContext.BUFFER_SPOOLING)) {
bufferServer.setSpoolStorage(new DiskStorage());
}
bufferServerAddress = NetUtils.getConnectAddress(bufferServer.run());
logger.debug("Buffer server started: {}", bufferServerAddress);
}
} catch (IOException ex) {
logger.warn("deploy request failed due to {}", ex);
throw new IllegalStateException("Failed to deploy buffer server", ex);
}
for (Class<?> clazz : ContainerEvent.CONTAINER_EVENTS_LISTENERS) {
try {
Object newInstance = clazz.newInstance();
singletons.put(clazz.getName(), newInstance);
if (newInstance instanceof Component) {
components.add((Component<ContainerContext>) newInstance);
}
eventBus.subscribe(newInstance);
} catch (InstantiationException ex) {
logger.warn("Container Event Listener Instantiation", ex);
} catch (IllegalAccessException ex) {
logger.warn("Container Event Listener Instantiation", ex);
}
}
operateListeners(ctx, true);
}
Aggregations