public boolean isConflict(DataSourceDefinitionDescriptor other) { return (getName().equals(other.getName())) && !( DOLUtils.equals(getClassName(), other.getClassName()) && DOLUtils.equals(getServerName(), other.getServerName()) && getPortNumber() == other.getPortNumber() && DOLUtils.equals(getDatabaseName(), other.getDatabaseName()) && DOLUtils.equals(getUrl(), other.getUrl()) && DOLUtils.equals(getUser(), other.getUser()) && DOLUtils.equals(getPassword(), other.getPassword()) && properties.equals(other.properties) && getLoginTimeout() == other.getLoginTimeout() && isTransactional() == other.isTransactional() && getIsolationLevel() == other.getIsolationLevel() && getInitialPoolSize() == other.getInitialPoolSize() && getMinPoolSize() == other.getMinPoolSize() && getMaxPoolSize() == other.getMaxPoolSize() && getMaxIdleTime() == other.getMaxIdleTime() && getMaxStatements() == other.getMaxStatements() ); } }
public String getDescription() { return desc.getDescription(); }
private boolean isStandardPropertiesSet(DataSourceDefinitionDescriptor desc){ boolean result = false; if(desc.getServerName() != null && desc.getDatabaseName() != null && desc.getPortNumber() != -1 ){ result = true; } return result; }
public boolean equals(Object object) { if (object instanceof DataSourceDefinitionDescriptor) { DataSourceDefinitionDescriptor reference = (DataSourceDefinitionDescriptor) object; return getJavaName(this.getName()).equals(getJavaName(reference.getName())); } return false; }
if (desc.getName().equals(defn.name())) { if (desc.getClassName() == null) { desc.setClassName(defn.className()); if (desc.getDescription() == null) { if (defn.description() != null && !defn.description().equals("")) { desc.setDescription(defn.description()); if (!desc.isServerNameSet() && desc.getUrl() == null) { desc.setServerName(defn.serverName()); if (desc.getPortNumber() == -1 && desc.getUrl() == null) { if (defn.portNumber() != -1) { desc.setPortNumber(defn.portNumber()); if (desc.getDatabaseName() == null && desc.getUrl() == null) { if (defn.databaseName() != null && !defn.databaseName().equals("")) { desc.setDatabaseName(defn.databaseName()); if (desc.getUrl() == null && !(desc.getPortNumber() != -1 && desc.getServerName() != null && (desc.getDatabaseName() != null))) { if (defn.url() != null && !defn.url().equals("")) { desc.setUrl(defn.url()); if (desc.getUser() == null) { if (defn.user() != null && !defn.user().equals("")) {
DataSourceDefinitionDescriptor desc = new DataSourceDefinitionDescriptor(); desc.setMetadataSource(MetadataSource.ANNOTATION); desc.setName(defn.name()); desc.setClassName(defn.className()); desc.setDescription(defn.description()); desc.setServerName(defn.serverName()); desc.setPortNumber(defn.portNumber()); desc.setDatabaseName(defn.databaseName()); if ((desc.getPortNumber() != -1 && desc.getDatabaseName() != null && desc.getServerName() != null)) { desc.setUrl(defn.url()); desc.setUser(defn.user()); desc.setPassword(defn.password()); desc.setIsolationLevel(String.valueOf(defn.isolationLevel())); desc.setTransactional(true); } else { desc.setTransactional(false); desc.setMinPoolSize(defn.minPoolSize());
public List<Property> getProperty() { Properties p = desc.getProperties(); List<Property> dataSourceProperties = new ArrayList<Property>(); for (Object o : p.keySet()) { if (desc.getUser() != null) { DataSourceProperty property = convertProperty(("user"), String.valueOf(desc.getUser())); dataSourceProperties.add(property); if (desc.getPassword() != null) { DataSourceProperty property = convertProperty(("password"), String.valueOf(desc.getPassword())); dataSourceProperties.add(property); if (desc.getDatabaseName() != null) { DataSourceProperty property = convertProperty(("databaseName"), String.valueOf(desc.getDatabaseName())); dataSourceProperties.add(property); if (desc.getServerName() != null) { DataSourceProperty property = convertProperty(("serverName"), String.valueOf(desc.getServerName())); dataSourceProperties.add(property); if (desc.getPortNumber() != -1) { DataSourceProperty property = convertProperty(("portNumber"), String.valueOf(desc.getPortNumber())); dataSourceProperties.add(property);
private void registerDSDReferredByApplication(String appName, DataSourceDefinitionDescriptor dsd) { // It is possible that JPA might call this method multiple times in a single deployment, // when there are multiple PUs eg: one PU in each of war, ejb-jar. Make sure that // DSD is bound to JNDI only when it is not already deployed. if(!dsd.isDeployed()){ DataSourceDefinitionProxy proxy = habitat.getComponent(DataSourceDefinitionProxy.class); ResourceNamingService resourceNamingService = habitat.getComponent(ResourceNamingService.class); proxy.setDescriptor(dsd); //String appName = application.getAppName(); String moduleName = null; if(dsd.getName().startsWith(ConnectorConstants.JAVA_APP_SCOPE_PREFIX)){ dsd.setResourceId(appName); } if(dsd.getName().startsWith(ConnectorConstants.JAVA_GLOBAL_SCOPE_PREFIX) /*|| next.getName().startsWith("java:module/")*/ || dsd.getName().startsWith(ConnectorConstants.JAVA_APP_SCOPE_PREFIX)){ ResourceInfo resourceInfo = new ResourceInfo(dsd.getName(), appName, moduleName); try { resourceNamingService.publishObject(resourceInfo, proxy, true); dsd.setDeployed(true); } catch (NamingException e) { Object params[] = new Object[]{appName, dsd.getName(), e}; _logger.log(Level.WARNING, "dsd.registration.failed", params); } } } }
public int hashCode() { int result = 17; result = 37*result + getName().hashCode(); return result; }
private void undeployDataSourceDefinitions(JndiNameEnvironment env) { for (DataSourceDefinitionDescriptor dsd : env.getDataSourceDefinitionDescriptors()) { Collection<ResourceDeployer> resourceDeployers = habitat.getAllByContract(ResourceDeployer.class); try{ if(dsd.isDeployed()){ ResourceDeployer deployer = getResourceDeployer(dsd, resourceDeployers); deployer.undeployResource(dsd); dsd.setDeployed(false); } }catch(Exception e){ _logger.log(Level.WARNING, "unable to undeploy DataSourceDefinition [ " + dsd.getName() + " ] ", e); } } }
public void undeployResource(Object resource) throws Exception { final DataSourceDefinitionDescriptor desc = (DataSourceDefinitionDescriptor) resource; Collection<ResourceDeployer> deployers = habitat.getAllByContract(ResourceDeployer.class); String poolName = ConnectorsUtil.deriveDataSourceDefinitionPoolName(desc.getResourceId(), desc.getName()); String resourceName = ConnectorsUtil.deriveDataSourceDefinitionResourceName(desc.getResourceId(), desc.getName()); if(_logger.isLoggable(Level.FINE)) { _logger.log(Level.FINE, "DataSourceDefinitionDeployer.undeployResource() : pool-name ["+poolName+"], " + " resource-name ["+resourceName+"]"); } //undeploy resource JdbcResource jdbcResource = new MyJdbcResource(poolName, resourceName); getDeployer(jdbcResource, deployers).undeployResource(jdbcResource); //undeploy pool JdbcConnectionPool jdbcCp = new MyJdbcConnectionPool(desc, poolName); getDeployer(jdbcCp, deployers).undeployResource(jdbcCp); desc.setDeployed(false); }
private void unregisterDSDReferredByApplication(DataSourceDefinitionDescriptor dsd){ try{ if(dsd.isDeployed()){ undeployResource(dsd); } }catch(Exception e){ _logger.log(Level.WARNING, "exception while unregistering DSD [ "+dsd.getName()+" ]", e); } }
public Object create(Context ic) throws NamingException { if(actualResourceName == null){ actualResourceName = ConnectorsUtil.deriveDataSourceDefinitionResourceName (desc.getResourceId(), desc.getName()); try{ if(habitat == null){ habitat = Globals.getDefaultHabitat(); if(habitat == null){ throw new NamingException("Unable to create resource " + "["+ desc.getName() +" ] as habitat is null"); } } getResourceDeployer(desc, habitat.getAllByContract(ResourceDeployer.class)).deployResource(desc); }catch(Exception e){ NamingException ne = new NamingException("Unable to create resource ["+ desc.getName() +" ]"); ne.initCause(e); throw ne; } } return ic.lookup(actualResourceName); }
@Override protected void combineDataSourceDefinitionDescriptors(JndiNameEnvironment env) { for (DataSourceDefinitionDescriptor ddd: env.getDataSourceDefinitionDescriptors()) { DataSourceDefinitionDescriptor ddDesc = getDataSourceDefinitionDescriptor(ddd.getName()); if (ddDesc != null) { if (ddDesc.isConflict(ddd)) { conflictDataSourceDefinition = true; } } else { getDataSourceDefinitionDescriptors().add(ddd); } } }
protected void combineDataSourceDefinitionDescriptors(JndiNameEnvironment env) { boolean isFromXml = false; for (DataSourceDefinitionDescriptor ddd : env.getDataSourceDefinitionDescriptors()) { isFromXml = (ddd.getMetadataSource() == MetadataSource.XML); if (isFromXml) { break; } } if (isFromXml) { for (DataSourceDefinitionDescriptor ddd: env.getDataSourceDefinitionDescriptors()) { DataSourceDefinitionDescriptor ddDesc = getDataSourceDefinitionDescriptor(ddd.getName()); if (ddDesc == null) { if (env instanceof WebBundleDescriptor && ((WebBundleDescriptor)env).conflictDataSourceDefinition) { throw new IllegalArgumentException(localStrings.getLocalString( "enterprise.deployment.exceptionconflictdatasourcedefinition", "There are more than one datasource definitions defined in web fragments with the same name, but not overrided in web.xml")); } else { getDataSourceDefinitionDescriptors().add(ddd); } } } } }
public String getDatasourceClassname() { if(!getResType().equals(ConnectorConstants.JAVA_SQL_DRIVER)){ return desc.getClassName(); } return null; }
public String getSteadyPoolSize() { int minPoolSize = desc.getMinPoolSize(); if (minPoolSize == -1) { minPoolSize = 8; } return String.valueOf(minPoolSize); }
public String getIdleTimeoutInSeconds() { long maxIdleTime = desc.getMaxIdleTime(); if (maxIdleTime == -1) { maxIdleTime = 300; } return String.valueOf(maxIdleTime); }
public String getMaxPoolSize() { int maxPoolSize = desc.getMaxPoolSize(); if (maxPoolSize == -1) { maxPoolSize = 32; } return String.valueOf(maxPoolSize); }
public String getTransactionIsolationLevel() { if (desc.getIsolationLevel() == -1) { return null; } else { return ConnectorsUtil.getTransactionIsolationInt(desc.getIsolationLevel()); } }