/* * 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.activemq.artemis.jms.client; import java.security.AccessController; import java.security.PrivilegedAction; /** * <p>This class will provide default properties for constructors</p> * * <table border='1' summary=''> * <tr> <td>Name</td> <td>Default Value</td></tr> * <tr> <td>AMQ_HOST or org.apache.activemq.AMQ_HOST</td> <td>localhost</td></tr> * <tr><td>AMQ_PORT or org.apache.activemq.AMQ_PORT</td> <td>61616</td></tr> * <tr><td>BROKER_BIND_URL or org.apache.activemq.BROKER_BIND_URL</td> <td>tcp://${AMQ_HOST}:${AMQ_PORT}</td></tr> * <tr><td>AMQ_USER or org.apache.activemq.AMQ_USER</td> <td>null</td></tr> * <tr><td>AMQ_PASSWORD or org.apache.activemq.AMQ_PASSWORD</td> <td>null</td></tr> * </table> */ public class DefaultConnectionProperties { public static final String DEFAULT_BROKER_HOST; public static final int DEFAULT_BROKER_PORT; public static final String DEFAULT_BROKER_BIND_URL; public static final String DEFAULT_BROKER_URL; public static final String DEFAULT_USER; public static final String DEFAULT_PASSWORD; static String getProperty(final String defaultValue, final String... propertyNames) { return AccessController.doPrivileged(new PrivilegedAction<String>() { @Override public String run() { for (String name : propertyNames) { String property = System.getProperty(name); if (property != null && !property.isEmpty()) { return property; } } return defaultValue; } }); } static { String host = getProperty("localhost", "AMQ_HOST", "org.apache.activemq.AMQ_HOST"); String port = getProperty("61616", "AMQ_PORT", "org.apache.activemq.AMQ_PORT"); DEFAULT_BROKER_HOST = host; DEFAULT_BROKER_PORT = Integer.parseInt(port); String url = getProperty("tcp://" + host + ":" + port, "org.apache.activemq.BROKER_BIND_URL", "BROKER_BIND_URL"); DEFAULT_USER = getProperty(null, "AMQ_USER", "org.apache.activemq.AMQ_USER"); DEFAULT_PASSWORD = getProperty(null, "AMQ_PASSWORD", "org.apache.activemq.AMQ_PASSWORD"); if (DEFAULT_USER != null && DEFAULT_PASSWORD != null) { url += "?user=" + DEFAULT_USER + "&password=" + DEFAULT_PASSWORD; } DEFAULT_BROKER_BIND_URL = url; // TODO: improve this once we implement failover:// as ActiveMQ5 does DEFAULT_BROKER_URL = DEFAULT_BROKER_BIND_URL; } }