List of usage examples for org.apache.commons.digester Digester addCallMethod
public void addCallMethod(String pattern, String methodName, int paramCount)
From source file:nl.toolforge.karma.core.cmd.CommandLoader.java
private Digester getCommandDigester() { Digester digester = new Digester(); digester.addObjectCreate("commands", CommandDescriptorMap.class); digester.addFactoryCreate("*/command", CommandDescriptorCreationFactory.class); digester.addCallMethod("*/command/description", "setDescription", 0); digester.addCallMethod("*/command/classname", "setClassName", 0); digester.addCallMethod("*/command/help", "setHelp", 0); digester.addObjectCreate("*/command/options", Options.class); digester.addFactoryCreate("*/command/options/option", OptionDescriptorCreationFactory.class); digester.addCallMethod("*/command/options/option/arg", "setArgName", 0); digester.addSetNext("*/command/options/option", "addOption"); digester.addSetNext("*/command/options", "addOptions"); // Adds an Option to the command. digester.addSetNext("*/command", "add"); // Adds a CommandDescriptor instance to the set. return digester; }
From source file:nl.toolforge.karma.core.cmd.util.DescriptorReader.java
private void parseApplicationXml(File baseDir) throws IOException, SAXException { Digester digester = new Digester(); digester.setValidating(false); //todo: dit moet true worden digester.addObjectCreate("application", ArrayList.class); digester.addObjectCreate("application/module/ejb", StringBuffer.class); digester.addCallMethod("application/module/ejb", "append", 0); digester.addSetNext("application/module/ejb", "add", "java.lang.StringBuffer"); digester.addObjectCreate("application/module/java", StringBuffer.class); digester.addCallMethod("application/module/java", "append", 0); digester.addSetNext("application/module/java", "add", "java.lang.StringBuffer"); digester.addObjectCreate("application/module/web/web-uri", StringBuffer.class); digester.addCallMethod("application/module/web/web-uri", "append", 0); digester.addSetNext("application/module/web/web-uri", "add", "java.lang.StringBuffer"); logger.debug("Parsing 'application.xml' from " + baseDir.getPath()); moduleNames = (List) digester.parse(new File(baseDir, "application.xml").getPath()); }
From source file:nl.toolforge.karma.core.location.LocationDescriptor.java
/** * Creates a <code>Digester</code> to read xml structures for locations. This digester will create an * <code>ArrayList</code> of <code>LocationDescriptor</code> instances. * * @return A digester instance/* w ww . ja v a2 s . com*/ */ public static Digester getDigester() { Digester digester = new Digester(); digester.setNamespaceAware(true); digester.addObjectCreate("*/locations", ArrayList.class); digester.addObjectCreate("*/locations/location", LocationDescriptor.class); digester.addSetProperties("*/locations/location"); digester.addCallMethod("*/locations/location/protocol", "setProtocol", 0); digester.addCallMethod("*/locations/location/host", "setHost", 0); digester.addCallMethod("*/locations/location/port", "setPort", 0); digester.addCallMethod("*/locations/location/repository", "setRepository", 0); digester.addCallMethod("*/locations/location/module-offset", "setModuleOffset", 0); digester.addSetNext("*/locations/location", "add"); return digester; }
From source file:nl.toolforge.karma.core.manifest.ManifestLoader.java
/** * This method builds a tree of <code>ManifestStructure</code> instances, representing the root manifest and all its * included manifests./*from ww w. j av a2 s .c o m*/ * * @param manifest The manifest name. */ public ManifestStructure load(String manifest) throws ManifestException { Digester digester = new Digester(); // The <manifest>-element // digester.addObjectCreate("manifest", ManifestStructure.class); digester.addSetProperties("manifest"); digester.addCallMethod("manifest/description", "setDescription", 0); // All <module>-elements // digester.addFactoryCreate("*/module", ModuleDescriptorCreationFactory.class); digester.addSetProperties("*/module"); digester.addSetNext("*/module", "addModule", "nl.toolforge.karma.core.module.ModuleDigester"); // All <include-manifest>-elements // digester.addObjectCreate("*/include-manifest", "nl.toolforge.karma.core.manifest.ManifestStructure"); digester.addSetProperties("*/include-manifest"); digester.addSetNext("*/include-manifest", "addChild"); ManifestStructure structure = null; try { structure = (ManifestStructure) digester.parse(getManifestFileAsStream(manifest)); structure.setName(manifest); } catch (IOException e) { throw new ManifestException(e, ManifestException.MANIFEST_LOAD_ERROR, new Object[] { manifest }); } catch (SAXException e) { if (e.getException() instanceof ManifestException) { throw new ManifestException(((ManifestException) e.getException()).getErrorCode(), ((ManifestException) e.getException()).getMessageArguments()); } else { throw new ManifestException(e, ManifestException.MANIFEST_LOAD_ERROR, new Object[] { manifest }); } } Iterator i = structure.getChilds().values().iterator(); while (i.hasNext()) { String childName = ((ManifestStructure) i.next()).getName(); ManifestStructure child = load(childName); structure.getChild(childName).update(child); } return structure; }
From source file:nl.toolforge.karma.core.module.BaseModule.java
/** * Reads <code>module-descriptor.xml</code>-file from the module base directory. Once read, * the module type is cached.//from w w w . j av a 2 s . c o m * <p>If the base directory does not exist, <code>Module.UNKNOWN</code> is returned. * * @return The module type. * @throws nl.toolforge.karma.core.module.ModuleTypeException When <code>module-descriptor</code> is non-existing. This is possible when the * module is not locally available. */ public final Type getType() throws ModuleTypeException { try { getBaseDir(); } catch (KarmaRuntimeException k) { return Module.UNKNOWN; } File moduleDescriptor = new File(getBaseDir(), Module.MODULE_DESCRIPTOR); if (!moduleDescriptor.exists()) { throw new ModuleTypeException(ModuleTypeException.MISSING_MODULE_DESCRIPTOR); } if (moduleType.equals(Module.UNKNOWN)) { Digester digester = new Digester(); digester.addObjectCreate("module-descriptor", Module.Type.class); digester.addCallMethod("module-descriptor/type", "setType", 0); try { moduleType = (Type) digester.parse(moduleDescriptor.getPath()); } catch (IOException e) { throw new ModuleTypeException(ModuleTypeException.INVALID_MODULE_DESCRIPTOR); } catch (SAXException e) { throw new ModuleTypeException(ModuleTypeException.INVALID_MODULE_DESCRIPTOR); } } return moduleType; }
From source file:nl.toolforge.karma.core.scm.maven.MavenDependencyReader.java
/** * Parses a Maven project.xml file and stores all <code><dependency></code>-elements in a <code>List</code>. * * @param dependencyFileIs/* ww w . j a v a 2s. c om*/ * @return A <code>List</code>, containing <code>org.apache.maven.project.Dependency</code> instances. */ public List parse(InputStream dependencyFileIs) throws KarmaException { Digester digester = new Digester(); digester.addObjectCreate("project", ArrayList.class); digester.addObjectCreate("project/dependencies/dependency", "org.apache.maven.project.Dependency"); digester.addCallMethod("project/dependencies/dependency/Id", "setId", 1); digester.addCallParam("project/dependencies/dependency/Id", 0); digester.addCallMethod("project/dependencies/dependency/groupId", "setGroupId", 1); digester.addCallParam("project/dependencies/dependency/groupId", 0); digester.addCallMethod("project/dependencies/dependency/artifactId", "setArtifactId", 1); digester.addCallParam("project/dependencies/dependency/artifactId", 0); digester.addCallMethod("project/dependencies/dependency/version", "setVersion", 1); digester.addCallParam("project/dependencies/dependency/version", 0); digester.addCallMethod("project/dependencies/dependency/jar", "setJar", 1); digester.addCallParam("project/dependencies/dependency/jar", 0); // Call List.add(Dependency) // digester.addSetNext("project/dependencies/dependency", "add", "org.apache.maven.project.Dependency"); List deps = null; try { deps = (List) digester.parse(dependencyFileIs); } catch (IOException e) { e.printStackTrace(); // throw new KarmaException(KarmaException.LAZY_BASTARD); } catch (SAXException e) { e.printStackTrace(); // throw new KarmaException(KarmaException.LAZY_BASTARD); } return deps; }
From source file:nonjsp.application.XmlXulRuleSet.java
/** * <p>Add the set of Rule instances defined in this RuleSet to the * specified <code>Digester</code> instance. * * @param digester Digester instance to which the new Rule instances * should be added.//from w w w .j a va2 s . c o m */ public void addRuleInstances(Digester digester) { digester.addCallMethod("*/page-url", "setPageUrl", 0); digester.addObjectCreate("*/window", "javax.faces.component.UIForm"); digester.addObjectCreate("*/label", "javax.faces.component.UIOutput"); digester.addObjectCreate("*/textbox", "javax.faces.component.UIInput"); digester.addObjectCreate("*/checkbox", "javax.faces.component.UISelectBoolean"); digester.addObjectCreate("*/radiogroup", "javax.faces.component.UISelectOne"); digester.addObjectCreate("*/menupopup", "javax.faces.component.UISelectOne"); digester.addObjectCreate("*/link", "javax.faces.component.UICommand"); /* * Button no longer needs an ActionRule that creates a default * ActionListener because the API's UICommandBase now installs * a default ActionListener */ digester.addObjectCreate("*/button", "javax.faces.component.UICommand"); digester.addObjectCreate("*/image", "javax.faces.component.UIGraphic"); digester.addFactoryCreate("*/uicomponent", new UIComponentFactory()); ComponentRule cRule = new ComponentRule(); cRule.setBuildComponent(buildComponent); digester.addRule("*/window", cRule); digester.addRule("*/label", cRule); digester.addRule("*/textbox", cRule); digester.addRule("*/checkbox", cRule); digester.addRule("*/radiogroup", cRule); digester.addRule("*/menupopup", cRule); digester.addRule("*/link", cRule); digester.addRule("*/button", cRule); digester.addRule("*/image", cRule); ComponentNestedRule cnRule = new ComponentNestedRule(); cnRule.setBuildComponent(buildComponent); digester.addRule("*/radio", cnRule); digester.addRule("*/menuitem", cnRule); }
From source file:org.ajax4jsf.resource.ResourceBuilderImpl.java
private void registerConfig(URL resourceConfig) { try {/*from ww w .ja v a 2 s .co m*/ if (log.isDebugEnabled()) { log.debug("Process resources configuration file " + resourceConfig.toExternalForm()); } InputStream in = URLToStreamHelper.urlToStream(resourceConfig); try { Digester digester = new Digester(); digester.setValidating(false); digester.setEntityResolver(new EntityResolver() { // Dummi resolver - alvays do nothing public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { return new InputSource(new StringReader("")); } }); digester.setNamespaceAware(false); digester.setUseContextClassLoader(true); digester.push(this); digester.addObjectCreate("resource-config/resource", "class", JarResource.class); digester.addObjectCreate("resource-config/resource/renderer", "class", HTMLRenderer.class); digester.addCallMethod("resource-config/resource/renderer/content-type", "setContentType", 0); digester.addSetNext("resource-config/resource/renderer", "setRenderer", ResourceRenderer.class.getName()); digester.addCallMethod("resource-config/resource/name", "setKey", 0); digester.addCallMethod("resource-config/resource/path", "setPath", 0); digester.addCallMethod("resource-config/resource/cacheable", "setCacheable", 0); digester.addCallMethod("resource-config/resource/session-aware", "setSessionAware", 0); digester.addCallMethod("resource-config/resource/property", "setProperty", 2); digester.addCallParam("resource-config/resource/property/name", 0); digester.addCallParam("resource-config/resource/property/value", 1); digester.addCallMethod("resource-config/resource/content-type", "setContentType", 0); digester.addSetNext("resource-config/resource", "addResource", InternetResource.class.getName()); digester.parse(in); } finally { in.close(); } } catch (IOException e) { throw new FacesException(e); } catch (SAXException e) { throw new FacesException(e); } }
From source file:org.apache.myfaces.trinidadbuild.plugin.faces.AbstractFacesMojo.java
protected URL[] readIndex(MavenProject project) throws MojoExecutionException { try {/*from www . j a va2 s . c om*/ // 1. read master faces-config.xml resources List masters = getMasterConfigs(project); if (masters.isEmpty()) { getLog().warn("Master faces-config.xml not found"); return new URL[0]; } else { List entries = new LinkedList(); SAXParserFactory spf = SAXParserFactory.newInstance(); spf.setNamespaceAware(true); // requires JAXP 1.3, in JavaSE 5.0 // spf.setXIncludeAware(false); for (Iterator<URL> i = masters.iterator(); i.hasNext();) { URL url = i.next(); Digester digester = new Digester(spf.newSAXParser()); digester.setNamespaceAware(true); // XInclude digester.setRuleNamespaceURI(XIncludeFilter.XINCLUDE_NAMESPACE); digester.addCallMethod("faces-config/include", "add", 1); digester.addFactoryCreate("faces-config/include", URLCreationFactory.class); digester.addCallParam("faces-config/include", 0, 0); digester.push(url); digester.push(entries); digester.parse(url.openStream()); } return (URL[]) entries.toArray(new URL[0]); } } catch (ParserConfigurationException e) { throw new MojoExecutionException("Failed to parse master config", e); } catch (SAXException e) { throw new MojoExecutionException("Failed to parse master config", e); } catch (IOException e) { throw new MojoExecutionException("Failed to parse master config", e); } }
From source file:org.apache.myfaces.trinidadbuild.plugin.faces.parse.FacesConfigParser.java
static protected void addComponentDigesterRules(Digester digester, boolean withCreate) { digester.setRuleNamespaceURI("http://java.sun.com/xml/ns/javaee"); // faces-config/component // Only use if we're creating the component; turn this off // when we're simply including content if (withCreate) { // faces-config/component digester.addObjectCreate("faces-config/component", ComponentBean.class); digester.addBeanPropertySetter("faces-config/component/component-type", "componentType"); digester.addBeanPropertySetter("faces-config/component/component-class", "componentClass"); digester.addBeanPropertySetter("faces-config/component/js-component-class", "jsComponentClass"); digester.addBeanPropertySetter("faces-config/component/description"); digester.addSetNext("faces-config/component", "addComponent", ComponentBean.class.getName()); }//from w w w. j a v a 2 s.co m // faces-config/component/property digester.addObjectCreate("faces-config/component/property", PropertyBean.class); addComponentPropertyDigesterRules(digester); digester.addSetNext("faces-config/component/property", "addProperty", PropertyBean.class.getName()); // faces-config/component/facet digester.addObjectCreate("faces-config/component/facet", FacetBean.class); digester.addBeanPropertySetter("faces-config/component/facet/facet-name", "facetName"); digester.addBeanPropertySetter("faces-config/component/facet/description"); digester.addSetNext("faces-config/component/facet", "addFacet", FacetBean.class.getName()); // Maven Faces Plugin digester.setRuleNamespaceURI("http://myfaces.apache.org/maven-faces-plugin"); // faces-config/component/facet/facet-extension digester.addBeanPropertySetter("faces-config/component/facet/facet-extension/hidden"); // faces-config/component/facet/facet-extension/facet-metadata/accessibility-guideline digester.addCallMethod( "faces-config/component/facet/facet-extension/facet-metadata/accessibility-guideline", "addAccessibilityGuideline", 1); digester.addCallParam("faces-config/component/facet/facet-extension/facet-metadata/accessibility-guideline", 0); // faces-config/component/facet/example digester.addObjectCreate("faces-config/component/facet/example", ExampleBean.class); digester.addBeanPropertySetter("faces-config/component/facet/example/source-description", "sourceDescription"); digester.addBeanPropertySetter("faces-config/component/facet/example/source-code", "sourceCode"); digester.addSetNext("faces-config/component/facet/example", "addExample", ExampleBean.class.getName()); // faces-config/component/component-extension digester.addBeanPropertySetter("faces-config/component/component-extension/long-description", "longDescription"); digester.addBeanPropertySetter("faces-config/component/component-extension/component-family", "componentFamily"); digester.addBeanPropertySetter("faces-config/component/component-extension/component-supertype", "componentSupertype"); digester.addBeanPropertySetter("faces-config/component/component-extension/component-superclass", "componentSuperclass"); digester.addBeanPropertySetter("faces-config/component/component-extension/renderer-type", "rendererType"); digester.addBeanPropertySetter("faces-config/component/component-extension/naming-container", "namingContainer"); digester.addBeanPropertySetter("faces-config/component/component-extension/accepts-child-components", "children"); digester.addBeanPropertySetter("faces-config/component/component-extension/tag-class", "tagClass"); digester.addBeanPropertySetter("faces-config/component/component-extension/tag-superclass", "tagSuperclass"); digester.addBeanPropertySetter("faces-config/component/component-extension/tag-handler", "tagHandler"); digester.addBeanPropertySetter("faces-config/component/component-extension/implementation-type", "implementationType"); digester.addCallMethod("faces-config/component/component-extension/tag-class-modifier", "parseTagClassModifier", 1); digester.addCallParam("faces-config/component/component-extension/tag-class-modifier", 0); digester.addCallMethod("faces-config/component/component-extension/unsupported-agents", "parseUnsupportedAgents", 1); digester.addCallParam("faces-config/component/component-extension/unsupported-agents", 0); digester.addCallMethod("faces-config/component/component-extension/component-class-modifier", "parseComponentClassModifier", 1); digester.addCallParam("faces-config/component/component-extension/component-class-modifier", 0); digester.addRule("faces-config/component/component-extension/tag-name", new BeanPropertySetterRule("tagName")); digester.addBeanPropertySetter("faces-config/component/component-extension/uix2-local-name", "localName"); digester.addBeanPropertySetter("faces-config/component/component-extension/uix2-node-class", "nodeClass"); // faces-config/component/component-extension/accessibility-guideline digester.addCallMethod("faces-config/component/component-extension/accessibility-guideline", "addAccessibilityGuideline", 1); digester.addCallParam("faces-config/component/component-extension/accessibility-guideline", 0); // faces-config/component/component-extension/example digester.addObjectCreate("faces-config/component/component-extension/example", ExampleBean.class); digester.addBeanPropertySetter("faces-config/component/component-extension/example/source-description", "sourceDescription"); digester.addBeanPropertySetter("faces-config/component/component-extension/example/source-code", "sourceCode"); digester.addSetNext("faces-config/component/component-extension/example", "addExample", ExampleBean.class.getName()); // faces-config/component/component-extension/screenshot digester.addObjectCreate("faces-config/component/component-extension/screenshot", ScreenshotBean.class); digester.addBeanPropertySetter("faces-config/component/component-extension/screenshot/description", "description"); digester.addBeanPropertySetter("faces-config/component/component-extension/screenshot/image", "image"); digester.addSetNext("faces-config/component/component-extension/screenshot", "addScreenshot", ScreenshotBean.class.getName()); // faces-config/component/component-extension/event digester.addObjectCreate("faces-config/component/component-extension/event", EventRefBean.class); digester.addBeanPropertySetter("faces-config/component/component-extension/event/event-type", "eventType"); digester.addBeanPropertySetter("faces-config/component/component-extension/event/event-delivery-phase", "eventDeliveryPhases"); digester.addBeanPropertySetter("faces-config/component/component-extension/event/ignore-source-interface", "ignoreSourceInterface"); digester.addSetNext("faces-config/component/component-extension/event", "addEvent", EventRefBean.class.getName()); // jsr-276 metadata rules digester.setRuleNamespaceURI("http://java.sun.com/xml/ns/javaee/faces/design-time-metadata"); digester.addBeanPropertySetter( "faces-config/component/property/property-extension/property-metadata/required"); digester.addBeanPropertySetter( "faces-config/component/property/property-extension/property-metadata/value-expression", "valueExpression"); // faces-config/component/facet/facet-extension/facet-metadata/allowed-child-components digester.addCallMethod( "faces-config/component/facet/facet-extension/facet-metadata/allowed-child-components", "parseAllowedChildComponents", 1); digester.addCallParam( "faces-config/component/facet/facet-extension/facet-metadata/allowed-child-components", 0); // faces-config/component/component-extension/component-metadata/required-ancestor-contracts digester.addCallMethod( "faces-config/component/component-extension/component-metadata/required-ancestor-contracts", "parseRequiredAncestorContracts", 1); digester.addCallParam( "faces-config/component/component-extension/component-metadata/required-ancestor-contracts", 0); // faces-config/component/component-extension/component-metadata/satisfied-contracts digester.addCallMethod("faces-config/component/component-extension/component-metadata/satisfied-contracts", "parseSatisfiedContracts", 1); digester.addCallParam("faces-config/component/component-extension/component-metadata/satisfied-contracts", 0); // XInclude rules digester.setRuleNamespaceURI(XIncludeFilter.XINCLUDE_NAMESPACE); digester.addFactoryCreate("faces-config/component/include", ComponentIncludeFactory.class); digester.addFactoryCreate("faces-config/component/property/include", ComponentPropertyIncludeFactory.class); }