@SuppressWarnings("unchecked")
    public void run() throws Exception {
        initShutdownHook();
        log.log(Level.FINE, "Starting VdsVisitTarget");
        MessageBusParams mbusParams = new MessageBusParams();
        mbusParams.getRPCNetworkParams().setIdentity(new Identity(slobrokAddress));

        if (port > 0) {
            mbusParams.getRPCNetworkParams().setListenPort(port);
        }

        access = new MessageBusDocumentAccess(mbusParams);

        VdsVisitHandler handler;

        Class<?> cls = Thread.currentThread().getContextClassLoader()
                .loadClass(handlerClassName);
        try {
            // Any custom data handlers may have a constructor that takes in args,
            // so that the user can pass cmd line options to them
            Class<?>[] consTypes = new Class<?>[] { boolean.class, boolean.class,
                    boolean.class, boolean.class, boolean.class,
                    boolean.class, int.class, String[].class };
            Constructor<?> cons = cls.getConstructor(consTypes);
            handler = (VdsVisitHandler)cons.newInstance(
                    printIds, verbose, verbose, verbose, false, false,
                    processTime, handlerArgs);
        } catch (NoSuchMethodException e) {
            // Retry, this time matching the StdOutVisitorHandler constructor
            // arg list
            Class<?>[] consTypes = new Class<?>[] { boolean.class, boolean.class,
                    boolean.class, boolean.class, boolean.class,
                    boolean.class, int.class, boolean.class };
            Constructor<?> cons = cls.getConstructor(consTypes);
            handler = (VdsVisitHandler)cons.newInstance(
                    printIds, verbose, verbose, verbose, false, false, processTime, false);
        }

        VisitorDataHandler dataHandler = handler.getDataHandler();
        VisitorControlHandler controlHandler = handler.getControlHandler();

        VisitorDestinationParameters params = new VisitorDestinationParameters(
                "visit-destination", dataHandler);
        session = access.createVisitorDestinationSession(params);
        while (!controlHandler.isDone()) {
            Thread.sleep(1000);
        }
    }
Example client using visiting

@author Einar M R Rosenvinge
vespaclient-java/src/main/java/com/yahoo/vespavisit/VdsVisitTarget.java