public static String createDataSourceKey(DataSource dataSource, MergeContext mergeContext) { return "data-source.name." + dataSource.getName(); } }
@Override public String getKey() { final String name = getName(); if (name == null || name.startsWith("java:")) return name; return "java:comp/env/" + name; } }
@Override public String getKey() { final String name = getName(); if (name.startsWith("java:comp/env/")) { return name.substring("java:comp/env/".length()); } return name; } }
private DataSource findDataSource(DataSourceDefinition dsDefinition, JndiConsumer annotatedApp) { String dsDefinitionName = getJndiName(dsDefinition.name().trim()); Collection<DataSource> dataSources = annotatedApp.getDataSource(); for (DataSource ds : dataSources) { String dsName = getJndiName(ds.getName().trim()); if (dsDefinitionName.equals(dsName)) { return ds; } } return null; }
@Override public void merge(WebFragment webFragment, WebApp webApp, MergeContext mergeContext) throws DeploymentException { for (DataSource srcDataSource : webFragment.getDataSource()) { String dataSourceKey = createDataSourceKey(srcDataSource, mergeContext); MergeItem mergeItem = (MergeItem) mergeContext.getAttribute(dataSourceKey); if (mergeItem != null && mergeItem.isFromWebFragment()) { throw new DeploymentException(WebDeploymentMessageUtils.createDuplicateJNDIRefMessage("data-source", srcDataSource.getName(), mergeContext.getCurrentJarUrl(), mergeItem .getBelongedURL())); } webApp.getDataSource().add(srcDataSource); mergeContext.setAttribute(dataSourceKey, new MergeItem(srcDataSource, mergeContext.getCurrentJarUrl(), ElementSource.WEB_FRAGMENT)); } }
private String rawDefinition(final DataSource d) { try { final Properties p = new Properties(); put(p, "transactional", d.getTransactional()); put(p, "initialPoolSize", d.getInitialPoolSize()); put(p, "isolationLevel", d.getIsolationLevel()); put(p, "loginTimeout", d.getLoginTimeout()); put(p, "maxIdleTime", d.getMaxIdleTime()); put(p, "maxPoolSize", d.getMaxPoolSize()); put(p, "maxStatements", d.getMaxStatements()); put(p, "minPoolSize", d.getMinPoolSize()); put(p, "portNumber", d.getPortNumber()); put(p, "databaseName", d.getDatabaseName()); put(p, "password", d.getPassword()); put(p, "serverName", d.getServerName()); put(p, "url", d.getUrl()); put(p, "user", d.getUser()); setProperties(d, p); final ByteArrayOutputStream out = new ByteArrayOutputStream(); p.store(out, ""); return new String(out.toByteArray()); } catch (final IOException e) { throw new OpenEJBRuntimeException(String.format("Cannot canonicalize the @DataSourceDefinition %s as a properties string", d.getName())); } }
private String rawDefinition(final DataSource d) { try { final Properties p = new Properties(); put(p, "transactional", d.getTransactional()); put(p, "initialPoolSize", d.getInitialPoolSize()); put(p, "isolationLevel", d.getIsolationLevel()); put(p, "loginTimeout", d.getLoginTimeout()); put(p, "maxIdleTime", d.getMaxIdleTime()); put(p, "maxPoolSize", d.getMaxPoolSize()); put(p, "maxStatements", d.getMaxStatements()); put(p, "minPoolSize", d.getMinPoolSize()); put(p, "portNumber", d.getPortNumber()); put(p, "databaseName", d.getDatabaseName()); put(p, "password", d.getPassword()); put(p, "serverName", d.getServerName()); put(p, "url", d.getUrl()); put(p, "user", d.getUser()); setProperties(d, p); final ByteArrayOutputStream out = new ByteArrayOutputStream(); p.store(out, ""); return new String(out.toByteArray()); } catch (final IOException e) { throw new OpenEJBRuntimeException(String.format("Cannot canonicalize the @DataSourceDefinition %s as a properties string", d.getName())); } }
private DataSourceDescription createDataSourceDescription(DataSource ds) { DataSourceDescription dsDescription = new DataSourceDescription(); dsDescription.setName(ds.getName()); dsDescription.setClassName(ds.getClassName());
private Resource toResource(final DataSource datasource) { final String name = cleanUpName(datasource.getName()); final Resource def = new Resource(name, javax.sql.DataSource.class.getName()); def.setJndi(datasource.getName().replaceFirst("java:", "")); def.setType("javax.sql.DataSource"); final Properties p = def.getProperties(); put(p, "JtaManaged", datasource.getTransactional()); put(p, "InitialSize", datasource.getInitialPoolSize()); put(p, "DefaultIsolationLevel", datasource.getIsolationLevel()); put(p, "LoginTimeout", datasource.getLoginTimeout()); put(p, "MinEvictableIdleTimeMillis", datasource.getMaxIdleTime()); put(p, "MaxIdle", datasource.getMaxPoolSize()); put(p, "MinIdle", datasource.getMinPoolSize()); put(p, "MaxStatements", datasource.getMaxStatements()); put(p, "Password", datasource.getPassword()); put(p, "JdbcUrl", datasource.getUrl()); put(p, "UserName", datasource.getUser()); put(p, "JdbcDriver", datasource.getClassName()); put(p, "PortNumber", datasource.getPortNumber()); put(p, "DatabaseName", datasource.getDatabaseName()); put(p, "Description", datasource.getDescription()); put(p, "ServerName", datasource.getServerName()); put(p, "Definition", rawDefinition(datasource)); // do we need it?? put(p, AutoConfig.ORIGIN_FLAG, AutoConfig.ORIGIN_ANNOTATION); setProperties(datasource, p); // to force it to be bound in JndiEncBuilder put(p, "JndiName", def.getJndi()); return def; }