/** * Get the current list of ConfigurationProviders. If no custom ConfigurationProviders have been added, this method * will return a list containing only the default ConfigurationProvider, XMLConfigurationProvider. if a custom * ConfigurationProvider has been added, then the XmlConfigurationProvider must be added by hand. * </p> * <p/> * TODO: the lazy instantiation of XmlConfigurationProvider should be refactored to be elsewhere. the behavior described above seems unintuitive. * * @return the list of registered ConfigurationProvider objects * @see ConfigurationProvider */ public List<ContainerProvider> getContainerProviders() { providerLock.lock(); try { if (containerProviders.size() == 0) { containerProviders.add(new XWorkConfigurationProvider()); containerProviders.add(new XmlConfigurationProvider("xwork.xml", false)); } return containerProviders; } finally { providerLock.unlock(); } }
PackageConfig.Builder newPackage = buildPackageContext(packageElement); addResultTypes(newPackage, packageElement); loadInterceptors(newPackage, packageElement); loadDefaultInterceptorRef(newPackage, packageElement); loadDefaultClassRef(newPackage, packageElement); loadGlobalResults(newPackage, packageElement); loadGobalExceptionMappings(newPackage, packageElement); addAction(actionElement, newPackage); loadDefaultActionRef(newPackage, packageElement);
public void loadPackages() throws ConfigurationException { List<Element> reloads = new ArrayList<Element>(); verifyPackageStructure(); PackageConfig cfg = addPackage(child); if (cfg.isNeedsRefresh()) { reloads.add(child); loadExtraConfiguration(doc); reloadRequiredPackages(reloads); loadExtraConfiguration(doc);
private void reloadRequiredPackages(List<Element> reloads) { if (reloads.size() > 0) { List<Element> result = new ArrayList<Element>(); for (Element pkg : reloads) { PackageConfig cfg = addPackage(pkg); if (cfg.isNeedsRefresh()) { result.add(pkg); } } if ((result.size() > 0) && (result.size() != reloads.size())) { reloadRequiredPackages(result); return; } // Print out error messages for all misconfigured inheritence packages if (result.size() > 0) { for (Element rp : result) { String parent = rp.getAttribute("extends"); if (parent != null) { List<PackageConfig> parents = ConfigurationUtil.buildParentsFromString(configuration, parent); if (parents != null && parents.size() <= 0) { LOG.error("Unable to find parent packages " + parent); } } } } } }
if (!verifyAction(className, name, location)) { if (LOG.isErrorEnabled()) { LOG.error("Unable to verify action [#0] with class [#1], from [#2]", name, className, location); results = buildResults(actionElement, packageContext); } catch (ConfigurationException e) { throw new ConfigurationException("Error building results for action " + name + " in namespace " + packageContext.getNamespace(), e, actionElement); List<InterceptorMapping> interceptorList = buildInterceptorList(actionElement, packageContext); List<ExceptionMappingConfig> exceptionMappings = buildExceptionMappings(actionElement, packageContext); Set<String> allowedMethods = buildAllowedMethods(actionElement, packageContext);
public Object getObject() throws Exception { ConfigurationManager confManager = new ConfigurationManager(); confManager.addContainerProvider(new XWorkConfigurationProvider()); SpringContainer springContainer = new SpringContainer(); springContainer.setApplicationContext(_context); confManager.addContainerProvider(springContainer); for (String xmlConfigurationSource : _xmlConfigurationSources) { XmlConfigurationProvider xml = new XmlConfigurationProvider( xmlConfigurationSource, true); xml.setThrowExceptionOnDuplicateBeans(false); confManager.addContainerProvider(xml); } return confManager.getConfiguration(); }
for (ConfigurationProvider prov : providers) { if (prov instanceof XmlConfigurationProvider) { ((XmlConfigurationProvider)prov).setThrowExceptionOnDuplicateBeans(false);
/** * Load all of the global results for this package from the XML element. */ protected void loadGlobalResults(PackageConfig.Builder packageContext, Element packageElement) { NodeList globalResultList = packageElement.getElementsByTagName("global-results"); if (globalResultList.getLength() > 0) { Element globalResultElement = (Element) globalResultList.item(0); Map<String, ResultConfig> results = buildResults(globalResultElement, packageContext); packageContext.addGlobalResultConfigs(results); } }
/** * Load all of the global results for this package from the XML element. */ protected void loadGobalExceptionMappings(PackageConfig.Builder packageContext, Element packageElement) { NodeList globalExceptionMappingList = packageElement.getElementsByTagName("global-exception-mappings"); if (globalExceptionMappingList.getLength() > 0) { Element globalExceptionMappingElement = (Element) globalExceptionMappingList.item(0); List<ExceptionMappingConfig> exceptionMappings = buildExceptionMappings(globalExceptionMappingElement, packageContext); packageContext.addGlobalExceptionMappingConfigs(exceptionMappings); } }
} else if (declaredPackages.containsKey(parentPackageName)) { if (configuration.getPackageConfig(parentPackageName) == null) { addPackage(declaredPackages.get(parentPackageName));