/** * Copyright 2015 Nortal 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 com.nortal.jroad.util; import javax.xml.soap.SOAPElement; import javax.xml.soap.SOAPException; import javax.xml.soap.SOAPHeader; import javax.xml.soap.SOAPMessage; /** * Utility methods for deducing canonical service names and XML namespaces, * * @author Roman Tekhov * @author Dmitri Danilkin */ @Deprecated public class XTeeUtil { public static final String XTEE_NS_PREFIX = "xtee"; public static final String XTEE_NS_URI = "http://x-tee.riik.ee/xsd/xtee.xsd"; /** * Returns the input string with "/cgi-bin/consumer_proxy" concatenated to it. */ public static String toSecurityServerAddress(String aadress) { return new StringBuilder(aadress).append("/cgi-bin/consumer_proxy").toString(); } /** * Returns the input string with "/cgi-bin/uriproxy" concatenated to it. */ public static String toSecurityServerUri(String aadress) { return new StringBuilder(aadress).append("/cgi-bin/uriproxy").toString(); } /** * Returns namespace for database -- that is, returns namespace in the form * <code>http://producers.database.xtee.riik.ee/producer/database</code>. * * @param dbName database ("andmekogu") name * @return namespace for data services in a database, in the form * <code>http://producers.dbName.xtee.riik.ee/producer/dbName</code> */ public static String getDatabaseNamespace(String dbName) { return new StringBuilder("http://producers.").append(dbName).append(".xtee.riik.ee/producer/").append(dbName).toString(); } /** * Adds a X-Tee header element with given value and using correct namespace, element type is set to * <code>xsd:string</code>. * * @param header Header of the <code>SOAPMessage</code> * @param name Header element name * @param value Header element value */ public static void addHeaderElement(SOAPHeader header, String name, String value, String nsPrefix) throws SOAPException { SOAPElement element = header.addChildElement(name, nsPrefix); SOAPUtil.addTypeAttribute(element, "xsd:string"); if (value != null) { element.addTextNode(value); } } /** * Adds X-Tee namespace to a <code>SOAPMessage</code>. * * @param message Message to add the namespace to. */ public static void addXteeNamespace(SOAPMessage message, String nsPrefix, String nsUri) throws SOAPException { SOAPUtil.addNamespace(message, nsPrefix, nsUri); } }