cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/tagplugin TagPlugin.java TagPluginContext.java TagPluginFactory.java

2002-12-03 Thread kinman
kinman  2002/12/03 16:48:43

  Modified:jasper2/src/share/org/apache/jasper
EmbededServletOptions.java JspC.java Options.java
   jasper2/src/share/org/apache/jasper/compiler Compiler.java
Node.java TagPluginManager.java
   jasper2/src/share/org/apache/jasper/compiler/tagplugin
TagPlugin.java TagPluginContext.java
  Removed: jasper2/src/share/org/apache/jasper/compiler/tagplugin
TagPluginFactory.java
  Log:
  - First cut in defining the tag plugin interface and an implementation
of framework in Jasper.
  
WARNING: This is still experimental and subject to change.
  
  Revision  ChangesPath
  1.14  +15 -3 
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/EmbededServletOptions.java
  
  Index: EmbededServletOptions.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/EmbededServletOptions.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- EmbededServletOptions.java28 Nov 2002 04:18:07 -  1.13
  +++ EmbededServletOptions.java4 Dec 2002 00:48:42 -   1.14
  @@ -70,6 +70,7 @@
   
   import org.apache.jasper.compiler.TldLocationsCache;
   import org.apache.jasper.compiler.JspConfig;
  +import org.apache.jasper.compiler.TagPluginManager;
   import org.apache.jasper.xmlparser.ParserUtils;
   
   import java.util.*;
  @@ -175,6 +176,11 @@
   private JspConfig jspConfig = null;
   
   /**
  + * TagPluginManager
  + */
  +private TagPluginManager tagPluginManager = null;
  +
  +/**
* Java platform encoding to generate the JSP
* page servlet.
*/
  @@ -301,6 +307,10 @@
return jspConfig;
   }
   
  +public TagPluginManager getTagPluginManager() {
  + return tagPluginManager;
  +}
  +
   /**
* Create an EmbededServletOptions object using data available from
* ServletConfig and ServletContext. 
  @@ -475,6 +485,8 @@
// Setup the jsp config info for this web app.
jspConfig = new JspConfig(context);
   
  + // Create a Tag plugin instance
  + tagPluginManager = new TagPluginManager(context);
   }
   
   }
  
  
  
  1.19  +15 -6 
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/JspC.java
  
  Index: JspC.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/JspC.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- JspC.java 16 Nov 2002 04:20:09 -  1.18
  +++ JspC.java 4 Dec 2002 00:48:42 -   1.19
  @@ -74,6 +74,8 @@
   import org.apache.jasper.logging.Logger;
   import org.apache.jasper.logging.JasperLogger;
   import org.apache.jasper.compiler.JspConfig;
  +import org.apache.jasper.compiler.JspConfig;
  +import org.apache.jasper.compiler.TagPluginManager;
   
   /**
* Shell for the jspc compiler.  Handles all options associated with the 
  @@ -197,6 +199,9 @@
*/
   private TldLocationsCache tldLocationsCache = null;
   
  +private JspConfig jspConfig = null;
  +private TagPluginManager tagPluginManager = null;
  +
   private boolean listErrors = false;
   private boolean showSuccess = false;
   
  @@ -737,6 +742,8 @@
   } catch (MalformedURLException me) {
   System.out.println(** + me);
   }
  + jspConfig = new JspConfig(context);
  + tagPluginManager = new TagPluginManager(context);
   }
   
   
  @@ -945,10 +952,12 @@
