private <T> BeansXml merge(Iterable<? extends T> items, Function<T, BeansXml> function, boolean removeDuplicates) { List<Metadata<String>> alternatives = new ArrayList<Metadata<String>>(); List<Metadata<String>> alternativeStereotypes = new ArrayList<Metadata<String>>(); List<Metadata<String>> decorators = new ArrayList<Metadata<String>>(); List<Metadata<String>> interceptors = new ArrayList<Metadata<String>>(); List<Metadata<Filter>> includes = new ArrayList<Metadata<Filter>>(); List<Metadata<Filter>> excludes = new ArrayList<Metadata<Filter>>(); boolean isTrimmed = false; URL beansXmlUrl = null; for (T item : items) { BeansXml beansXml = function.apply(item); addTo(alternatives, beansXml.getEnabledAlternativeClasses(), removeDuplicates); addTo(alternativeStereotypes, beansXml.getEnabledAlternativeStereotypes(), removeDuplicates); addTo(decorators, beansXml.getEnabledDecorators(), removeDuplicates); addTo(interceptors, beansXml.getEnabledInterceptors(), removeDuplicates); includes.addAll(beansXml.getScanning().getIncludes()); excludes.addAll(beansXml.getScanning().getExcludes()); if (beansXml instanceof TrimmableBeansXml) { isTrimmed = ((TrimmableBeansXml) beansXml).isTrimmed(); } /* * provided we are merging the content of multiple XML files, getBeansXml() returns an * InputStream representing the last one */ beansXmlUrl = beansXml.getUrl(); } return new BeansXmlImpl(alternatives, alternativeStereotypes, decorators, interceptors, new ScanningImpl(includes, excludes), beansXmlUrl, BeanDiscoveryMode.ALL, null, isTrimmed); }
beansXmlBuilder.add(Strings.URL, beansXml.getUrl() != null ? beansXml.getUrl().toString() : EMPTY); beansXmlBuilder.add(VERSION, beansXml.getVersion() != null ? beansXml.getVersion().toString() : EMPTY); beansXmlBuilder.add(TRIMMED, (beansXml instanceof TrimmableBeansXml) ? ((TrimmableBeansXml) beansXml).isTrimmed() : false); if (beansXml.getScanning() != null && (!beansXml.getScanning().getExcludes().isEmpty() || !beansXml.getScanning().getExcludes().isEmpty())) { JsonArrayBuilder scanBuilder = Json.arrayBuilder();
if (beansXml.isTrimmed()) { beanDeployer.getEnvironment().trim();