@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 void mergeWebFragments(final WebModule webModule) { // web-fragment.xml, to get jndi entries to merge, other stuff is done by tomcat ATM final Collection<URL> urls = Collection.class.cast(webModule.getAltDDs().get("web-fragment.xml")); if (urls != null) { for (final URL rawUrl : urls) { if (rawUrl != null) { final Source url = getSource(rawUrl); try { final WebFragment webFragment = WebFragment.class.cast(JaxbJavaee.unmarshal(WebFragment.class, url.get(), false)); // in tomcat if the env entry is already don't override it mergeOnlyMissingEntries(webModule.getWebApp().getPersistenceContextRefMap(), webFragment.getPersistenceContextRef()); mergeOnlyMissingEntries(webModule.getWebApp().getPersistenceUnitRefMap(), webFragment.getPersistenceUnitRef()); mergeOnlyMissingEntries(webModule.getWebApp().getMessageDestinationRefMap(), webFragment.getMessageDestinationRef()); mergeOnlyMissingEntries(webModule.getWebApp().getDataSourceMap(), webFragment.getDataSource()); mergeOnlyMissingEntries(webModule.getWebApp().getEjbLocalRefMap(), webFragment.getEjbLocalRef()); mergeOnlyMissingEntries(webModule.getWebApp().getEjbRefMap(), webFragment.getEjbRef()); mergeOnlyMissingEntries(webModule.getWebApp().getServiceRefMap(), webFragment.getServiceRef()); mergeOnlyMissingEntries(webModule.getWebApp().getEnvEntryMap(), webFragment.getEnvEntry()); mergeOnlyMissingEntries(webModule.getWebApp().getResourceEnvRefMap(), webFragment.getResourceEnvRef()); mergeOnlyMissingEntries(webModule.getWebApp().getResourceRefMap(), webFragment.getResourceRef()); } catch (final Exception e) { logger.warning("can't read " + url.toString(), e); } } } } }
private void mergeWebFragments(final WebModule webModule) { // web-fragment.xml, to get jndi entries to merge, other stuff is done by tomcat ATM final Collection<URL> urls = Collection.class.cast(webModule.getAltDDs().get("web-fragment.xml")); if (urls != null) { for (final URL rawUrl : urls) { if (rawUrl != null) { final Source url = getSource(rawUrl); try { final WebFragment webFragment = WebFragment.class.cast(JaxbJavaee.unmarshal(WebFragment.class, url.get(), false)); // in tomcat if the env entry is already don't override it mergeOnlyMissingEntries(webModule.getWebApp().getPersistenceContextRefMap(), webFragment.getPersistenceContextRef()); mergeOnlyMissingEntries(webModule.getWebApp().getPersistenceUnitRefMap(), webFragment.getPersistenceUnitRef()); mergeOnlyMissingEntries(webModule.getWebApp().getMessageDestinationRefMap(), webFragment.getMessageDestinationRef()); mergeOnlyMissingEntries(webModule.getWebApp().getDataSourceMap(), webFragment.getDataSource()); mergeOnlyMissingEntries(webModule.getWebApp().getJMSConnectionFactoriesMap(), webFragment.getJMSConnectionFactories()); mergeOnlyMissingEntries(webModule.getWebApp().getEjbLocalRefMap(), webFragment.getEjbLocalRef()); mergeOnlyMissingEntries(webModule.getWebApp().getEjbRefMap(), webFragment.getEjbRef()); mergeOnlyMissingEntries(webModule.getWebApp().getServiceRefMap(), webFragment.getServiceRef()); mergeOnlyMissingEntries(webModule.getWebApp().getEnvEntryMap(), webFragment.getEnvEntry()); mergeOnlyMissingEntries(webModule.getWebApp().getResourceEnvRefMap(), webFragment.getResourceEnvRef()); mergeOnlyMissingEntries(webModule.getWebApp().getResourceRefMap(), webFragment.getResourceRef()); } catch (final Exception e) { logger.warning("can't read " + url.toString(), e); } } } } }