/* * #%L * P6Spy * %% * Copyright (C) 2013 P6Spy * %% * 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. * #L% */ package com.p6spy.engine.test; import java.util.HashMap; import java.util.Map; import javax.management.StandardMBean; import javax.sql.XADataSource; import com.p6spy.engine.spy.P6ModuleManager; import com.p6spy.engine.spy.option.P6OptionsRepository; public class P6TestOptions extends StandardMBean implements P6TestLoadableOptions { public static final String PASSWORD2 = "password2"; public static final String USER2 = "user2"; public static final String URL2 = "url2"; public static final String PASSWORD = "password"; public static final String USER = "user"; public static final String URL = "url"; public static final String XA_DATASOURCE = "xaDataSource"; private static final Map<String, String> defaults = new HashMap<String, String>(); private final P6OptionsRepository optionsRepository; public P6TestOptions(final P6OptionsRepository optionsRepository) { super(P6TestOptionsMBean.class, false); this.optionsRepository = optionsRepository; } @Override public void load(Map<String, String> properties) { setUrl(properties.get(URL)); setUser(properties.get(USER)); setPassword(properties.get(PASSWORD)); setUrl2(properties.get(URL2)); setUser2(properties.get(USER2)); setPassword2(properties.get(PASSWORD2)); setXaDataSource(properties.get(XA_DATASOURCE)); } /** * Utility method, to make accessing options from app less verbose. * * @return active instance of the {@link P6TestLoadableOptions} */ public static P6TestLoadableOptions getActiveInstance() { return P6ModuleManager.getInstance().getOptions(P6TestOptions.class); } @Override public Map<String, String> getDefaults() { return defaults; } @Override public String getUrl() { return optionsRepository.get(String.class, URL); } @Override public void setUrl(String url) { optionsRepository.set(String.class, URL, url); } @Override public String getUser() { return optionsRepository.get(String.class, USER); } @Override public void setUser(String user) { optionsRepository.set(String.class, USER, user); } @Override public String getPassword() { return optionsRepository.get(String.class, PASSWORD); } @Override public void setPassword(String password) { optionsRepository.set(String.class, PASSWORD, password); } @Override public String getUrl2() { return optionsRepository.get(String.class, URL2); } @Override public void setUrl2(String url2) { optionsRepository.set(String.class, URL2, url2); } @Override public String getUser2() { return optionsRepository.get(String.class, USER2); } @Override public void setUser2(String user2) { optionsRepository.set(String.class, USER2, user2); } @Override public String getPassword2() { return optionsRepository.get(String.class, PASSWORD2); } @Override public void setPassword2(String password2) { optionsRepository.set(String.class, PASSWORD2, password2); } @Override public void setXaDataSource(String xaDataSource) { optionsRepository.set(XADataSource.class, XA_DATASOURCE, xaDataSource); } @Override public XADataSource getXaDataSource() { return optionsRepository.get(XADataSource.class, XA_DATASOURCE); } }