⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 properties.java

📁 bpel执行引擎用来执行bpel业务流程
💻 JAVA
字号:
/* * 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.ode.axis2;import org.apache.axis2.Constants;import org.apache.axis2.client.Options;import org.apache.axis2.transport.http.HTTPConstants;import org.apache.axis2.transport.http.HttpTransportProperties;import org.apache.commons.httpclient.Header;import org.apache.commons.httpclient.HttpVersion;import org.apache.commons.httpclient.ProtocolException;import org.apache.commons.httpclient.params.DefaultHttpParams;import org.apache.commons.httpclient.params.HttpConnectionParams;import org.apache.commons.httpclient.params.HttpMethodParams;import org.apache.commons.httpclient.params.HttpParams;import org.apache.commons.httpclient.params.HttpClientParams;import org.apache.commons.httpclient.params.HostParams;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import java.util.ArrayList;import java.util.Map;import java.util.List;import java.util.Collection;/** * @author <a href="mailto:midon@intalio.com">Alexis Midon</a> */public class Properties {    /**     * Property used to define how long (in miiliseconds) the message will wait for a response. Default value is {@link #DEFAULT_MEX_TIMEOUT}     */    public static final String PROP_MEX_TIMEOUT = "mex.timeout";    // its default value    public static final int DEFAULT_MEX_TIMEOUT = 2 * 60 * 1000;    public static final String PROP_HTTP_CONNECTION_TIMEOUT = HttpConnectionParams.CONNECTION_TIMEOUT;    public static final String PROP_HTTP_SOCKET_TIMEOUT = HttpMethodParams.SO_TIMEOUT;    public static final String PROP_HTTP_PROTOCOL_VERSION = HttpMethodParams.PROTOCOL_VERSION;    public static final String PROP_HTTP_HEADER_PREFIX = "http.default-headers.";    public static final String PROP_HTTP_PROXY_PREFIX = "http.proxy.";    public static final String PROP_HTTP_PROXY_HOST = PROP_HTTP_PROXY_PREFIX + "host";    public static final String PROP_HTTP_PROXY_PORT = PROP_HTTP_PROXY_PREFIX + "port";    public static final String PROP_HTTP_PROXY_DOMAIN = PROP_HTTP_PROXY_PREFIX + "domain";    public static final String PROP_HTTP_PROXY_USER = PROP_HTTP_PROXY_PREFIX + "user";    public static final String PROP_HTTP_PROXY_PASSWORD = PROP_HTTP_PROXY_PREFIX + "password";    // Httpclient specific    public static final String PROP_HTTP_MAX_REDIRECTS = HttpClientParams.MAX_REDIRECTS;    // Axis2-specific    public static final String PROP_HTTP_PROTOCOL_ENCODING = "http.protocol.encoding";    public static final String PROP_HTTP_REQUEST_CHUNK = "http.request.chunk";    public static final String PROP_HTTP_REQUEST_GZIP = "http.request.gzip";    public static final String PROP_HTTP_ACCEPT_GZIP = "http.accept.gzip";    protected static final Log log = LogFactory.getLog(Properties.class);    public static Object[] getProxyAndHeaders(Map<String, String> properties) {        ArrayList<Header> headers = null; // /!\ Axis2 requires an ArrayList (not a List implementation)        HttpTransportProperties.ProxyProperties proxy = null;        for (Map.Entry<String, String> e : properties.entrySet()) {            final String k = e.getKey();            final String v = e.getValue();            if (k.startsWith(PROP_HTTP_HEADER_PREFIX)) {                if (headers == null) headers = new ArrayList<Header>();                // extract the header name                String name = k.substring(PROP_HTTP_HEADER_PREFIX.length());                headers.add(new Header(name, v));            } else if (k.startsWith(PROP_HTTP_PROXY_PREFIX)) {                if (proxy == null) proxy = new HttpTransportProperties.ProxyProperties();                if (PROP_HTTP_PROXY_HOST.equals(k)) proxy.setProxyName(v);                else if (PROP_HTTP_PROXY_PORT.equals(k)) proxy.setProxyPort(Integer.parseInt(v));                else if (PROP_HTTP_PROXY_DOMAIN.equals(k)) proxy.setDomain(v);                else if (PROP_HTTP_PROXY_USER.equals(k)) proxy.setUserName(v);                else if (PROP_HTTP_PROXY_PASSWORD.equals(k)) proxy.setPassWord(v);                else if (log.isWarnEnabled())                    log.warn("Unknown proxy properties [" + k + "]. " + PROP_HTTP_PROXY_PREFIX + " is a refix reserved for proxy properties.");            }        }        if (proxy != null) {            String host = proxy.getProxyHostName();            if (host == null || host.length() == 0) {                // disable proxy if the host is not null                proxy=null;                if(log.isDebugEnabled()) log.debug("Proxy host is null. Proxy will not be taken into account.");            }        }        return new Object[]{proxy, headers};    }    public static class Axis2 {        public static Options translate(Map<String, String> properties) {            return translate(properties, new Options());        }        public static Options translate(Map<String, String> properties, Options options) {            if (log.isDebugEnabled()) log.debug("Translating IL Properties for Axis2");            if (properties.isEmpty()) return options;            if (properties.containsKey(PROP_HTTP_CONNECTION_TIMEOUT)) {                final String value = properties.get(PROP_HTTP_CONNECTION_TIMEOUT);                try {                    options.setProperty(HTTPConstants.CONNECTION_TIMEOUT, Integer.valueOf(value));                } catch (NumberFormatException e) {                    if (log.isWarnEnabled())                        log.warn("Mal-formatted Property: [" + Properties.PROP_HTTP_CONNECTION_TIMEOUT + "=" + value + "] Property will be skipped.");                }            }            if (properties.containsKey(PROP_HTTP_SOCKET_TIMEOUT)) {                final String value = properties.get(PROP_HTTP_SOCKET_TIMEOUT);                try {                    options.setProperty(HTTPConstants.SO_TIMEOUT, Integer.valueOf(value));                } catch (NumberFormatException e) {                    if (log.isWarnEnabled())                        log.warn("Mal-formatted Property: [" + Properties.PROP_HTTP_SOCKET_TIMEOUT + "=" + value + "] Property will be skipped.");                }            }            if (properties.containsKey(PROP_HTTP_PROTOCOL_ENCODING)) {                options.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING, properties.get(PROP_HTTP_PROTOCOL_ENCODING));            }            if (properties.containsKey(PROP_HTTP_PROTOCOL_VERSION)) {                options.setProperty(HTTPConstants.HTTP_PROTOCOL_VERSION, properties.get(PROP_HTTP_PROTOCOL_VERSION));            }            if (properties.containsKey(PROP_HTTP_REQUEST_CHUNK)) {                options.setProperty(HTTPConstants.CHUNKED, properties.get(PROP_HTTP_REQUEST_CHUNK));            }            if (properties.containsKey(PROP_HTTP_REQUEST_GZIP)) {                options.setProperty(HTTPConstants.MC_GZIP_REQUEST, properties.get(PROP_HTTP_REQUEST_GZIP));            }            if (properties.containsKey(PROP_HTTP_ACCEPT_GZIP)) {                options.setProperty(HTTPConstants.MC_ACCEPT_GZIP, properties.get(PROP_HTTP_ACCEPT_GZIP));            }            if (properties.containsKey(PROP_HTTP_MAX_REDIRECTS)) {                if (log.isWarnEnabled()) log.warn("Property Not Supported: " + PROP_HTTP_MAX_REDIRECTS);            }            // iterate through the properties to get Headers & Proxy information            Object[] o = getProxyAndHeaders(properties);            HttpTransportProperties.ProxyProperties proxy = (HttpTransportProperties.ProxyProperties) o[0];            ArrayList<Header> headers = (ArrayList<Header>) o[1]; // /!\ Axis2 requires an ArrayList (not a List implementation)            if (headers != null && !headers.isEmpty()) options.setProperty(HTTPConstants.HTTP_HEADERS, headers);            if (proxy != null) options.setProperty(HTTPConstants.PROXY, proxy);            return options;        }    }    public static class HttpClient {        public static HttpParams translate(Map<String, String> properties) {            return translate(properties, new DefaultHttpParams());        }        public static HttpParams translate(Map<String, String> properties, HttpParams p) {            if (log.isDebugEnabled()) log.debug("Translating IL Properties for HttpClient. Properties size="+properties.size());            if (properties.isEmpty()) return p;            // initialize the collection of headers            p.setParameter(HostParams.DEFAULT_HEADERS, new ArrayList());            if (properties.containsKey(PROP_HTTP_CONNECTION_TIMEOUT)) {                final String value = properties.get(PROP_HTTP_CONNECTION_TIMEOUT);                try {                    p.setParameter(HttpConnectionParams.CONNECTION_TIMEOUT, Integer.valueOf(value));                } catch (NumberFormatException e) {                    if (log.isWarnEnabled())                        log.warn("Mal-formatted Property: [" + Properties.PROP_HTTP_CONNECTION_TIMEOUT + "=" + value + "] Property will be skipped.");                }            }            if (properties.containsKey(PROP_HTTP_SOCKET_TIMEOUT)) {                final String value = properties.get(PROP_HTTP_SOCKET_TIMEOUT);                try {                    p.setParameter(HttpMethodParams.SO_TIMEOUT, Integer.valueOf(value));                } catch (NumberFormatException e) {                    if (log.isWarnEnabled())                        log.warn("Mal-formatted Property: [" + Properties.PROP_HTTP_SOCKET_TIMEOUT + "=" + value + "] Property will be skipped.");                }            }            if (properties.containsKey(PROP_HTTP_PROTOCOL_ENCODING)) {                p.setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, properties.get(PROP_HTTP_PROTOCOL_ENCODING));            }            if (properties.containsKey(PROP_HTTP_PROTOCOL_VERSION)) {                try {                    p.setParameter(HttpMethodParams.PROTOCOL_VERSION, HttpVersion.parse(properties.get(PROP_HTTP_PROTOCOL_VERSION)));                } catch (ProtocolException e) {                    if (log.isWarnEnabled())                        log.warn("Mal-formatted Property: [" + PROP_HTTP_PROTOCOL_VERSION + "]", e);                }            }            if (properties.containsKey(PROP_HTTP_REQUEST_CHUNK)) {                // see org.apache.commons.httpclient.methods.EntityEnclosingMethod.setContentChunked()                p.setBooleanParameter(PROP_HTTP_REQUEST_CHUNK, Boolean.parseBoolean(properties.get(PROP_HTTP_REQUEST_CHUNK)));            }            if (properties.containsKey(PROP_HTTP_REQUEST_GZIP)) {                if (log.isWarnEnabled()) log.warn("Property Not Supported: " + PROP_HTTP_REQUEST_GZIP);            }            if (Boolean.parseBoolean(properties.get(PROP_HTTP_ACCEPT_GZIP))) {                // append gzip to the list of accepted encoding                ((Collection) p.getParameter(HostParams.DEFAULT_HEADERS)).add(new Header("Accept-Encoding", "gzip"));            }            if (properties.containsKey(PROP_HTTP_MAX_REDIRECTS)) {                final String value = properties.get(PROP_HTTP_MAX_REDIRECTS);                try {                    p.setParameter(HttpClientParams.MAX_REDIRECTS, Integer.valueOf(value));                } catch (NumberFormatException e) {                    if (log.isWarnEnabled())                        log.warn("Mal-formatted Property: [" + Properties.PROP_HTTP_MAX_REDIRECTS + "=" + value + "] Property will be skipped.");                }            }            Object[] o = getProxyAndHeaders(properties);            HttpTransportProperties.ProxyProperties proxy = (HttpTransportProperties.ProxyProperties) o[0];            Collection headers = (Collection) o[1];            if (headers != null && !headers.isEmpty())                ((Collection) p.getParameter(HostParams.DEFAULT_HEADERS)).addAll(headers);            if (proxy != null) p.setParameter(PROP_HTTP_PROXY_PREFIX, proxy);            return p;        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -