Package org.apache.qpid.qmf2.common

Examples of org.apache.qpid.qmf2.common.QmfData


            response.setStringProperty("method", "response");
            response.setStringProperty("qmf.opcode", "_exception");
            response.setStringProperty("qmf.agent", _name);
            response.setStringProperty("qpid.subject", handle.getRoutingKey());

            QmfData exception = new QmfData();
            exception.setValue("error_text", message);
            response.setObject("_values", exception.mapEncode());
            sendResponse(handle, response);
        }
        catch (JMSException jmse)
        {
            _log.info("JMSException {} caught in handleLocateRequest()", jmse.getMessage());
View Full Code Here


        if (args.length > 2)
        {
            bindingIdentifier = bindingIdentifier + "/" + args[2];
        }

        QmfData arguments = new QmfData();
        arguments.setValue("type", "binding");
        arguments.setValue("name", bindingIdentifier);
        arguments.setValue("properties", properties);

        try
        {
            _broker.invokeMethod("create", arguments);
        }
View Full Code Here

            }
            else if (opcode.equals("_subscribe_cancel_indication"))
            {
                if (AMQPMessage.isAMQPMap(message))
                {
                    QmfData qmfSubscribe = new QmfData(AMQPMessage.getMap(message));
                    String subscriptionId = qmfSubscribe.getStringValue("_subscription_id");
                    if (this instanceof AgentExternal)
                    {
                        _eventListener.onEvent(new UnsubscribeRequestWorkItem(subscriptionId));
                    }
                    else
View Full Code Here

        if (args.length > 2)
        {
            bindingIdentifier = bindingIdentifier + "/" + args[2];
        }

        QmfData arguments = new QmfData();
        arguments.setValue("type", "binding");
        arguments.setValue("name", bindingIdentifier);

        try
        {
            _broker.invokeMethod("delete", arguments);
        }
View Full Code Here

                return;
            }

            try
            {
                QmfData arguments = new QmfData();
                arguments.setValue("request", (long)(_purge*msgDepth));
                queue.invokeMethod("purge", arguments);
            }
            catch (QmfException e)
            {
                System.out.println(e.getMessage());
View Full Code Here

            List<Agent> agentList = Arrays.asList(new Agent[] {agent});
            List<QmfConsoleData> objects = _console.getObjects(pkg, cls, agentList);

            // Parse the args String
            QmfData inArgs = (args == null) ? new QmfData() : new QmfData(new AddressParser(args).map());

            // Find the required QmfConsoleData object and invoke the specified command
            MethodResult results = null;
            for (QmfConsoleData object : objects)
            {
View Full Code Here

            MethodCallWorkItem item = (MethodCallWorkItem)wi;
            MethodCallParams methodCallParams = item.getMethodCallParams();
            String methodName = methodCallParams.getName();
            ObjectId objectId = methodCallParams.getObjectId();
            String userId = methodCallParams.getUserId();
            QmfData inArgs = methodCallParams.getArgs();
            ObjectId controlAddress = _control.getObjectId();

            System.out.println("Method Call User ID = " + userId);

            try
            {
                if (objectId == null)
                {
                    // Method invoked directly on Agent
                    if (methodName.equals("toString"))
                    {
                        QmfData outArgs = new QmfData();
                        outArgs.setValue("string", _agent.toString());
                        _agent.methodResponse(methodName, item.getHandle(), outArgs, null);
                    }
                }
                else if (objectId.equals(controlAddress))
                {
                    if (methodName.equals("stop"))
                    {
                        System.out.println("Invoked stop method");
                        String message = inArgs.getStringValue("message");
                        System.out.println("Stopping: message = " + message);
                        _agent.methodResponse(methodName, item.getHandle(), null, null);
                        _agent.destroy();
                        System.exit(1);
                    }
                    else if (methodName.equals("echo"))
                    {
                        System.out.println("Invoked echo method");
                        _agent.methodResponse(methodName, item.getHandle(), inArgs, null);
                    }
                    else if (methodName.equals("event"))
                    {
                        System.out.println("Invoked event method");
                        QmfEvent event = new QmfEvent(_eventSchema);
                        event.setSeverity((int)inArgs.getLongValue("severity"));
                        event.setValue("text", inArgs.getStringValue("text"));
                        _agent.raiseEvent(event);
                        _agent.methodResponse(methodName, item.getHandle(), null, null);
                    }
                    else if (methodName.equals("fail"))
                    {
                        System.out.println("Invoked fail method");
                        QmfData error = new QmfData();
                        if (inArgs.getBooleanValue("useString"))
                        {
                            error.setValue("error_text", inArgs.getStringValue("stringVal"));
                        }
                        else
                        {
                            error.setValue("whatHappened", "It Failed");
                            error.setValue("howBad", 75);
                            error.setValue("details", inArgs.getValue("details"));
                        }
                        _agent.methodResponse(methodName, item.getHandle(), null, error);
                    }
                    else if (methodName.equals("create_child"))
                    {
                        System.out.println("Invoked create_child method");
                        String childName = inArgs.getStringValue("name");
                        System.out.println("childName = " + childName);
                        QmfAgentData child = new QmfAgentData(_childSchema);
                        child.setValue("name", childName);
                        addObject(child);
                        QmfData outArgs = new QmfData();
                        outArgs.setRefValue("childAddr", child.getObjectId(), "reference"); // Set suptype just to test
                        _agent.methodResponse(methodName, item.getHandle(), outArgs, null);
                    }
                }
            }
            catch (QmfException qmfe)
            {
                System.err.println("QmfException " + qmfe.getMessage() + " caught: AgentExternalTest failed");
                QmfData error = new QmfData();
                error.setValue("error_text", qmfe.getMessage());
                _agent.methodResponse(methodName, item.getHandle(), null, error);
            }
        }

        if (wi.getType() == QUERY)
        {
            QueryWorkItem item = (QueryWorkItem)wi;
            QmfQuery query = item.getQmfQuery();

            System.out.println("Query User ID = " + item.getUserId());

            if (query.getObjectId() != null)
            {
                // Look up a QmfAgentData object by the ObjectId obtained from the query
                ObjectId objectId = query.getObjectId();
                QmfAgentData object = _objectIndex.get(objectId);
                if (object != null && !object.isDeleted())
                {
                    _agent.queryResponse(item.getHandle(), object);
                }
                _agent.queryComplete(item.getHandle(), 0);
            }
            else
            {
                // Look up QmfAgentData objects by the SchemaClassId obtained from the query
                // This is implemented by a linear search and allows searches with only the className specified.
                // Linear searches clearly don't scale brilliantly, but the number of QmfAgentData objects managed
                // by an Agent is generally fairly small, so it should be OK. Note that this is the same approach
                // taken by the C++ broker ManagementAgent, so if it's a problem here........
                for (QmfAgentData object : _objectIndex.values())
                {
                    if (!object.isDeleted() && query.evaluate(object))
                    {
                        _agent.queryResponse(item.getHandle(), object);
                    }
                }
                _agent.queryComplete(item.getHandle(), 0);
            }
        }

        if (wi.getType() == SUBSCRIBE_REQUEST)
        {
            SubscribeRequestWorkItem item = (SubscribeRequestWorkItem)wi;
            SubscriptionParams params = item.getSubscriptionParams();
            Handle handle = item.getHandle();

            System.out.println("Subscribe Request User ID = " + params.getUserId());

            try
            {
                Subscription subscription = new Subscription(this, params);
                _subscriptions.put(subscription.getSubscriptionId(), subscription);
                _timer.schedule(subscription, 0, params.getPublishInterval());

                if (subscription == null)
                {
System.out.println("Requested Subscription has already expired or been cancelled");
                    QmfData error = new QmfData();
                    error.setValue("error_text", "Requested Subscription has already expired or been cancelled");
                    _agent.subscriptionResponse(handle, subscription.getConsoleHandle(), null, 0, 0, error);
                }
                else
                {
                    _agent.subscriptionResponse(handle, subscription.getConsoleHandle(), subscription.getSubscriptionId(),
                                               subscription.getDuration(), subscription.getInterval(), null);
                }
            }
            catch (QmfException qmfe)
            {
                _agent.raiseException(handle, "Subscribe Request failed, invalid Query: " + qmfe.getMessage());
            }
        }

        if (wi.getType() == RESUBSCRIBE_REQUEST)
        {
            ResubscribeRequestWorkItem item = (ResubscribeRequestWorkItem)wi;
            ResubscribeParams params = item.getResubscribeParams();
            Handle handle = item.getHandle();

            System.out.println("Resubscribe Request User ID = " + params.getUserId());

            String subscriptionId = params.getSubscriptionId();
            Subscription subscription = _subscriptions.get(subscriptionId);
            if (subscription != null)
            {
                subscription.refresh(params);
                _agent.subscriptionResponse(handle, subscription.getConsoleHandle(), subscription.getSubscriptionId(),
                                           subscription.getDuration(), subscription.getInterval(), null);
            }
            else
            {
System.out.println("Requested Subscription has already expired or been cancelled");
                QmfData error = new QmfData();
                error.setValue("error_text", "Requested Subscription has already expired or been cancelled");
                _agent.subscriptionResponse(handle, subscription.getConsoleHandle(), null, 0, 0, error);
            }
        }

        if (wi.getType() == UNSUBSCRIBE_REQUEST)
View Full Code Here

            throw new QmfException("QmfCallback listener must be either a Notifier or QmfEventListener");
        }

        if (options != null)
        { // We wrap the Map in a QmfData object to avoid potential class cast issues with the parsed options
            QmfData optMap = new QmfData(new AddressParser(options).map());
            if (optMap.hasValue("replyTimeout"))
            {
                _replyTimeout = (int)optMap.getLongValue("replyTimeout");
            }

            if (optMap.hasValue("agentTimeout"))
            {
                _agentTimeout = (int)optMap.getLongValue("agentTimeout");
            }

            if (optMap.hasValue("subscriptionDuration"))
            {
                _subscriptionDuration = (int)optMap.getLongValue("subscriptionDuration");
            }
        }
    }
