org.apache.airavata.wsmg.client.WidgetStub Maven / Gradle / Ivy
The newest version!
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
package org.apache.airavata.wsmg.client;
import org.apache.airavata.wsmg.commons.WsmgCommonConstants;
import org.apache.airavata.wsmg.commons.NameSpaceConstants;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.util.UUIDGenerator;
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPHeaderBlock;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.ServiceClient;
/**
* This stub is NOT multi-thread safe!
*/
public class WidgetStub extends WsrfResourceStub {
private final static OMFactory factory = OMAbstractFactory.getOMFactory();
private final static SOAPFactory soapfactory = OMAbstractFactory.getSOAP11Factory();
public WidgetStub(EndpointReference widgetEpr, long timeout) {
super(widgetEpr, timeout);
}
public void generateNotification() throws AxisFault {
OMElement message = factory.createOMElement("generateNotification", NameSpaceConstants.WIDGET_NS);
ServiceClient client = createServiceClient(message);
client.sendReceive(message);
client.cleanupTransport();
}
private ServiceClient createServiceClient(OMElement message) throws AxisFault {
ServiceClient client = new ServiceClient();
String uuid = UUIDGenerator.getUUID();
if (client.getAxisConfiguration().getModule(WsmgCommonConstants.AXIS_MODULE_NAME_ADDRESSING) != null) {
client.engageModule(WsmgCommonConstants.AXIS_MODULE_NAME_ADDRESSING);
} else {
SOAPHeaderBlock msgId = soapfactory.createSOAPHeaderBlock("MessageID", NameSpaceConstants.WSA_NS);
msgId.setText(uuid);
SOAPHeaderBlock to = soapfactory.createSOAPHeaderBlock("To", NameSpaceConstants.WSA_NS);
to.setText(opts.getTo().getAddress());
SOAPHeaderBlock action = soapfactory.createSOAPHeaderBlock("Action", NameSpaceConstants.WSA_NS);
action.setText(message.getNamespace().getNamespaceURI() + "/" + message.getLocalName());
client.addHeader(action);
client.addHeader(msgId);
client.addHeader(to);
}
opts.setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, Boolean.FALSE);
opts.setMessageId(uuid);
opts.setAction(message.getNamespace().getNamespaceURI() + "/generateEvent");
opts.setTimeOutInMilliSeconds(getTimeoutInMilliSeconds());
client.setOptions(opts);
return client;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy