Example usage for org.apache.commons.net.telnet TelnetClient disconnect

List of usage examples for org.apache.commons.net.telnet TelnetClient disconnect

Introduction

In this page you can find the example usage for org.apache.commons.net.telnet TelnetClient disconnect.

Prototype

@Override
public void disconnect() throws IOException 

Source Link

Document

Disconnects the telnet session, closing the input and output streams as well as the socket.

Usage

From source file:examples.weatherTelnet.java

public final static void main(String[] args) {
    TelnetClient telnet;

    telnet = new TelnetClient();

    try {/*from   w  w  w  .ja  va  2 s  .  c o m*/
        telnet.connect("rainmaker.wunderground.com", 3000);
    } catch (IOException e) {
        e.printStackTrace();
        System.exit(1);
    }

    IOUtil.readWrite(telnet.getInputStream(), telnet.getOutputStream(), System.in, System.out);

    try {
        telnet.disconnect();
    } catch (IOException e) {
        e.printStackTrace();
        System.exit(1);
    }

    System.exit(0);
}

From source file:expect4j.ExpectUtils.java

/**
 * TODO Simulate "Could not open connection to the host, on port...."
 * TODO Simulate "Connection refused"//w  w w.  j av  a  2  s  .  co m
 */
public static Expect4j telnet(String hostname, int port) throws Exception {
    // This library has trouble with EOF
    final TelnetClient client = new TelnetClient();

    TerminalTypeOptionHandler ttopt = new TerminalTypeOptionHandler("VT100", false, false, true, true);
    EchoOptionHandler echoopt = new EchoOptionHandler(true, false, true, false);
    SuppressGAOptionHandler gaopt = new SuppressGAOptionHandler(false, false, false, false);
    client.addOptionHandler(ttopt);
    client.addOptionHandler(echoopt);
    client.addOptionHandler(gaopt);

    client.connect(hostname, port);
    InputStream is = new FromNetASCIIInputStream(client.getInputStream()); // null until client connected
    OutputStream os = new ToNetASCIIOutputStream(client.getOutputStream());

    StreamPair pair = new StreamPair(is, os) {
        public void close() {
            //super.close();
            try {
                if (client != null)
                    client.disconnect();
            } catch (IOException ioe) {

            }
        }
    };

    /*
    URL url=new URL("telnet", hostname, port, "",  new thor.net.URLStreamHandler());
    final URLConnection urlConnection=url.openConnection();
    urlConnection.connect();
    if (urlConnection instanceof TelnetURLConnection) {
    ((TelnetURLConnection)urlConnection).setTelnetTerminalHandler(new SimpleTelnetTerminalHandler());
    }
    OutputStream os=urlConnection.getOutputStream();
    InputStream is=urlConnection.getInputStream();
             
    StreamPair pair = new StreamPair(is, os) {
    public void close() {
        try { ((TelnetURLConnection)urlConnection).disconnect(); }catch(Exception e) { }
    }
    };
     */
    Expect4j expect4j = new Expect4j(pair);

    return expect4j;
}

From source file:com.comcast.cats.service.power.WTI_NPS_1600_PowerDeviceTest.java

/**
 * Test logout./*  w w w.j a v  a 2  s  . c o  m*/
 *
 * @throws Exception the exception
 */
@Test
public void testLogout() throws Exception {
    TelnetClient client = EasyMock.createMock(TelnetClient.class);
    client.disconnect();
    EasyMock.expectLastCall();
    Whitebox.setInternalState(npsPowerDevice, "client", client);
    EasyMock.replay(client);
    Assert.assertTrue(npsPowerDevice.logout());
    EasyMock.verify(client);
}

From source file:com.dangdang.ddframe.job.console.controller.RegistryCenterController.java

private boolean validate(final RegistryCenterConfiguration config) {

    String[] zkAddress = config.getZkAddressList().split(",");

    // /* w w  w . j a v a  2s .co  m*/
    TelnetClient client = new TelnetClient();
    String hostname;
    int port;
    for (String address : zkAddress) {
        try {
            hostname = address.substring(0, address.indexOf(":")).trim();
            port = Integer.parseInt(address.substring(address.lastIndexOf(":") + 1).trim());

            client.setDefaultTimeout(5000);
            client.connect(hostname, port);
            if (client.isConnected()) {
                return true;
            }
        } catch (Exception e1) {
        } finally {
            try {
                client.disconnect();
            } catch (IOException e) {
                //
            }
        }
    }
    return false;
}

