Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.mule.extension.internal.sources;
- import static org.mule.runtime.extension.api.annotation.param.MediaType.ANY;
- import java.io.IOException;
- import java.io.InputStream;
- import org.apache.log4j.LogManager;
- import org.apache.log4j.Logger;
- import org.mule.extension.internal.BasicConnection;
- import org.mule.runtime.api.exception.MuleException;
- import org.mule.runtime.extension.api.annotation.Alias;
- import org.mule.runtime.extension.api.annotation.param.Connection;
- import org.mule.runtime.extension.api.annotation.param.MediaType;
- import org.mule.runtime.extension.api.annotation.param.display.Placement;
- import org.mule.runtime.extension.api.annotation.source.EmitsResponse;
- import org.mule.runtime.extension.api.runtime.operation.Result;
- import org.mule.runtime.extension.api.runtime.source.PollContext;
- import org.mule.runtime.extension.api.runtime.source.PollingSource;
- import org.mule.runtime.extension.api.runtime.source.SourceCallback;
- import org.mule.runtime.extension.api.runtime.source.SourceCallbackContext;
- import com.github.dockerjava.api.command.LogContainerCmd;
- import com.github.dockerjava.api.model.Frame;
- @Alias("usersource")
- @EmitsResponse
- @MediaType(value = ANY, strict = false)
- public class BasicSources extends PollingSource<InputStream, String> {
- static final Logger logger = LogManager.getLogger(BasicSources.class.getName());
- protected void doStart(final SourceCallback sourceCallback, final String containerName,
- boolean showTimeStamp,
- @Placement(order = 2) boolean standardOut,
- @Placement(order = 3) boolean standardError,int showSince,
- int tail, boolean followStream,@Connection BasicConnection con) throws MuleException{
- LogContainerCmd logContainerCmd = con.dockerClient.logContainerCmd(containerName).withTimestamps(showTimeStamp).withStdOut(standardOut)
- .withStdErr(standardError).withSince(showSince).withFollowStream(followStream);
- logger.info("Getting container logs");
- if (tail != 0) {
- logger.debug("Container logs with tail : " + tail);
- logContainerCmd.withTail(tail);
- }
- SourceCallBack<Frame> logsCallback = logContainerCmd.exec(new SourceCallBack<Frame>(sourceCallback));
- try {
- logsCallback.awaitCompletion();
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- try {
- logsCallback.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- @Override
- protected void doStop() {
- // TODO Auto-generated method stub
- }
- @Override
- public void poll(PollContext<InputStream, String> pollContext) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onRejectedItem(Result<InputStream, String> result, SourceCallbackContext callbackContext) {
- // TODO Auto-generated method stub
- }
- @Override
- protected void doStart() throws MuleException {
- // TODO Auto-generated method stub
- }
- }
Add Comment
Please, Sign In to add comment