Author: gvanmatre
Date: Tue Sep 12 19:26:16 2006
New Revision: 442798
URL: http://svn.apache.org/viewvc?view=rev&rev=442798
Log:
The clay template prefix to define namespaces no longer need to be identical to
the prefix used to define the component definition (SHALE-279).
Modified:
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/JsfDefaultBuilder.java
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/chain/JsfDefaultBuilderRule.java
shale/framework/trunk/shale-clay/src/main/resources/org/apache/shale/clay/parser/builder/chain/shale-builder-config.xml
Modified:
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/JsfDefaultBuilder.java
URL:
http://svn.apache.org/viewvc/shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/JsfDefaultBuilder.java?view=diff&rev=442798&r1=442797&r2=442798
==============================================================================
---
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/JsfDefaultBuilder.java
(original)
+++
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/JsfDefaultBuilder.java
Tue Sep 12 19:26:16 2006
@@ -49,6 +49,33 @@
*/
private Tags tagsUtil = new Tags();
+ /**
+ * <p>Contains the namespace prefix that should be used to locate
+ * clay configurations. This allows the page to use any prefix
+ * but still find the config element.</p>
+ */
+ private String prefix = null;
+
+ /**
+ * <p>Returns the namespace prefix that will be added to the
+ * node name when resolving the clay config.</p>
+ *
+ * @return URI prefix
+ */
+ public String getPrefix() {
+ return prefix;
+ }
+
+ /**
+ * <p>Sets the namespace preix that will override the template
+ * nodeds qname.</p>
+ *
+ * @param prefix URI prefix
+ */
+ public void setPrefix(String prefix) {
+ this.prefix = prefix;
+ }
+
/**
* <p>Factory method that creates a [EMAIL PROTECTED] ElementBean} from a
[EMAIL PROTECTED] Node}.</p>
@@ -98,7 +125,11 @@
protected void addConverter(Node node, ElementBean target) {
ConverterBean targetConverter = new ConverterBean();
- String jsfid = getJsfid(node);
+ //make sure we have the correct jsfid based on the namespace prefix
+ Builder tmpBuilder = node.getBuilder();
+ ElementBean tmp = tmpBuilder.createElement(node);
+
+ String jsfid = tmp.getJsfid();
targetConverter.setJsfid(jsfid);
String converterId = (String) node.getAttributes().get("converterId");
@@ -158,7 +189,11 @@
protected void addValidator(Node node, ElementBean target) {
ValidatorBean targetValidator = new ValidatorBean();
- String jsfid = getJsfid(node);
+ //make sure we have the correct jsfid based on the namespace prefix
+ Builder tmpBuilder = node.getBuilder();
+ ElementBean tmp = tmpBuilder.createElement(node);
+
+ String jsfid = tmp.getJsfid();
targetValidator.setJsfid(jsfid);
String validatorId = (String) node.getAttributes().get("validatorId");
@@ -195,7 +230,11 @@
protected void addActionListener(Node node, ElementBean target) {
ActionListenerBean targetActionListener = new ActionListenerBean();
- String jsfid = getJsfid(node);
+ //make sure we have the correct jsfid based on the namespace prefix
+ Builder tmpBuilder = node.getBuilder();
+ ElementBean tmp = tmpBuilder.createElement(node);
+
+ String jsfid = tmp.getJsfid();
targetActionListener.setJsfid(jsfid);
String type = (String) node.getAttributes().get("type");
@@ -220,7 +259,11 @@
protected void addValueChangeListener(Node node, ElementBean target) {
ValueChangeListenerBean targetValueChangeListener = new
ValueChangeListenerBean();
- String jsfid = getJsfid(node);
+ //make sure we have the correct jsfid based on the namespace prefix
+ Builder tmpBuilder = node.getBuilder();
+ ElementBean tmp = tmpBuilder.createElement(node);
+
+ String jsfid = tmp.getJsfid();
targetValueChangeListener.setJsfid(jsfid);
String type = (String) node.getAttributes().get("type");
@@ -383,9 +426,12 @@
} else {
jsfid.append(node.getName());
- if (node.getQname() != null) {
+ //override the node prefix with the one
+ //assigned to the uri. the prefix will
+ //match the config beans
+ if (getPrefix() != null) {
jsfid.insert(0, ':');
- jsfid.insert(0, node.getQname());
+ jsfid.insert(0, getPrefix());
}
}
Modified:
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/chain/JsfDefaultBuilderRule.java
URL:
http://svn.apache.org/viewvc/shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/chain/JsfDefaultBuilderRule.java?view=diff&rev=442798&r1=442797&r2=442798
==============================================================================
---
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/chain/JsfDefaultBuilderRule.java
(original)
+++
shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/parser/builder/chain/JsfDefaultBuilderRule.java
Tue Sep 12 19:26:16 2006
@@ -37,7 +37,7 @@
/**
* <p>Generic [EMAIL PROTECTED] Builder} that handles JSP style of
markup's.</p>
*/
- private static final Builder[] BUILDERS = {new JsfDefaultBuilder()};
+ private final JsfDefaultBuilder builder = new JsfDefaultBuilder();
/**
* <p>Assigns handling of the markup to [EMAIL PROTECTED]
org.apache.shale.clay.parser.builder.JsfDefaultBuilder}
@@ -49,9 +49,29 @@
public boolean execute(Context context) {
BuilderRuleContext builderRuleContext = (BuilderRuleContext) context;
- builderRuleContext.setBuilder(BUILDERS[0]);
+ builderRuleContext.setBuilder(builder);
return true;
+ }
+
+ /**
+ * <p>Returns the namespace prefix that will be added to the
+ * node name when resolving the clay config.</p>
+ *
+ * @return URI prefix
+ */
+ public String getPrefix() {
+ return builder.getPrefix();
+ }
+
+ /**
+ * <p>Sets the namespace preix that will override the template
+ * nodeds qname.</p>
+ *
+ * @param prefix URI prefix
+ */
+ public void setPrefix(String prefix) {
+ builder.setPrefix(prefix);
}
}
Modified:
shale/framework/trunk/shale-clay/src/main/resources/org/apache/shale/clay/parser/builder/chain/shale-builder-config.xml
URL:
http://svn.apache.org/viewvc/shale/framework/trunk/shale-clay/src/main/resources/org/apache/shale/clay/parser/builder/chain/shale-builder-config.xml?view=diff&rev=442798&r1=442797&r2=442798
==============================================================================
---
shale/framework/trunk/shale-clay/src/main/resources/org/apache/shale/clay/parser/builder/chain/shale-builder-config.xml
(original)
+++
shale/framework/trunk/shale-clay/src/main/resources/org/apache/shale/clay/parser/builder/chain/shale-builder-config.xml
Tue Sep 12 19:26:16 2006
@@ -40,15 +40,15 @@
</chain>
<chain name="http://java.sun.com/jsf/core">
- <command
className="org.apache.shale.clay.parser.builder.chain.JsfDefaultBuilderRule"/>
+ <command
className="org.apache.shale.clay.parser.builder.chain.JsfDefaultBuilderRule"
prefix="f"/>
</chain>
<chain name="http://java.sun.com/jsf/html">
- <command
className="org.apache.shale.clay.parser.builder.chain.JsfDefaultBuilderRule"/>
+ <command
className="org.apache.shale.clay.parser.builder.chain.JsfDefaultBuilderRule"
prefix="h"/>
</chain>
<chain name="http://shale.apache.org/core">
- <command
className="org.apache.shale.clay.parser.builder.chain.JsfDefaultBuilderRule"/>
+ <command
className="org.apache.shale.clay.parser.builder.chain.JsfDefaultBuilderRule"
prefix="s"/>
</chain>
<chain name="http://shale.apache.org/xml/clay">
@@ -56,11 +56,11 @@
</chain>
<chain name="http://shale.apache.org/clay">
- <command
className="org.apache.shale.clay.parser.builder.chain.JsfDefaultBuilderRule"/>
+ <command
className="org.apache.shale.clay.parser.builder.chain.JsfDefaultBuilderRule"
prefix="clay"/>
</chain>
<chain name="http://myfaces.apache.org/tomahawk">
- <command
className="org.apache.shale.clay.parser.builder.chain.JsfDefaultBuilderRule"/>
+ <command
className="org.apache.shale.clay.parser.builder.chain.JsfDefaultBuilderRule"
prefix="t"/>
</chain>