From source file:eu.europa.ec.fisheries.uvms.plugins.inmarsat.twostage.Connect.java

public String connect(PollType poll, String path, String url, String port, String user, String psw, String dnid)
        throws TelnetException {

    String response = null;/*from w w  w .  j  av a2  s  .com*/
    try {
        TelnetClient telnet = new TelnetClient();

        telnet.connect(url, Integer.parseInt(port));
        BufferedInputStream input = new BufferedInputStream(telnet.getInputStream());
        PrintStream output = new PrintStream(telnet.getOutputStream());

        readUntil("name:", input, null, url, port);
        write(user, output);
        readUntil("word:", input, null, url, port);
        sendPsw(output, psw);
        readUntil(">", input, null, url, port);

        response = issueCommand(poll, output, input, dnid, path, url, port);

        if (telnet.isConnected()) {
            telnet.disconnect();
        }
    } catch (IOException ex) {
        LOG.error("Error when communicating with Telnet", ex);
    } catch (NullPointerException ex) {
        throw new TelnetException(ex);
    }
    return response;
}

From source file:com.sjc.cc.login.action.LoginAction.java

private String getInterfaceStrs() {

    StringBuffer buf = new StringBuffer();
    buf.append("<table>");
    HostConnectionStatus hostStatus = new HostConnectionStatus();
    String proxyIp = Config.getProperty("mail.send.host");
    try {/*from  w w w  .  ja v  a2s .  c  o m*/

        TelnetClient telnet = new TelnetClient();
        telnet.connect(proxyIp, 25);// ????
        telnet.disconnect();
        hostStatus.setOaGatewayConStatus(true);
    } catch (Exception ex) {

        logger.error("<<<<<<<<<<<?.", ex);
        hostStatus.setOaGatewayConStatus(false);
    }

    try {

        /*CPIC_InterfaceForm_ChangeRequest_CreateGet_WSServiceStub sub1 = new CPIC_InterfaceForm_ChangeRequest_CreateGet_WSServiceStub();
        sub1._getServiceClient().getServiceContext();
        sub1 = null;*/
        hostStatus.setRemedyConStatus(true);
    } catch (Exception ex) {

        logger.error("<<<<<<<<<<<Remedy?.", ex);
        hostStatus.setRemedyConStatus(false);
    }

    hostStatus.setCmdbConStatus(outService.cmdbValidation());
    hostStatus.setNewResStatus(outService.csValidation());

    if (hostStatus.isCmdbConStatus()) {

        buf.append("<tr>");
        buf.append("<td><font>CMDB</font></td><td><span class='Rstate_green' title=''></span></td>");
        buf.append("</tr>");
    } else {

        buf.append("<tr>");
        buf.append("<td><font>CMDB</font></td><td><span class='Rstate_red' title=''></span></td>");
        buf.append("</tr>");
    }

    if (hostStatus.isNewResStatus()) {

        buf.append("<tr>");
        buf.append(
                "<td><font>?</font></td><td><span class='Rstate_green' title=''></span></td>");
        buf.append("</tr>");
    } else {

        buf.append("<tr>");
        buf.append(
                "<td><font>?</font></td><td><span class='Rstate_red' title=''></span></td>");
        buf.append("</tr>");
    }

    Map<String, Boolean> map = outService.vcValidation();
    Set<String> set = map.keySet();
    buf.append("<tr><td><font>??</font></td><td>");
    for (String ip : set) {
        if (map.get(ip).booleanValue()) {

            buf.append("<span class='Rstate_green' title='" + ip + "'></span>");
        } else {

            buf.append("<span class='Rstate_red' title='" + ip + "'></span>");
        }
    }
    buf.append("</td></tr>");

    if (hostStatus.isRemedyConStatus()) {

        buf.append("<tr>");
        buf.append("<td><font>Remedy</font></td><td><span class='Rstate_green' title=''></span></td>");
        buf.append("</tr>");
    } else {

        buf.append("<tr>");
        buf.append("<td><font>Remedy</font></td><td><span class='Rstate_red' title=''></span></td>");
        buf.append("</tr>");
    }

    if (hostStatus.isOaGatewayConStatus()) {

        buf.append("<tr>");
        buf.append(
                "<td><font>OA</font></td><td><span class='Rstate_green' title=''></span></td>");
        buf.append("</tr>");
    } else {
        buf.append("<tr>");
        buf.append("<td><font>OA</font></td><td><span class='Rstate_red' title=''></span></td>");
        buf.append("</tr>");
    }
    buf.append("</table>");

    return buf.toString();
}

