// Path: cxf/src/main/java/org/opennms/core/wsman/cxf/CXFWSManClientFactory.java
// public class CXFWSManClientFactory implements WSManClientFactory {
// 
//     @Override
//     public CXFWSManClient getClient(WSManEndpoint endpoint) {
//         return new CXFWSManClient(endpoint);
//     }
// }


import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.config.LoggerConfig;
import org.apache.logging.log4j.spi.StandardLevel;
import org.kohsuke.args4j.Argument;
import org.kohsuke.args4j.CmdLineException;
import org.kohsuke.args4j.CmdLineParser;
import org.kohsuke.args4j.Option;
import org.kohsuke.args4j.ParserProperties;
import org.kohsuke.args4j.spi.MapOptionHandler;
import org.opennms.core.wsman.cxf.CXFWSManClientFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import com.google.common.collect.Lists;
    @Option(name="-p", usage="password")
    private String password;

    @Option(name="-strictSSL", usage="ssl certificate verification")
    private boolean strictSSL = false;

    @Option(name="-gssAuth", usage="GSS authentication")
    private boolean gssAuth = false;

    @Option(name="-o", usage="operation")
    WSManOperation operation = WSManOperation.ENUM;

    @Option(name="-resourceUri", usage="resource uri")
    private String resourceUri = WSManConstants.CIM_ALL_AVAILABLE_CLASSES;

    @Option(name="-w", usage="server version")
    private WSManVersion serverVersion = WSManVersion.WSMAN_1_2;

    @Option(name="-v", usage="logging level")
    private StandardLevel logLevel = StandardLevel.INFO;

    @Option(name="-vvv", usage="log request and responses")
    private boolean logRequests = false;

    @Option(name="-s", handler=MapOptionHandler.class)
    private Map<String,String> selectors;

    @Argument
    private List<String> arguments = new ArrayList<String>();

// Path: cxf/src/main/java/org/opennms/core/wsman/cxf/CXFWSManClientFactory.java
// public class CXFWSManClientFactory implements WSManClientFactory {
// 
//     @Override
//     public CXFWSManClient getClient(WSManEndpoint endpoint) {
//         return new CXFWSManClient(endpoint);
//     }
// }


// Path: cli/src/main/java/org/opennms/core/wsman/WSManCli.java
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.config.LoggerConfig;
import org.apache.logging.log4j.spi.StandardLevel;
import org.kohsuke.args4j.Argument;
import org.kohsuke.args4j.CmdLineException;
import org.kohsuke.args4j.CmdLineParser;
import org.kohsuke.args4j.Option;
import org.kohsuke.args4j.ParserProperties;
import org.kohsuke.args4j.spi.MapOptionHandler;
import org.opennms.core.wsman.cxf.CXFWSManClientFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import com.google.common.collect.Lists;

    @Option(name="-p", usage="password")
    private String password;

    @Option(name="-strictSSL", usage="ssl certificate verification")
    private boolean strictSSL = false;

    @Option(name="-gssAuth", usage="GSS authentication")
    private boolean gssAuth = false;

    @Option(name="-o", usage="operation")
    WSManOperation operation = WSManOperation.ENUM;

    @Option(name="-resourceUri", usage="resource uri")
    private String resourceUri = WSManConstants.CIM_ALL_AVAILABLE_CLASSES;

    @Option(name="-w", usage="server version")
    private WSManVersion serverVersion = WSManVersion.WSMAN_1_2;

    @Option(name="-v", usage="logging level")
    private StandardLevel logLevel = StandardLevel.INFO;

    @Option(name="-vvv", usage="log request and responses")
    private boolean logRequests = false;

    @Option(name="-s", handler=MapOptionHandler.class)
    private Map<String,String> selectors;

    @Argument
    private List<String> arguments = new ArrayList<String>();

    private WSManClientFactory clientFactory = new CXFWSManClientFactory();