View Full Code Here

        long timeout = _replyTimeout;
        String replyHandle = null;

        if (options != null)
        { // We wrap the Map in a QmfData object to avoid potential class cast issues with the parsed options
            QmfData optMap = new QmfData(new AddressParser(options).map());
            if (optMap.hasValue("lifetime"))
            {
                lifetime = optMap.getLongValue("lifetime");
            }

            if (optMap.hasValue("publishInterval"))
            { // Multiply publishInterval by 1000 because the QMF2 protocol spec says interval is
              // "The request time (in milliseconds) between periodic updates of data in this subscription"
                publishInterval = 1000*optMap.getLongValue("publishInterval");
            }

            if (optMap.hasValue("timeout"))
            {
                timeout = optMap.getLongValue("timeout");
            }

            if (optMap.hasValue("replyHandle"))
            {
                replyHandle = optMap.getStringValue("replyHandle");
            }
        }

        try
        {
View Full Code Here

        long timeout = _replyTimeout;
        String replyHandle = null;

        if (options != null)
        { // We wrap the Map in a QmfData object to avoid potential class cast issues with the parsed options
            QmfData optMap = new QmfData(new AddressParser(options).map());
            if (optMap.hasValue("lifetime"))
            {
                lifetime = optMap.getLongValue("lifetime");
            }

            if (optMap.hasValue("timeout"))
            {
                timeout = optMap.getLongValue("timeout");
            }

            if (optMap.hasValue("replyHandle"))
            {
                replyHandle = optMap.getStringValue("replyHandle");
            }
        }

        try
        {
View Full Code Here

TOP

Related Classes of org.apache.qpid.qmf2.common.QmfData

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.