From source file:de.quadrillenschule.azocamsyncd.ftpservice.FTPConnection.java

public String telnetCommands(String[] commands) {
    close();//from w  ww . ja  va  2s .  c  o m
    final TelnetClient telnetclient = new TelnetClient();
    telnetclient.setDefaultTimeout(TIMEOUT);
    try {
        telnetclient.connect(getLastWorkingConnection());

        final StringWriter sw = new StringWriter();
        for (String command : commands) {
            IOUtils.copy(new ByteArrayInputStream((command + "\r\n").getBytes(telnetclient.getCharset())),
                    telnetclient.getOutputStream());
        }
        try {
            Thread.sleep(1000);
        } catch (InterruptedException ex) {
            Logger.getLogger(FTPConnection.class.getName()).log(Level.SEVERE, null, ex);
        }

        // tins.join();
        telnetclient.disconnect();
        //  System.out.println(sw.toString());

        return null;//sw.toString();//sw.toString();

    } catch (IOException ex) {
        try {
            telnetclient.disconnect();
        } catch (IOException ex1) {
            Logger.getLogger(FTPConnection.class.getName()).log(Level.SEVERE, null, ex1);
        }
        Logger.getLogger(FTPConnection.class.getName()).log(Level.SEVERE, null, ex);
    }
    return null;
}

From source file:it.infn.ct.jsaga.adaptor.rocci.job.rOCCIJobControlAdaptor.java

@Override
public String submit(String jobDesc, boolean checkMatch, String uniqId)
        throws PermissionDeniedException, TimeoutException, NoSuccessException, BadResource {
    String resourceID = "";
    String publicIP = "";
    //List<String> results = new ArrayList();
    List<String> results = new ArrayList<String>();

    if (action.equals("create")) {

        log.info("Creating a new OCCI computeID. Please wait! ");

        if (attributes_title.trim().length() > 0)
            log.info("VM Title     = " + attributes_title);

        if (mixin_os_tpl.trim().length() > 0)
            log.info("OS           = " + mixin_os_tpl);

        if (mixin_resource_tpl.trim().length() > 0)
            log.info("Flavour      = " + mixin_resource_tpl);

        String Execute = prefix + "occi --endpoint " + Endpoint + " --action " + "create" + " --resource "
                + resource + " --attribute occi.core.title=" + attributes_title + " --mixin os_tpl#"
                + mixin_os_tpl + " --mixin resource_tpl#" + mixin_resource_tpl + " --auth " + auth
                + " --user-cred " + user_cred + " --voms --ca-path " + ca_path;

        log.info("");
        log.info(Execute);/*from   w ww.j a  v a  2 s .c o m*/

        try {
            results = run_OCCI("create", Execute);
            if (results.isEmpty())
                throw new NoSuccessException("Some problems occurred while executing the action create. "
                        + "Please check your settings.");

        } catch (Exception ex) {
            log.error(ex);
        }

        // Getting info about the VM
        if (results.size() > 0) {
            resourceID = results.get(0);

            int k = 0;
            boolean check = false;

            try {
                while (!check) {
                    log.info("");
                    log.info("See below the details of the VM ");
                    log.info("[ " + resourceID + " ]");
                    log.info("");

                    Execute = prefix + "occi --endpoint " + Endpoint + " --action " + "describe"
                            + " --resource " + resource + " --resource " + resourceID + " --auth " + auth
                            + " --user-cred " + user_cred + " --voms --ca-path " + ca_path
                            + " --output-format json_extended_pretty";

                    log.info(Execute);

                    results = run_OCCI("describe", Execute);

                    publicIP = getIP(results);
                    if (!isNullOrEmpty(publicIP))
                        check = true;
                    else
                        check = true;
                } // end while
            } catch (Exception ex) {
                log.error(ex);
            }

            sshControlAdaptor.setSecurityCredential(credential.getSSHCredential());
            log.info("");
            log.info("Starting VM [ " + publicIP + " ] in progress...");

            Date date = new Date();
            SimpleDateFormat ft = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");

            log.info("");
            log.info("Waiting the remote VM finishes the boot! Sleeping for a while... ");
            log.info(ft.format(date));

            byte[] buff = new byte[1024];
            int ret_read = 0;
            boolean flag = true;
            int MAX = 0;

            TelnetClient tc = null;

            while ((flag) && (MAX < MAX_CONNECTIONS)) {
                try {
                    tc = new TelnetClient();
                    tc.connect(publicIP, 22);
                    InputStream instr = tc.getInputStream();

                    ret_read = instr.read(buff);
                    if (ret_read > 0) {
                        log.info("[ SUCCESS ] ");
                        tc.disconnect();
                        flag = false;
                    }
                } catch (IOException e) {

                    try {
                        Thread.sleep(60000);
                    } catch (InterruptedException ex) {
                    }

                    MAX++;
                }
            }

            date = new Date();
            log.info(ft.format(date));
        }

        rOCCIJobMonitorAdaptor.setSSHHost(publicIP);

        try {
            sshControlAdaptor.connect(null, publicIP, 22, null, new HashMap());
        } catch (NotImplementedException ex) {
            throw new NoSuccessException(ex);
        } catch (AuthenticationFailedException ex) {
            throw new PermissionDeniedException(ex);
        } catch (AuthorizationFailedException ex) {
            throw new PermissionDeniedException(ex);
        } catch (BadParameterException ex) {
            throw new NoSuccessException(ex);
        }

        return sshControlAdaptor.submit(jobDesc, checkMatch, uniqId) + "@" + publicIP + "#" + resourceID;
    } // end creating

    else
        return null;
}