* Obtain JSP configuration informantion specified in web.xml.
*/
   public JspConfig getJspConfig() {
  -// XXX - Stubbed out so Jasper compiles.
  -initServletContext();
  -return new JspConfig( context );
  + return jspConfig;
   }
  +
  +public TagPluginManager getTagPluginManager() {
  +return tagPluginManager;
  +}
   
   }
   
  
  
  
  1.10  +9 -3  
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/Options.java
  
  Index: Options.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/Options.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Options.java  16 Nov 2002 04:20:09 -  1.9
  +++ Options.java  4 Dec 2002 00:48:42 -   1.10
  @@ -68,6 +68,7 @@
   
   import org.apache.jasper.compiler.TldLocationsCache;
   import org.apache.jasper.compiler.JspConfig;
  +import org.apache.jasper.compiler.TagPluginManager;
   
   /**
* A class to hold all init parameters specific to the JSP engine. 
  @@ -172,4 +173,9 @@
* Obtain JSP configuration informantion 

cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/tagplugin TagPlugin.java TagPluginContext.java TagPluginFactory.java

2002-11-22 Thread kinman
kinman  2002/11/22 17:36:49

  Modified:jasper2/src/share/org/apache/jasper/compiler Generator.java
Node.java
  Added:   jasper2/src/share/org/apache/jasper/compiler
TagPluginManager.java
   jasper2/src/share/org/apache/jasper/compiler/tagplugin
TagPlugin.java TagPluginContext.java
TagPluginFactory.java
  Log:
  - Define interfaces for tag plugins.
  - Modify Generator to prepare attributes that may be access from plugins.
  
  Revision  ChangesPath
  1.130 +83 -67
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java
  
  Index: Generator.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v
  retrieving revision 1.129
  retrieving revision 1.130
  diff -u -r1.129 -r1.130
  --- Generator.java22 Nov 2002 23:47:15 -  1.129
  +++ Generator.java23 Nov 2002 01:36:49 -  1.130
  @@ -1558,6 +1558,8 @@
   generateLocalVariables( out, n );
   }
   
  + prepareCustomAttributes(n, handlerInfo);
  +
if (n.implementsSimpleTag()) {
generateCustomDoTag(n, handlerInfo, tagHandlerVar);
} else {
  @@ -1879,6 +1881,69 @@
}
}
   
  + /**
  +  * Preprocess the attributes for the custom tag, except fragment
  +  * attributes.
  +  */
  + private void prepareCustomAttributes(Node.CustomTag n,
  +  TagHandlerInfo handlerInfo)
  +throws JasperException {
  +
  +Node.JspAttribute[] attrs = n.getJspAttributes();
  +for (int i=0; iattrs.length; i++) {
  +String attrValue = attrs[i].getValue();
  +if (attrValue == null) {
  +if (attrs[i].isNamedAttribute() ) {
  +if (!n.checkIfAttributeIsJspFragment(
  + attrs[i].getName())) {
  +attrValue = generateNamedAttributeValue(
  +attrs[i].getNamedAttributeNode() );
  +}
  +}
  +else {
  +continue;
  +}
  +}
  +String attrName = attrs[i].getName();
  +
  +Method m = null;
  +Class[] c = null;
  +if (attrs[i].isDynamic()) {
  +c = OBJECT_CLASS;
  +} else {
  +m = handlerInfo.getSetterMethod(attrName);
  +if (m == null) {
  +err.jspError(n, jsp.error.unable.to_find_method,
  + attrName);
  +}
  +c = m.getParameterTypes();
  +// XXX assert(c.length  0)
  +}
  +
  +if (attrs[i].isExpression()) {
  +// Do nothing
  +} else if (attrs[i].isNamedAttribute()) {
  +if (!n.checkIfAttributeIsJspFragment(attrs[i].getName())
  + !attrs[i].isDynamic()) {
  +attrValue = convertString(
  +c[0], attrValue, attrName,
  +handlerInfo.getPropertyEditorClass(attrName),
  +false);
  +}
  +} else if (attrs[i].isELInterpreterInput()) {
  +// run attrValue through the expression interpreter
  +attrValue = JspUtil.interpreterCall(this.isTagFile,
  +attrValue, c[0], n.getPrefix(), _jspx_fnmap );
  +} else {
  +attrValue = convertString(
  +c[0], attrValue, attrName,
  +handlerInfo.getPropertyEditorClass(attrName),
  +true);
  +}
  + attrs[i].setProcessedValue(attrValue);
  + }
  + }
  +
private void generateCustomStart(Node.CustomTag n,
 TagHandlerInfo handlerInfo,
 String tagHandlerVar,
  @@ -2384,70 +2449,20 @@
out.println(););
}
   
  - Node.JspAttribute[] attrs = n.getJspAttributes();
  - for (int i=0; iattrs.length; i++) {
  - String attrValue = attrs[i].getValue();
  - if (attrValue == null) {
  -if( attrs[i].isNamedAttribute() ) {
  -if( n.checkIfAttributeIsJspFragment( 
  -attrs[i].getName() ) ) 
  -{
  -