forked from community/device-mgt-core
commit
23938f5e0b
@ -1,241 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
* WSO2 Inc. 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.
|
||||
* 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.wso2.carbon.device.mgt.core.config;
|
||||
|
||||
import org.apache.commons.dbcp.BasicDataSource;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
|
||||
|
||||
import javax.naming.Context;
|
||||
import javax.naming.InitialContext;
|
||||
import javax.naming.NamingException;
|
||||
import javax.sql.DataSource;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public final class DeviceMgtDBUtil {
|
||||
|
||||
private static final Log log = LogFactory.getLog(DeviceMgtDBUtil.class);
|
||||
|
||||
private static volatile DataSource dataSource = null;
|
||||
private static final String DB_CHECK_SQL = DeviceManagementConstants.DataSourceProperties.DB_CHECK_QUERY;
|
||||
|
||||
private static final String DB_CONFIG = "Database.";
|
||||
private static final String DB_DRIVER = DB_CONFIG + "Driver";
|
||||
private static final String DB_URL = DB_CONFIG + "URL";
|
||||
private static final String DB_USER = DB_CONFIG + "Username";
|
||||
private static final String DB_PASSWORD = DB_CONFIG + "Password";
|
||||
|
||||
private static final String DATA_SOURCE_NAME = "DataSourceName";
|
||||
|
||||
/**
|
||||
* Initializes the data source
|
||||
*
|
||||
*/
|
||||
public static void initialize() throws Exception {
|
||||
if (dataSource != null) {
|
||||
return;
|
||||
}
|
||||
|
||||
synchronized (DeviceMgtDBUtil.class) {
|
||||
if (dataSource == null) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Initializing data source");
|
||||
}
|
||||
APIManagerConfiguration config = ServiceReferenceHolder.getInstance().
|
||||
getAPIManagerConfigurationService().getAPIManagerConfiguration();
|
||||
String dataSourceName = config.getFirstProperty(DATA_SOURCE_NAME);
|
||||
|
||||
if (dataSourceName != null) {
|
||||
try {
|
||||
Context ctx = new InitialContext();
|
||||
dataSource = (DataSource) ctx.lookup(dataSourceName);
|
||||
} catch (NamingException e) {
|
||||
throw new APIManagementException("Error while looking up the data " +
|
||||
"source: " + dataSourceName);
|
||||
}
|
||||
} else {
|
||||
DBConfiguration configuration = getDBConfig(config);
|
||||
String dbUrl = configuration.getDbUrl();
|
||||
String driver = configuration.getDriverName();
|
||||
String username = configuration.getUserName();
|
||||
String password = configuration.getPassword();
|
||||
if (dbUrl == null || driver == null || username == null || password == null) {
|
||||
log.warn("Required DB configuration parameters unspecified. So API Store and API Publisher " +
|
||||
"will not work as expected.");
|
||||
}
|
||||
|
||||
BasicDataSource basicDataSource = new BasicDataSource();
|
||||
basicDataSource.setDriverClassName(driver);
|
||||
basicDataSource.setUrl(dbUrl);
|
||||
basicDataSource.setUsername(username);
|
||||
basicDataSource.setPassword(password);
|
||||
dataSource = basicDataSource;
|
||||
}
|
||||
}
|
||||
setupAPIManagerDatabase();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the APIManager Database if not created already.
|
||||
*
|
||||
* @throws Exception if an error occurs while creating the APIManagerDatabase.
|
||||
*/
|
||||
private static void setupAPIManagerDatabase() throws Exception {
|
||||
|
||||
String value = System.getProperty("setup");
|
||||
if (value != null) {
|
||||
LocalDatabaseCreator databaseCreator = new LocalDatabaseCreator(dataSource);
|
||||
try {
|
||||
if (!databaseCreator.isDatabaseStructureCreated(DB_CHECK_SQL)) {
|
||||
databaseCreator.createRegistryDatabase();
|
||||
} else {
|
||||
log.info("APIManager database already exists. Not creating a new database.");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
String msg = "Error in creating the APIManager database";
|
||||
throw new Exception(msg, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility method to get a new database connection
|
||||
*
|
||||
* @return Connection
|
||||
* @throws java.sql.SQLException if failed to get Connection
|
||||
*/
|
||||
public static Connection getConnection() throws SQLException {
|
||||
if (dataSource != null) {
|
||||
return dataSource.getConnection();
|
||||
}
|
||||
throw new SQLException("Data source is not configured properly.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility method to close the connection streams.
|
||||
* @param preparedStatement PreparedStatement
|
||||
* @param connection Connection
|
||||
* @param resultSet ResultSet
|
||||
*/
|
||||
public static void closeAllConnections(PreparedStatement preparedStatement, Connection connection,
|
||||
ResultSet resultSet) {
|
||||
closeConnection(connection);
|
||||
closeResultSet(resultSet);
|
||||
closeStatement(preparedStatement);
|
||||
}
|
||||
|
||||
/**
|
||||
* Close Connection
|
||||
* @param dbConnection Connection
|
||||
*/
|
||||
private static void closeConnection(Connection dbConnection) {
|
||||
if (dbConnection != null) {
|
||||
try {
|
||||
dbConnection.close();
|
||||
} catch (SQLException e) {
|
||||
log.warn("Database error. Could not close database connection. Continuing with " +
|
||||
"others. - " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Close ResultSet
|
||||
* @param resultSet ResultSet
|
||||
*/
|
||||
private static void closeResultSet(ResultSet resultSet) {
|
||||
if (resultSet != null) {
|
||||
try {
|
||||
resultSet.close();
|
||||
} catch (SQLException e) {
|
||||
log.warn("Database error. Could not close ResultSet - " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Close PreparedStatement
|
||||
* @param preparedStatement PreparedStatement
|
||||
*/
|
||||
private static void closeStatement(PreparedStatement preparedStatement) {
|
||||
if (preparedStatement != null) {
|
||||
try {
|
||||
preparedStatement.close();
|
||||
} catch (SQLException e) {
|
||||
log.warn("Database error. Could not close PreparedStatement. Continuing with" +
|
||||
" others. - " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the DBConfiguration
|
||||
*
|
||||
* @param config APIManagerConfiguration containing the JDBC settings
|
||||
* @return DBConfiguration
|
||||
*/
|
||||
private static DBConfiguration getDBConfig(APIManagerConfiguration config) {
|
||||
DBConfiguration dbConfiguration = new DBConfiguration();
|
||||
dbConfiguration.setDbUrl(config.getFirstProperty(DB_URL));
|
||||
dbConfiguration.setDriverName(config.getFirstProperty(DB_DRIVER));
|
||||
dbConfiguration.setUserName(config.getFirstProperty(DB_USER));
|
||||
dbConfiguration.setPassword(config.getFirstProperty(DB_PASSWORD));
|
||||
return dbConfiguration;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function converts IS to String
|
||||
* Used for handling blobs
|
||||
* @param is
|
||||
* @return
|
||||
*/
|
||||
public static String getStringFromInputStream(InputStream is) {
|
||||
BufferedReader br = null;
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
String line;
|
||||
try {
|
||||
|
||||
br = new BufferedReader(new InputStreamReader(is));
|
||||
while ((line = br.readLine()) != null) {
|
||||
sb.append(line);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if (br != null) {
|
||||
try {
|
||||
br.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright (c) 2013, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. 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.wso2.carbon.device.mgt.core.config.datasource;
|
||||
|
||||
import javax.xml.bind.Marshaller;
|
||||
|
||||
public interface DSXMLConfig {
|
||||
|
||||
public Marshaller getDSMarshaller();
|
||||
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (c) 2005-2013, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. 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.wso2.carbon.device.mgt.core.config.datasource;
|
||||
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
/**
|
||||
* Class for holding data source configuration in rss-config.xml at parsing with JAXB
|
||||
*/
|
||||
@XmlRootElement(name = "DataSourceConfiguration")
|
||||
public class DataSourceConfig {
|
||||
|
||||
private JNDILookupDefinition jndiLookupDefintion;
|
||||
private RDBMSConfig rdbmsConfig;
|
||||
|
||||
@XmlElement(name = "JndiLookupDefinition", nillable = true)
|
||||
public JNDILookupDefinition getJndiLookupDefintion() {
|
||||
return jndiLookupDefintion;
|
||||
}
|
||||
|
||||
public void setJndiLookupDefintion(JNDILookupDefinition jndiLookupDefintion) {
|
||||
this.jndiLookupDefintion = jndiLookupDefintion;
|
||||
}
|
||||
|
||||
@XmlElement(name = "Definition", nillable = true)
|
||||
public RDBMSConfig getRdbmsConfiguration() {
|
||||
return rdbmsConfig;
|
||||
}
|
||||
|
||||
public void setRdbmsConfiguration(RDBMSConfig rdbmsConfig) {
|
||||
this.rdbmsConfig = rdbmsConfig;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Copyright (c) 2005-2013, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. 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.wso2.carbon.device.mgt.core.config.datasource;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAttribute;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlElementWrapper;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import javax.xml.bind.annotation.XmlValue;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Class for hold JndiLookupDefinition of rss-manager.xml at parsing with JAXB
|
||||
*/
|
||||
@XmlRootElement(name = "JndiLookupDefinition")
|
||||
public class JNDILookupDefinition {
|
||||
|
||||
private String jndiName;
|
||||
private List<JNDIProperty> jndiProperties;
|
||||
|
||||
@XmlElement(name = "Name", nillable = false)
|
||||
public String getJndiName() {
|
||||
return jndiName;
|
||||
}
|
||||
|
||||
public void setJndiName(String jndiName) {
|
||||
this.jndiName = jndiName;
|
||||
}
|
||||
|
||||
@XmlElementWrapper(name = "Environment", nillable = false)
|
||||
@XmlElement(name = "Property", nillable = false)
|
||||
public List<JNDIProperty> getJndiProperties() {
|
||||
return jndiProperties;
|
||||
}
|
||||
|
||||
public void setJndiProperties(List<JNDIProperty> jndiProperties) {
|
||||
this.jndiProperties = jndiProperties;
|
||||
}
|
||||
|
||||
@XmlRootElement(name = "Property")
|
||||
public static class JNDIProperty {
|
||||
|
||||
private String name;
|
||||
|
||||
private String value;
|
||||
|
||||
@XmlAttribute(name = "Name")
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@XmlValue
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,420 @@
|
||||
/*
|
||||
* Copyright (c) 2013, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. 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.wso2.carbon.device.mgt.core.config.datasource;
|
||||
|
||||
import javax.xml.bind.Marshaller;
|
||||
import javax.xml.bind.annotation.XmlAttribute;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlElementWrapper;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import javax.xml.bind.annotation.XmlValue;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Class for hold data source configuration properties at parsing with JAXB
|
||||
*/
|
||||
@XmlRootElement(name = "Definition")
|
||||
public class RDBMSConfig implements DSXMLConfig {
|
||||
|
||||
private String url;
|
||||
private String driverClassName;
|
||||
private String username;
|
||||
private String password;
|
||||
private Boolean defaultAutoCommit;
|
||||
private Boolean defaultReadOnly;
|
||||
private String defaultTransactionIsolation;
|
||||
private String defaultCatalog;
|
||||
private Integer maxActive;
|
||||
private Integer maxIdle;
|
||||
private Integer minIdle;
|
||||
private Integer initialSize;
|
||||
private Integer maxWait;
|
||||
private Boolean testOnBorrow;
|
||||
private Boolean testOnReturn;
|
||||
private Boolean testWhileIdle;
|
||||
private String validationQuery;
|
||||
private String validatorClassName;
|
||||
private Integer timeBetweenEvictionRunsMillis;
|
||||
private Integer numTestsPerEvictionRun;
|
||||
private Integer minEvictableIdleTimeMillis;
|
||||
private Boolean accessToUnderlyingConnectionAllowed;
|
||||
private Boolean removeAbandoned;
|
||||
private Integer removeAbandonedTimeout;
|
||||
private Boolean logAbandoned;
|
||||
private String connectionProperties;
|
||||
private String initSQL;
|
||||
private String jdbcInterceptors;
|
||||
private Long validationInterval;
|
||||
private Boolean jmxEnabled;
|
||||
private Boolean fairQueue;
|
||||
private Integer abandonWhenPercentageFull;
|
||||
private Long maxAge;
|
||||
private Boolean useEquals;
|
||||
private Integer suspectTimeout;
|
||||
private Boolean alternateUsernameAllowed;
|
||||
private String dataSourceClassName;
|
||||
private List<DataSourceProperty> dataSourceProps;
|
||||
|
||||
public RDBMSConfig() {
|
||||
}
|
||||
|
||||
|
||||
@XmlElement(name = "Url", nillable = false)
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
@XmlElement(name = "DriverClassName", nillable = false)
|
||||
public String getDriverClassName() {
|
||||
return driverClassName;
|
||||
}
|
||||
|
||||
public void setDriverClassName(String driverClassName) {
|
||||
this.driverClassName = driverClassName;
|
||||
}
|
||||
|
||||
@XmlElement(name = "Username", nillable = false)
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
@XmlElement(name = "Password", nillable = false)
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public Boolean getDefaultAutoCommit() {
|
||||
return defaultAutoCommit;
|
||||
}
|
||||
|
||||
public void setDefaultAutoCommit(Boolean defaultAutoCommit) {
|
||||
this.defaultAutoCommit = defaultAutoCommit;
|
||||
}
|
||||
|
||||
public Boolean getDefaultReadOnly() {
|
||||
return defaultReadOnly;
|
||||
}
|
||||
|
||||
public void setDefaultReadOnly(Boolean defaultReadOnly) {
|
||||
this.defaultReadOnly = defaultReadOnly;
|
||||
}
|
||||
|
||||
public String getDefaultTransactionIsolation() {
|
||||
return defaultTransactionIsolation;
|
||||
}
|
||||
|
||||
public void setDefaultTransactionIsolation(String defaultTransactionIsolation) {
|
||||
this.defaultTransactionIsolation = defaultTransactionIsolation;
|
||||
}
|
||||
|
||||
public String getDefaultCatalog() {
|
||||
return defaultCatalog;
|
||||
}
|
||||
|
||||
public void setDefaultCatalog(String defaultCatalog) {
|
||||
this.defaultCatalog = defaultCatalog;
|
||||
}
|
||||
|
||||
public Integer getMaxActive() {
|
||||
return maxActive;
|
||||
}
|
||||
|
||||
public void setMaxActive(Integer maxActive) {
|
||||
this.maxActive = maxActive;
|
||||
}
|
||||
|
||||
public Integer getMaxIdle() {
|
||||
return maxIdle;
|
||||
}
|
||||
|
||||
public void setMaxIdle(Integer maxIdle) {
|
||||
this.maxIdle = maxIdle;
|
||||
}
|
||||
|
||||
public Integer getMinIdle() {
|
||||
return minIdle;
|
||||
}
|
||||
|
||||
public void setMinIdle(Integer minIdle) {
|
||||
this.minIdle = minIdle;
|
||||
}
|
||||
|
||||
public Integer getInitialSize() {
|
||||
return initialSize;
|
||||
}
|
||||
|
||||
public void setInitialSize(Integer initialSize) {
|
||||
this.initialSize = initialSize;
|
||||
}
|
||||
|
||||
public Integer getMaxWait() {
|
||||
return maxWait;
|
||||
}
|
||||
|
||||
public void setMaxWait(Integer maxWait) {
|
||||
this.maxWait = maxWait;
|
||||
}
|
||||
|
||||
public Boolean getTestOnBorrow() {
|
||||
return testOnBorrow;
|
||||
}
|
||||
|
||||
public void setTestOnBorrow(Boolean testOnBorrow) {
|
||||
this.testOnBorrow = testOnBorrow;
|
||||
}
|
||||
|
||||
public Boolean getTestOnReturn() {
|
||||
return testOnReturn;
|
||||
}
|
||||
|
||||
public void setTestOnReturn(Boolean testOnReturn) {
|
||||
this.testOnReturn = testOnReturn;
|
||||
}
|
||||
|
||||
public Boolean getTestWhileIdle() {
|
||||
return testWhileIdle;
|
||||
}
|
||||
|
||||
public void setTestWhileIdle(Boolean testWhileIdle) {
|
||||
this.testWhileIdle = testWhileIdle;
|
||||
}
|
||||
|
||||
public String getValidationQuery() {
|
||||
return validationQuery;
|
||||
}
|
||||
|
||||
public void setValidationQuery(String validationQuery) {
|
||||
this.validationQuery = validationQuery;
|
||||
}
|
||||
|
||||
public String getValidatorClassName() {
|
||||
return validatorClassName;
|
||||
}
|
||||
|
||||
public void setValidatorClassName(String validatorClassName) {
|
||||
this.validatorClassName = validatorClassName;
|
||||
}
|
||||
|
||||
public Integer getTimeBetweenEvictionRunsMillis() {
|
||||
return timeBetweenEvictionRunsMillis;
|
||||
}
|
||||
|
||||
public void setTimeBetweenEvictionRunsMillis(Integer timeBetweenEvictionRunsMillis) {
|
||||
this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
|
||||
}
|
||||
|
||||
public Integer getNumTestsPerEvictionRun() {
|
||||
return numTestsPerEvictionRun;
|
||||
}
|
||||
|
||||
public void setNumTestsPerEvictionRun(Integer numTestsPerEvictionRun) {
|
||||
this.numTestsPerEvictionRun = numTestsPerEvictionRun;
|
||||
}
|
||||
|
||||
public Integer getMinEvictableIdleTimeMillis() {
|
||||
return minEvictableIdleTimeMillis;
|
||||
}
|
||||
|
||||
public void setMinEvictableIdleTimeMillis(Integer minEvictableIdleTimeMillis) {
|
||||
this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
|
||||
}
|
||||
|
||||
public Boolean getAccessToUnderlyingConnectionAllowed() {
|
||||
return accessToUnderlyingConnectionAllowed;
|
||||
}
|
||||
|
||||
public void setAccessToUnderlyingConnectionAllowed(Boolean accessToUnderlyingConnectionAllowed) {
|
||||
this.accessToUnderlyingConnectionAllowed = accessToUnderlyingConnectionAllowed;
|
||||
}
|
||||
|
||||
public Boolean getRemoveAbandoned() {
|
||||
return removeAbandoned;
|
||||
}
|
||||
|
||||
public void setRemoveAbandoned(Boolean removeAbandoned) {
|
||||
this.removeAbandoned = removeAbandoned;
|
||||
}
|
||||
|
||||
public Integer getRemoveAbandonedTimeout() {
|
||||
return removeAbandonedTimeout;
|
||||
}
|
||||
|
||||
public void setRemoveAbandonedTimeout(Integer removeAbandonedTimeout) {
|
||||
this.removeAbandonedTimeout = removeAbandonedTimeout;
|
||||
}
|
||||
|
||||
public Boolean getLogAbandoned() {
|
||||
return logAbandoned;
|
||||
}
|
||||
|
||||
public void setLogAbandoned(Boolean logAbandoned) {
|
||||
this.logAbandoned = logAbandoned;
|
||||
}
|
||||
|
||||
public String getConnectionProperties() {
|
||||
return connectionProperties;
|
||||
}
|
||||
|
||||
public void setConnectionProperties(String connectionProperties) {
|
||||
this.connectionProperties = connectionProperties;
|
||||
}
|
||||
|
||||
public String getInitSQL() {
|
||||
return initSQL;
|
||||
}
|
||||
|
||||
public void setInitSQL(String initSQL) {
|
||||
this.initSQL = initSQL;
|
||||
}
|
||||
|
||||
public String getJdbcInterceptors() {
|
||||
return jdbcInterceptors;
|
||||
}
|
||||
|
||||
public void setJdbcInterceptors(String jdbcInterceptors) {
|
||||
this.jdbcInterceptors = jdbcInterceptors;
|
||||
}
|
||||
|
||||
public Long getValidationInterval() {
|
||||
return validationInterval;
|
||||
}
|
||||
|
||||
public void setValidationInterval(Long validationInterval) {
|
||||
this.validationInterval = validationInterval;
|
||||
}
|
||||
|
||||
public Boolean getJmxEnabled() {
|
||||
return jmxEnabled;
|
||||
}
|
||||
|
||||
public void setJmxEnabled(Boolean jmxEnabled) {
|
||||
this.jmxEnabled = jmxEnabled;
|
||||
}
|
||||
|
||||
public Boolean getFairQueue() {
|
||||
return fairQueue;
|
||||
}
|
||||
|
||||
public void setFairQueue(Boolean fairQueue) {
|
||||
this.fairQueue = fairQueue;
|
||||
}
|
||||
|
||||
public Integer getAbandonWhenPercentageFull() {
|
||||
return abandonWhenPercentageFull;
|
||||
}
|
||||
|
||||
public void setAbandonWhenPercentageFull(Integer abandonWhenPercentageFull) {
|
||||
this.abandonWhenPercentageFull = abandonWhenPercentageFull;
|
||||
}
|
||||
|
||||
public Long getMaxAge() {
|
||||
return maxAge;
|
||||
}
|
||||
|
||||
public void setMaxAge(Long maxAge) {
|
||||
this.maxAge = maxAge;
|
||||
}
|
||||
|
||||
public Boolean getUseEquals() {
|
||||
return useEquals;
|
||||
}
|
||||
|
||||
public void setUseEquals(Boolean useEquals) {
|
||||
this.useEquals = useEquals;
|
||||
}
|
||||
|
||||
public Integer getSuspectTimeout() {
|
||||
return suspectTimeout;
|
||||
}
|
||||
|
||||
public void setSuspectTimeout(Integer suspectTimeout) {
|
||||
this.suspectTimeout = suspectTimeout;
|
||||
}
|
||||
|
||||
public Boolean getAlternateUsernameAllowed() {
|
||||
return alternateUsernameAllowed;
|
||||
}
|
||||
|
||||
public void setAlternateUsernameAllowed(Boolean alternateUsernameAllowed) {
|
||||
this.alternateUsernameAllowed = alternateUsernameAllowed;
|
||||
}
|
||||
|
||||
@XmlElement(name = "DataSourceClassName", nillable = false)
|
||||
public String getDataSourceClassName() {
|
||||
return dataSourceClassName;
|
||||
}
|
||||
|
||||
public void setDataSourceClassName(String dataSourceClassName) {
|
||||
this.dataSourceClassName = dataSourceClassName;
|
||||
}
|
||||
|
||||
@XmlElementWrapper(name = "DataSourceProps", nillable = false)
|
||||
@XmlElement(name = "Property", nillable = false)
|
||||
public List<DataSourceProperty> getDataSourceProps() {
|
||||
return dataSourceProps;
|
||||
}
|
||||
|
||||
public void setDataSourceProps(List<DataSourceProperty> dataSourceProps) {
|
||||
this.dataSourceProps = dataSourceProps;
|
||||
}
|
||||
|
||||
public Marshaller getDSMarshaller() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@XmlRootElement(name = "Property")
|
||||
public static class DataSourceProperty {
|
||||
|
||||
private String name;
|
||||
|
||||
private String value;
|
||||
|
||||
@XmlAttribute(name = "name")
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@XmlValue
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,124 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (c) WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ 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.
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon</groupId>
|
||||
<artifactId>device-mgt-feature</artifactId>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.carbon.device.mgt.server.feature</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
<name>WSO2 Carbon - Device Management Server Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
<description>This feature contains the core bundles required for Back-end Devvice Management functionality
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.osgi</groupId>
|
||||
<artifactId>org.eclipse.osgi</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.equinox</groupId>
|
||||
<artifactId>org.eclipse.equinox.common</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon</groupId>
|
||||
<artifactId>org.wso2.carbon.logging</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon</groupId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.wso2.carbon</groupId>
|
||||
<artifactId>org.wso2.carbon.device.mgt.common</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>2.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-resources</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>src/main/resources</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>resources</directory>
|
||||
<includes>
|
||||
<include>build.properties</include>
|
||||
<include>p2.inf</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.wso2.maven</groupId>
|
||||
<artifactId>carbon-p2-plugin</artifactId>
|
||||
<version>${carbon.p2.plugin.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>p2-feature-generation</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>p2-feature-gen</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<id>org.wso2.carbon.device.mgt.server</id>
|
||||
<propertiesFile>../../../features/etc/feature.properties</propertiesFile>
|
||||
<adviceFile>
|
||||
<properties>
|
||||
<propertyDef>org.wso2.carbon.p2.category.type:server</propertyDef>
|
||||
<propertyDef>org.eclipse.equinox.p2.type.group:false</propertyDef>
|
||||
</properties>
|
||||
</adviceFile>
|
||||
<bundles>
|
||||
<bundleDef>org.wso2.carbon:org.wso2.carbon.device.mgt.core:${project.version}
|
||||
</bundleDef>
|
||||
<bundleDef>org.wso2.carbon:org.wso2.carbon.device.mgt.common:${project.version}
|
||||
</bundleDef>
|
||||
</bundles>
|
||||
<importFeatures>
|
||||
<importFeatureDef>org.wso2.carbon.core.server:${carbon.platform.version}
|
||||
</importFeatureDef>
|
||||
</importFeatures>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
@ -0,0 +1 @@
|
||||
custom = true
|
@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. 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.
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<parent>
|
||||
<groupId>org.wso2.carbon</groupId>
|
||||
<artifactId>wso2cdm-parent</artifactId>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.carbon</groupId>
|
||||
<artifactId>device-mgt-feature</artifactId>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>WSO2 Carbon - Device Management Feature</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
<modules>
|
||||
<module>org.wso2.carbon.device.mgt.server.feature</module>
|
||||
</modules>
|
||||
|
||||
</project>
|
Loading…
Reference in new issue