From source file:it.infn.ct.jsaga.adaptor.jocci.job.jOCCIJobControlAdaptor.java

@Override
public String submit(String jobDesc, boolean checkMatch, String uniqId)
        throws PermissionDeniedException, TimeoutException, NoSuccessException, BadResource {
    String result = "";
    //String networkInterfaceLocation = "";
    //String networkInterfaceLocation_stripped = "";
    //Resource vm_resource = null;
    String publicIP = "";

    if (action.equals("create")) {
        try {//from   w  ww.  j a  va 2 s.c  o m
            log.info("Creating a new resource using jOCCI-api. Please wait!");

            if (attributes_title.trim().length() > 0)
                log.info("VM Title     = " + attributes_title);

            if (mixin_os_tpl.trim().length() > 0)
                log.info("OS           = " + mixin_os_tpl);

            if (mixin_resource_tpl.trim().length() > 0)
                log.info("Flavour      = " + mixin_resource_tpl);

            log.info("");
            if (context_publickey.equals("true")) {
                log.info("EGI FedCloud Contextualisation options:");

                log.info("org.openstack.credentials.publickey.data = "
                        + getPublicKey(credential.getSSHCredential().getPublicKeyFile().getPath()));

                log.info("org.openstack.credentials.publickey.name = " + context_publickey_name);
            } else
                log.info("No contextualization set for the resource.");

            HTTPAuthentication authentication = new VOMSAuthentication(user_cred);

            authentication.setCAPath(ca_path);
            /*Client client = new HTTPClient(URI.create("https://"
                + OCCI_ENDPOINT_HOST + ":"
                + OCCI_ENDPOINT_PORT),
                authentication, MediaType.TEXT_PLAIN, false);*/

            Client client = new HTTPClient(URI.create(protocol + OCCI_ENDPOINT_HOST + ":" + OCCI_ENDPOINT_PORT),
                    authentication, MediaType.TEXT_PLAIN, false);

            //connect client
            client.connect();

            Model model = client.getModel();
            EntityBuilder eb = new EntityBuilder(model);
            Date date = new Date();

            log.info("");
            log.info("[ TEMPLATES ]");
            log.info("- Available os templates mixins ...");
            List<Mixin> mixins = model.findRelatedMixins("os_tpl");

            if (!mixins.isEmpty()) {
                for (Mixin entry : mixins)
                    log.info(entry);

                // 1.) Create a new compute resource
                log.info("");
                log.info("[ CREATE ]");
                Resource compute = eb.getResource("compute");
                Mixin mixin = model.findMixin(mixin_os_tpl);
                compute.addMixin(mixin);
                compute.addMixin(model.findMixin(mixin_os_tpl, "os_tpl"));
                compute.addMixin(model.findMixin(mixin_resource_tpl, "resource_tpl"));
                if (context_publickey.equals("true")) {
                    // Add SSH public key 
                    compute.addMixin(model.findMixin(
                            URI.create("http://schemas.openstack.org/instance/credentials#public_key")));
                    compute.addAttribute("org.openstack.credentials.publickey.name", context_publickey_name);

                    compute.addAttribute("org.openstack.credentials.publickey.data",
                            getPublicKey(credential.getSSHCredential().getPublicKeyFile().getPath()));
                }

                compute.setTitle(attributes_title);
                log.info(mixin.toText());

                log.info("");
                // Creating a new VM resource
                URI location = client.create(compute);

                // Getting the list of available running resources
                List<URI> list = client.list();
                URI uri_location = list.get(0);
                // Listing all the active resources
                //URI uri_location = null;
                log.info("[ LIST ]");
                log.info("- Retieve the list of VMs running on the cloud site");

                for (URI uri : list) {
                    if (uri.toString().contains("compute")) //{
                        log.info("~ " + uri);
                    //uri_location = uri;
                    //}
                }

                log.info("");
                log.info("================= [ R E P O R T ] =================");

                // 3.) Describe resource
                log.info("");
                log.info("[ DESCRIPTION ]");
                if (location != null) {
                    log.info("- Getting VM settings for the resource");
                    log.info(uri_location);
                } else
                    log.error("Some errors occurred during the creation of a new resource.");

                List<Entity> entities = client.describe(uri_location);
                Resource resource = (Resource) entities.get(0);
                vm_resource = resource;
                log.info(entities.get(0).toText());

                SimpleDateFormat ft = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");

                log.info("");
                log.info("Waiting the remote VM finishes the boot!");
                log.info(ft.format(date));

                log.info("");
                log.info("Waiting the status of the following resource becomes ACTIVE");
                log.info(uri_location);
                log.info("This operation may take few minutes to complete. Please wait!");
                log.info("");

                try {
                    Thread.sleep(60000);
                } catch (InterruptedException ex) {
                    java.util.logging.Logger.getLogger(jOCCIJobControlAdaptor.class.getName()).log(Level.SEVERE,
                            null, ex);
                }

                while (!entities.get(0).getValue(Compute.STATE_ATTRIBUTE_NAME).equals("active")) {
                    log.info("[ STATUS ] = " + entities.get(0).getValue(Compute.STATE_ATTRIBUTE_NAME));

                    entities = client.describe(uri_location);

                    if (entities.get(0).getValue(Compute.STATE_ATTRIBUTE_NAME).equals("active")) {
                        log.info("[ STATUS ] = " + entities.get(0).getValue(Compute.STATE_ATTRIBUTE_NAME));

                        try {
                            Thread.sleep(30000);
                        } catch (InterruptedException ex) {
                            java.util.logging.Logger.getLogger(jOCCIJobControlAdaptor.class.getName())
                                    .log(Level.SEVERE, null, ex);
                        }

                        // Getting IP address and NetworkLocation 
                        // of the resource
                        String IP = getNetworkLocation(entities)[0];

                        log.info("");
                        log.info("The compute resource is now active!");
                        log.info("URI = " + uri_location);
                        log.info("IP  = " + IP);
                        log.info("");
                        log.info("Check whether the compute resource has a public IP or not ");

                        if (checkIP(IP) != null) {
                            log.info("The compute resource has a *public* IP [ " + IP + " ]");
                            publicIP = IP;
                        } else {
                            log.info("The compute resource has a *private* IP [ " + IP + " ]");

                            // Find a network resource that provides public IPs 
                            String public_network = "";
                            List<URI> uris = client.list("network");
                            log.info("Listing available networks for the given resource");
                            if (!uris.isEmpty()) {
                                // Listing networks
                                for (URI uri : uris) {
                                    //if ((uri.toString()).contains("public"))
                                    if ((uri.toString()).contains(OCCI_PUBLIC_NETWORK_ID))
                                        public_network = uri.toString();

                                    log.info("NetworkID = " + uri.toString());
                                }
                            }

                            try {
                                Thread.sleep(5000);
                            } catch (InterruptedException ex) {
                                java.util.logging.Logger.getLogger(jOCCIJobControlAdaptor.class.getName())
                                        .log(Level.SEVERE, null, ex);
                            }

                            if (public_network != null && !public_network.isEmpty()) {
                                log.info("");
                                log.info("Public Network = " + public_network);
                                log.info("Unlink the network interface that doesn't have public IPs");
                                log.info("NetworkID = " + getNetworkLocation(entities)[1]);
                                client.delete(URI.create((getNetworkLocation(entities)[1])));

                                IPNetworkInterface ipni = eb.getIPNetworkInterface();
                                ipni.setSource(vm_resource);
                                ipni.setTarget(public_network);
                                location = client.create(ipni);

                                // Sleeping for a while
                                try {
                                    Thread.sleep(5000);
                                } catch (InterruptedException ex) {
                                    ex.printStackTrace(System.out);
                                }

                                log.info("");
                                log.info("[ DESCRIPTION ]");
                                entities = client.describe(uri_location);
                                log.info(entities.get(0).toText());

                                String tmp = "";
                                log.info("");
                                log.info("- Get the available IPs for the given VM");
                                for (Entity entity : entities) {
                                    resource = (Resource) entity;
                                    Set<Link> links = resource.getLinks(NetworkInterface.TERM_DEFAULT);

                                    for (Link link : links) {
                                        tmp = link.getValue(IPNetworkInterface.ADDRESS_ATTRIBUTE_NAME);
                                        log.info("IP = " + tmp);
                                        if (checkIP(tmp) != null)
                                            publicIP = tmp;
                                    }
                                } // end-for
                            } // end-if
                        } // end-else

                        log.info("Public IP address = " + publicIP);
                        log.info("Checking for connectivity. Please wait! ");

                        byte[] buff = new byte[1024];
                        int ret_read = 0;
                        boolean flag = true;
                        int MAX = 0;
                        TelnetClient tc = null;

                        while ((flag) && (MAX < MAX_CONNECTIONS)) {
                            try {
                                tc = new TelnetClient();
                                tc.connect(publicIP, 22);
                                InputStream instr = tc.getInputStream();

                                ret_read = instr.read(buff);
                                if (ret_read > 0) {
                                    log.info("SSH daemon has started [ OK ] ");
                                    tc.disconnect();
                                    flag = false;
                                }
                            } catch (IOException e) {
                                log.info("The destination host is unreachable. Sleeping for a while... ");
                                try {
                                    Thread.sleep(60000);
                                } catch (InterruptedException ex) {
                                    java.util.logging.Logger.getLogger(jOCCIJobControlAdaptor.class.getName())
                                            .log(Level.SEVERE, null, ex);
                                }

                                MAX++;
                            }
                        } // end-while

                        date = new Date();
                        log.info(ft.format(date));

                        jOCCIJobMonitorAdaptor.setSSHHost(publicIP);

                        try {
                            sshControlAdaptor.connect(null, publicIP, 22, null, new HashMap());
                        } catch (NotImplementedException ex) {
                            throw new NoSuccessException(ex);
                        } catch (AuthenticationFailedException ex) {
                            throw new PermissionDeniedException(ex);
                        } catch (AuthorizationFailedException ex) {
                            throw new PermissionDeniedException(ex);
                        } catch (BadParameterException ex) {
                            throw new NoSuccessException(ex);
                        }

                        result = sshControlAdaptor.submit(jobDesc, checkMatch, uniqId) + "@" + publicIP + "#"
                                + uri_location;

                        break;
                    } else {
                        try {
                            // Sleeping for a while ...
                            Thread.sleep(5000);
                        } catch (InterruptedException ex) {
                            java.util.logging.Logger.getLogger(jOCCIJobControlAdaptor.class.getName())
                                    .log(Level.SEVERE, null, ex);
                        }
                    } //end-else
                } //end-while

            } else
                log.error("No OS template mixins available!");

        } catch (RenderingException ex) {
            java.util.logging.Logger.getLogger(jOCCIJobControlAdaptor.class.getName()).log(Level.SEVERE, null,
                    ex);
        } catch (InvalidAttributeValueException ex) {
            java.util.logging.Logger.getLogger(jOCCIJobControlAdaptor.class.getName()).log(Level.SEVERE, null,
                    ex);
        } catch (EntityBuildingException ex) {
            java.util.logging.Logger.getLogger(jOCCIJobControlAdaptor.class.getName()).log(Level.SEVERE, null,
                    ex);
        } catch (AmbiguousIdentifierException ex) {
            java.util.logging.Logger.getLogger(jOCCIJobControlAdaptor.class.getName()).log(Level.SEVERE, null,
                    ex);
        } catch (CommunicationException ex) {
            java.util.logging.Logger.getLogger(jOCCIJobControlAdaptor.class.getName()).log(Level.SEVERE, null,
                    ex);
        }
    } // end creating

    return result;
}

