| /* |
| * Copyright 1999-2004 The Apache Software Foundation. |
| * |
| * Licensed 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.savan.util; |
| |
| import java.io.File; |
| import java.io.FileReader; |
| import java.io.IOException; |
| import java.util.Calendar; |
| |
| import javax.xml.stream.XMLInputFactory; |
| import javax.xml.stream.XMLStreamException; |
| import javax.xml.stream.XMLStreamReader; |
| |
| import org.apache.axiom.om.OMAbstractFactory; |
| import org.apache.axiom.om.OMElement; |
| import org.apache.axiom.om.impl.llom.factory.OMXMLBuilderFactory; |
| import org.apache.axiom.soap.SOAPEnvelope; |
| import org.apache.axiom.soap.SOAPFactory; |
| import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder; |
| import org.apache.axis2.databinding.types.Duration; |
| import org.apache.axis2.description.AxisService; |
| import org.apache.axis2.description.Parameter; |
| import org.apache.savan.SavanConstants; |
| import org.apache.savan.storage.SubscriberStore; |
| import org.apache.xmlbeans.XmlObject; |
| |
| /** |
| * A common set of methods that may be used in various places of Savan. |
| */ |
| public class CommonUtil { |
| |
| public static Calendar addDurationToCalendar (Calendar calendar,Duration duration) { |
| calendar.add(Calendar.YEAR,duration.getYears()); |
| calendar.add(Calendar.MONTH,duration.getMonths()); |
| calendar.add(Calendar.DATE,duration.getDays()); |
| calendar.add(Calendar.HOUR,duration.getHours()); |
| calendar.add(Calendar.MINUTE,duration.getMinutes()); |
| calendar.add(Calendar.SECOND,(int) duration.getSeconds()); |
| |
| return calendar; |
| } |
| |
| /** |
| * Will be used by test cases to load XML files from test-resources as Envelopes |
| * SOAP 1.1 is assumed |
| * |
| * @param path |
| * @param name |
| * @return |
| */ |
| public static SOAPEnvelope getTestEnvelopeFromFile (String path, String name, SOAPFactory factory) throws IOException { |
| try { |
| String fullName = path + File.separator + name; |
| FileReader reader = new FileReader(fullName); |
| XMLStreamReader streamReader = XMLInputFactory.newInstance().createXMLStreamReader( |
| reader); |
| StAXSOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder( |
| factory, streamReader); |
| return builder.getSOAPEnvelope(); |
| } catch (XMLStreamException e) { |
| throw new RuntimeException(e); |
| } |
| } |
| |
| public static boolean isDuration (String timeStr) { |
| return timeStr.startsWith("p") || timeStr.startsWith("P") || timeStr.startsWith("-p") || timeStr.startsWith("-P"); |
| |
| } |
| |
| public static SubscriberStore getSubscriberStore (AxisService axisService) { |
| Parameter parameter = axisService.getParameter(SavanConstants.SUBSCRIBER_STORE); |
| if (parameter==null) |
| return null; |
| |
| return (SubscriberStore) parameter.getValue(); |
| } |
| |
| public static OMElement toOM(XmlObject element){ |
| org.apache.axiom.om.impl.builder.StAXOMBuilder builder = new org.apache.axiom.om.impl.builder.StAXOMBuilder |
| (org.apache.axiom.om.OMAbstractFactory.getOMFactory(),new org.apache.axis2.util.StreamWrapper(element.newXMLStreamReader())) ; |
| return builder.getDocumentElement(); |
| } |
| } |