You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@apache.org on 2001/05/28 01:23:16 UTC
cvs commit: jakarta-tomcat-jasper/jasper34/generator/org/apache/jasper34/core Constants.java JspCompilationContext.java Options.java
costin 01/05/27 16:23:16
Added: jasper34/generator/org/apache/jasper34/core Constants.java
JspCompilationContext.java Options.java
Log:
Added the common interfaces. This package will be the entry point to
jasper generator ( the current one and any future design )
Revision Changes Path
1.1 jakarta-tomcat-jasper/jasper34/generator/org/apache/jasper34/core/Constants.java
Index: Constants.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*
*/
package org.apache.jasper34.core;
import java.util.ResourceBundle;
import java.util.MissingResourceException;
import java.text.MessageFormat;
import org.apache.tomcat.util.log.Log;
import org.apache.tomcat.util.res.StringManager;
/**
* Some constants and other global data that are used by the compiler
* and the runtime.
*
* @author Anil K. Vijendran
* @author Harish Prabandham
*/
public class Constants {
public static String JSP_RUNTIME_PACKAGE =
"org.apache.jasper.runtime";
/**
* The base class of the generated servlets.
*/
public static String JSP_SERVLET_BASE =
JSP_RUNTIME_PACKAGE + ".HttpJspBase";
/**
* _jspService is the name of the method that is called by
* HttpJspBase.service(). This is where most of the code generated
* from JSPs go.
*/
public static final String SERVICE_METHOD_NAME = "_jspService";
/**
* Default servlet content type.
*/
public static final String SERVLET_CONTENT_TYPE = "text/html";
/**
* These classes/packages are automatically imported by the
* generated code.
*
* FIXME: Need to trim this to what is there in PR2 and verify
* with all our generators -akv.
*/
public static final String[] STANDARD_IMPORTS = {
"javax.servlet.*",
"javax.servlet.http.*",
"javax.servlet.jsp.*",
// This one is not in spec, but a lot of tests depend on it.
// The code is fixed to use explicit deps, when we test
// the watchdog tests we can remove this
"javax.servlet.jsp.tagext.*"
};
// "javax.servlet.jsp.tagext.*",
// "java.io.PrintWriter", "java.io.IOException", "java.io.FileInputStream",
// "java.io.ObjectInputStream", "java.util.Vector",
// "org.apache.jasper.runtime.*", "java.beans.*",
// "org.apache.jasper.JasperException"
// };
/**
* ServletContext attribute for classpath. This is tomcat specific.
* Other servlet engines can choose to have this attribute if they
* want to have this JSP engine running on them.
*/
public static final String SERVLET_CLASSPATH = "org.apache.tomcat.jsp_classpath";
/**
* ServletContext attribute for classpath. This is tomcat specific.
* Other servlet engines can choose to have this attribute if they
* want to have this JSP engine running on them.
*/
public static final String SERVLET_CLASS_LOADER = "org.apache.tomcat.classloader";
/**
* Default size of the JSP buffer.
*/
public static final int K = 1024;
public static final int DEFAULT_BUFFER_SIZE = 8*K;
/**
* The query parameter that causes the JSP engine to just
* pregenerated the servlet but not invoke it.
*/
public static final String PRECOMPILE = "jsp_precompile";
/**
* Servlet context and request attributes that the JSP engine
* uses.
*/
public static final String INC_REQUEST_URI = "javax.servlet.include.request_uri";
public static final String INC_SERVLET_PATH = "javax.servlet.include.servlet_path";
public static final String TMP_DIR = "javax.servlet.context.tempdir";
/**
* ProtectionDomain to use for JspLoader defineClass() for current
* Context when using a SecurityManager.
*/
public static final String ATTRIB_JSP_ProtectionDomain = "tomcat.context.jsp.protection_domain";
/**
* A token which is embedded in file names of the generated
* servlet.
*/
public static final String JSP_TOKEN = "_jsp_";
/**
* ID and location of the DTD for tag library descriptors.
*/
public static final String
TAGLIB_DTD_PUBLIC_ID = "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN";
public static final String
TAGLIB_DTD_RESOURCE = "/org/apache/jasper/resources/web-jsptaglib_1_1.dtd";
/**
* ID and location of the DTD for web-app deployment descriptors.
*/
public static final String
WEBAPP_DTD_PUBLIC_ID = "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN";
public static final String
WEBAPP_DTD_RESOURCE = "/org/apache/jasper/resources/web.dtd";
/**
* Default URLs to download the pluging for Netscape and IE.
*/
public static final String NS_PLUGIN_URL =
"http://java.sun.com/products/plugin/";
public static final String IE_PLUGIN_URL =
"http://java.sun.com/products/plugin/1.2.2/jinstall-1_2_2-win.cab#Version=1,2,2,0";
/**
* This is where all our error messages and such are stored.
*/
private static StringManager resources;
private static void initResources() {
resources = StringManager.getManager(
"org.apache.jasper.resources");
}
/**
* Get hold of a "message" or any string from our resources
* database.
*/
public static final String getString(String key) {
return getString(key, null);
}
/**
* Format the string that is looked up using "key" using "args".
*/
public static final String getString(String key, Object[] args) {
if(resources==null){
initResources();
}
return resources.getString(key,args);
}
/**
* Print a message into standard error with a certain verbosity
* level.
*
* @param key is used to look up the text for the message (using
* getString()).
* @param verbosityLevel is used to determine if this output is
* appropriate for the current verbosity
* level.
*/
public static final void message(String key, int verbosityLevel) {
message(key, null, verbosityLevel);
}
/**
* Print a message into standard error with a certain verbosity
* level after formatting it using "args".
*
* @param key is used to look up the message.
* @param args is used to format the message.
* @param verbosityLevel is used to determine if this output is
* appropriate for the current verbosity
* level.
*/
public static final void message(String key, Object[] args, int verbosityLevel) {
if (jasperLog == null)
jasperLog = Log.getLog("JASPER_LOG", null);
if (jasperLog != null){
String msg = getString(key,args);
msg=(msg==null)?key:msg;
jasperLog.log(msg, verbosityLevel);
}
}
public static Log jasperLog = null;
}
1.1 jakarta-tomcat-jasper/jasper34/generator/org/apache/jasper34/core/JspCompilationContext.java
Index: JspCompilationContext.java
===================================================================
/*
* $Header: /home/cvs/jakarta-tomcat-jasper/jasper34/generator/org/apache/jasper34/core/JspCompilationContext.java,v 1.1 2001/05/27 23:23:16 costin Exp $
* $Revision: 1.1 $
* $Date: 2001/05/27 23:23:16 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.jasper34.core;
import org.apache.jasper34.generator.*;
// import org.apache.jasper.compiler.ServletWriter;
// //import org.apache.jasper.runtime.JspLoader;
// import org.apache.jasper.compiler.TagLibraries;
import java.io.IOException;
import org.apache.jasper34.generator.Compiler;
import org.apache.jasper34.runtime.JasperException;
/**
* A place holder for various things that are used through out the JSP
* engine. This is a per-request/per-context data structure. Some of
* the instance variables are set at different points.
*
* JspLoader creates this object and passes this off to the "compiler"
* subsystem, which then initializes the rest of the variables.
*
* @author Anil K. Vijendran
* @author Harish Prabandham
*/
public interface JspCompilationContext {
/**
* The classpath that is passed off to the Java compiler.
*/
public String getClassPath();
/**
* Get the input reader for the JSP text.
*/
public JspReader getReader();
/**
* Where is the servlet being generated?
*/
public ServletWriter getWriter();
/**
* What class loader to use for loading classes while compiling
* this JSP? I don't think this is used right now -- akv.
*/
public ClassLoader getClassLoader();
/** Add a jar to the classpath used by the loader
*/
public void addJar( String jar ) throws IOException ;
/**
* Are we processing something that has been declared as an
* errorpage?
*/
public boolean isErrorPage();
/**
* What is the scratch directory we are generating code into?
* FIXME: In some places this is called scratchDir and in some
* other places it is called outputDir.
*/
public String getOutputDir();
/**
* Path of the JSP URI. Note that this is not a file name. This is
* the context rooted URI of the JSP file.
*/
public String getJspFile();
/**
* Just the class name (does not include package name) of the
* generated class.
*/
public String getServletClassName();
/**
* The package name into which the servlet class is generated.
*/
public String getServletPackageName();
/**
* Utility method to get the full class name from the package and
* class name.
*/
public String getFullClassName();
/**
* Full path name of the Java file into which the servlet is being
* generated.
*/
public String getServletJavaFileName();
/**
* Are we keeping generated code around?
*/
public boolean keepGenerated();
/**
* What's the content type of this JSP? Content type includes
* content type and encoding.
*/
public String getContentType();
/**
* Get hold of the Options object for this context.
*/
public Options getOptions();
public void setContentType(String contentType);
public void setReader(JspReader reader);
public void setWriter(ServletWriter writer);
public void setServletClassName(String servletClassName);
public void setServletPackageName(String servletPackageName);
public void setServletJavaFileName(String servletJavaFileName);
public void setErrorPage(boolean isErrPage);
/**
* Create a "Compiler" object based on some init param data. This
* is not done yet. Right now we're just hardcoding the actual
* compilers that are created.
*/
public Compiler createCompiler() throws JasperException;
/**
* Get the full value of a URI relative to this compilations context
*/
public String resolveRelativeUri(String uri);
/**
* Gets a resource as a stream, relative to the meanings of this
* context's implementation.
*@returns a null if the resource cannot be found or represented
* as an InputStream.
*/
public java.io.InputStream getResourceAsStream(String res);
/**
* Gets the actual path of a URI relative to the context of
* the compilation.
*/
public String getRealPath(String path);
}
1.1 jakarta-tomcat-jasper/jasper34/generator/org/apache/jasper34/core/Options.java
Index: Options.java
===================================================================
/*
* $Header: /home/cvs/jakarta-tomcat-jasper/jasper34/generator/org/apache/jasper34/core/Options.java,v 1.1 2001/05/27 23:23:16 costin Exp $
* $Revision: 1.1 $
* $Date: 2001/05/27 23:23:16 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.jasper34.core;
import java.io.File;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
/**
* A class to hold all init parameters specific to the JSP engine.
*
* @author Anil K. Vijendran
* @author Hans Bergsten
*/
public interface Options {
/**
* Are we keeping generated code around?
*/
public boolean getKeepGenerated();
/**
* Are we supporting large files?
*/
public boolean getLargeFile();
/**
* Are we supporting HTML mapped servlets?
*/
public boolean getMappedFile();
/**
* Should errors be sent to client or thrown into stderr?
*/
public boolean getSendErrorToClient();
/**
* Should we include debug information in compiled class?
*/
public boolean getClassDebugInfo();
/**
* Class ID for use in the plugin tag when the browser is IE.
*/
public String getIeClassId();
/**
* What is my scratch dir?
*/
public File getScratchDir();
/**
* What classpath should I use while compiling the servlets
* generated from JSP files?
*/
public String getClassPath();
/**
* What compiler plugin should I use to compile the servlets
* generated from JSP files?
*/
public Class getJspCompilerPlugin();
/**
* Path of the compiler to use for compiling JSP pages.
*/
public String getJspCompilerPath();
/**
* ProtectionDomain for this JSP Context when using a SecurityManager
*/
public Object getProtectionDomain();
/**
* Java platform encoding to generate the JSP
* page servlet.
*/
public String getJavaEncoding();
}