From source file:li.klass.fhem.fhem.TelnetConnection.java

public RequestResult<String> executeCommand(String command, Context context) {
    LOG.info("executeTask command {}", command);

    final TelnetClient telnetClient = new TelnetClient();
    telnetClient.setConnectTimeout(getConnectionTimeoutMilliSeconds(context));

    BufferedOutputStream bufferedOutputStream = null;
    PrintStream printStream = null;

    String errorHost = serverSpec.getIp() + ":" + serverSpec.getPort();
    try {/*from w  ww.  java 2  s.  com*/
        telnetClient.connect(serverSpec.getIp(), serverSpec.getPort());

        OutputStream outputStream = telnetClient.getOutputStream();
        InputStream inputStream = telnetClient.getInputStream();

        bufferedOutputStream = new BufferedOutputStream(outputStream);
        printStream = new PrintStream(outputStream);

        boolean passwordSent = false;
        String passwordRead = readUntil(inputStream, PASSWORD_PROMPT);
        if (passwordRead != null && passwordRead.contains(PASSWORD_PROMPT)) {
            LOG.info("sending password");
            writeCommand(printStream, serverSpec.getPassword());
            passwordSent = true;
        }

        writeCommand(printStream, "\n\n");

        if (!waitForFilledStream(inputStream, 5000)) {
            return new RequestResult<>(RequestResultError.HOST_CONNECTION_ERROR);
        }

        // to discard
        String toDiscard = read(inputStream);
        LOG.debug("discarding {}", toDiscard);

        writeCommand(printStream, command);

        // If we send an xmllist, we are done when finding the closing FHZINFO tag.
        // If another command is used, the tag ending delimiter is obsolete, not found and
        // therefore not used. We just read until the stream ends.
        String result;
        if (command.equals("xmllist")) {
            result = readUntil(inputStream, "</FHZINFO>");
        } else {
            result = read(inputStream);
        }

        if (result == null && passwordSent) {
            return new RequestResult<>(RequestResultError.AUTHENTICATION_ERROR);
        } else if (result == null) {
            return new RequestResult<>(RequestResultError.INVALID_CONTENT);
        }

        telnetClient.disconnect();

        int startPos = result.indexOf(", try help");
        if (startPos != -1) {
            result = result.substring(startPos + ", try help".length());
        }

        startPos = result.indexOf("<");
        if (startPos != -1) {
            result = result.substring(startPos);
        }

        result = result.replaceAll("Bye...", "").replaceAll("fhem>", "");
        result = new String(result.getBytes("UTF8"));
        LOG.debug("result is {}", result);

        return new RequestResult<>(result);

    } catch (SocketTimeoutException e) {
        LOG.error("timeout", e);
        setErrorInErrorHolderFor(e, errorHost, command);
        return new RequestResult<>(RequestResultError.CONNECTION_TIMEOUT);
    } catch (UnsupportedEncodingException e) {
        // this may never happen, as UTF8 is known ...
        setErrorInErrorHolderFor(e, errorHost, command);
        throw new IllegalStateException("unsupported encoding", e);
    } catch (SocketException e) {
        // We handle host connection errors directly after connecting to the server by waiting
        // for some token for some seconds. Afterwards, the only possibility for an error
        // is that the FHEM server ends the connection after receiving an invalid password.
        LOG.error("SocketException", e);
        setErrorInErrorHolderFor(e, errorHost, command);
        return new RequestResult<>(RequestResultError.AUTHENTICATION_ERROR);
    } catch (IOException e) {
        LOG.error("IOException", e);
        setErrorInErrorHolderFor(e, errorHost, command);
        return new RequestResult<>(RequestResultError.HOST_CONNECTION_ERROR);
    } finally {
        CloseableUtil.close(printStream, bufferedOutputStream);
    }
}