You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ja...@apache.org on 2006/04/09 23:14:01 UTC
svn commit: r392836 [6/6] - in /geronimo/sandbox/servlet-2.5: etc/
modules/j2ee-schema/ modules/j2ee-schema/src/catalog/
modules/j2ee-schema/src/conf/ modules/j2ee-schema/src/javaee_5schema/
modules/j2ee/src/java/org/apache/geronimo/j2ee/j2eeobjectname...
Added: geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/web-jsptaglibrary_2_1.xsd
URL: http://svn.apache.org/viewcvs/geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/web-jsptaglibrary_2_1.xsd?rev=392836&view=auto
==============================================================================
--- geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/web-jsptaglibrary_2_1.xsd (added)
+++ geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/web-jsptaglibrary_2_1.xsd Sun Apr 9 14:13:57 2006
@@ -0,0 +1,1143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema
+ targetNamespace="http://java.sun.com/xml/ns/javaee"
+ xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified"
+ version="2.1">
+
+ <xsd:annotation>
+ <xsd:documentation>
+ @(#)web-jsptaglibrary_2_1.xsds 1.1
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Copyright 2003-2006 Sun Microsystems, Inc.
+ 4150 Network Circle
+ Santa Clara, California 95054
+ U.S.A
+ All rights reserved.
+
+ Sun Microsystems, Inc. has intellectual property rights
+ relating to technology described in this document. In
+ particular, and without limitation, these intellectual
+ property rights may include one or more of the U.S. patents
+ listed at http://www.sun.com/patents and one or more
+ additional patents or pending patent applications in the
+ U.S. and other countries.
+
+ This document and the technology which it describes are
+ distributed under licenses restricting their use, copying,
+ distribution, and decompilation. No part of this document
+ may be reproduced in any form by any means without prior
+ written authorization of Sun and its licensors, if any.
+
+ Third-party software, including font technology, is
+ copyrighted and licensed from Sun suppliers.
+
+ Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+ JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+ Cup logo are trademarks or registered trademarks of Sun
+ Microsystems, Inc. in the U.S. and other countries.
+
+ Federal Acquisitions: Commercial Software - Government Users
+ Subject to Standard License Terms and Conditions.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ This is the XML Schema for the JSP Taglibrary
+ descriptor. All Taglibrary descriptors must
+ indicate the tag library schema by using the Taglibrary
+ namespace:
+
+ http://java.sun.com/xml/ns/javaee
+
+ and by indicating the version of the schema by
+ using the version element as shown below:
+
+ <taglib xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="..."
+ version="2.1">
+ ...
+ </taglib>
+
+ The instance documents may indicate the published
+ version of the schema using xsi:schemaLocation attribute
+ for Java EE namespace with the following location:
+
+ http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:include schemaLocation="javaee_5.xsd"/>
+
+
+<!-- **************************************************** -->
+
+ <xsd:element name="taglib" type="javaee:tldTaglibType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The taglib tag is the document root.
+ The definition of taglib is provided
+ by the tldTaglibType.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:unique name="tag-name-uniqueness">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The taglib element contains, among other things, tag and
+ tag-file elements.
+ The name subelements of these elements must each be unique.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:selector xpath="javaee:tag|javaee:tag-file"/>
+ <xsd:field xpath="javaee:name"/>
+ </xsd:unique>
+
+ <xsd:unique name="function-name-uniqueness">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The taglib element contains function elements.
+ The name subelements of these elements must each be unique.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:selector xpath="javaee:function"/>
+ <xsd:field xpath="javaee:name"/>
+ </xsd:unique>
+
+ </xsd:element>
+
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="body-contentType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Specifies the type of body that is valid for a tag.
+ This value is used by the JSP container to validate
+ that a tag invocation has the correct body syntax and
+ by page composition tools to assist the page author
+ in providing a valid tag body.
+
+ There are currently four values specified:
+
+ tagdependent The body of the tag is interpreted by the tag
+ implementation itself, and is most likely
+ in a different "language", e.g embedded SQL
+ statements.
+
+ JSP The body of the tag contains nested JSP
+ syntax.
+
+ empty The body must be empty
+
+ scriptless The body accepts only template text, EL
+ Expressions, and JSP action elements. No
+ scripting elements are allowed.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string">
+ <xsd:enumeration value="tagdependent"/>
+ <xsd:enumeration value="JSP"/>
+ <xsd:enumeration value="empty"/>
+ <xsd:enumeration value="scriptless"/>
+ </xsd:restriction>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="extensibleType" abstract="true">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The extensibleType is an abstract base type that is used to
+ define the type of extension-elements. Instance documents
+ must substitute a known type to define the extension by
+ using xsi:type attribute to define the actual type of
+ extension-elements.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="functionType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The function element is used to provide information on each
+ function in the tag library that is to be exposed to the EL.
+
+ The function element may have several subelements defining:
+
+ description Optional tag-specific information
+
+ display-name A short name that is intended to be
+ displayed by tools
+
+ icon Optional icon element that can be used
+ by tools
+
+ name A unique name for this function
+
+ function-class Provides the name of the Java class that
+ implements the function
+
+ function-signature Provides the signature, as in the Java
+ Language Specification, of the Java
+ method that is to be used to implement
+ the function.
+
+ example Optional informal description of an
+ example of a use of this function
+
+ function-extension Zero or more extensions that provide extra
+ information about this function, for tool
+ consumption
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:group ref="javaee:descriptionGroup"/>
+ <xsd:element name="name"
+ type="javaee:tld-canonical-nameType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ A unique name for this function.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="function-class"
+ type="javaee:fully-qualified-classType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Provides the fully-qualified class name of the Java
+ class containing the static method that implements
+ the function.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ </xsd:element>
+ <xsd:element name="function-signature"
+ type="javaee:string">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Provides the signature, of the static Java method that is
+ to be used to implement the function. The syntax of the
+ function-signature element is as follows:
+
+ FunctionSignature ::= ReturnType S MethodName S?
+ '(' S? Parameters? S? ')'
+
+ ReturnType ::= Type
+
+ MethodName ::= Identifier
+
+ Parameters ::= Parameter
+ | ( Parameter S? ',' S? Parameters )
+
+ Parameter ::= Type
+
+ Where:
+
+ * Type is a basic type or a fully qualified
+ Java class name (including package name),
+ as per the 'Type' production in the Java
+ Language Specification, Second Edition,
+ Chapter 18.
+
+ * Identifier is a Java identifier, as per
+ the 'Identifier' production in the Java
+ Language Specification, Second
+ Edition, Chapter 18.
+
+ Example:
+
+ java.lang.String nickName( java.lang.String, int )
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ </xsd:element>
+ <xsd:element name="example"
+ type="javaee:xsdStringType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The example element contains an informal description
+ of an example of the use of this function.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ </xsd:element>
+ <xsd:element name="function-extension"
+ type="javaee:tld-extensionType"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Function extensions are for tool use only and must not
+ affect the behavior of a container.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="tagFileType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines an action in this tag library that is implemented
+ as a .tag file.
+
+ The tag-file element has two required subelements:
+
+ description Optional tag-specific information
+
+ display-name A short name that is intended to be
+ displayed by tools
+
+ icon Optional icon element that can be used
+ by tools
+
+ name The unique action name
+
+ path Where to find the .tag file implementing this
+ action, relative to the root of the web
+ application or the root of the JAR file for a
+ tag library packaged in a JAR. This must
+ begin with /WEB-INF/tags if the .tag file
+ resides in the WAR, or /META-INF/tags if the
+ .tag file resides in a JAR.
+
+ example Optional informal description of an
+ example of a use of this tag
+
+ tag-extension Zero or more extensions that provide extra
+ information about this tag, for tool
+ consumption
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:group ref="javaee:descriptionGroup"/>
+ <xsd:element name="name"
+ type="javaee:tld-canonical-nameType"/>
+ <xsd:element name="path"
+ type="javaee:pathType"/>
+ <xsd:element name="example"
+ type="javaee:xsdStringType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The example element contains an informal description
+ of an example of the use of a tag.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ </xsd:element>
+ <xsd:element name="tag-extension"
+ type="javaee:tld-extensionType"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Tag extensions are for tool use only and must not affect
+ the behavior of a container.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="tagType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The tag defines a unique tag in this tag library. It has one
+ attribute, id.
+
+ The tag element may have several subelements defining:
+
+ description Optional tag-specific information
+
+ display-name A short name that is intended to be
+ displayed by tools
+
+ icon Optional icon element that can be used
+ by tools
+
+ name The unique action name
+
+ tag-class The tag handler class implementing
+ javax.servlet.jsp.tagext.JspTag
+
+ tei-class An optional subclass of
+ javax.servlet.jsp.tagext.TagExtraInfo
+
+ body-content The body content type
+
+ variable Optional scripting variable information
+
+ attribute All attributes of this action that are
+ evaluated prior to invocation.
+
+ dynamic-attributes Whether this tag supports additional
+ attributes with dynamic names. If
+ true, the tag-class must implement the
+ javax.servlet.jsp.tagext.DynamicAttributes
+ interface. Defaults to false.
+
+ example Optional informal description of an
+ example of a use of this tag
+
+ tag-extension Zero or more extensions that provide extra
+ information about this tag, for tool
+ consumption
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:group ref="javaee:descriptionGroup"/>
+ <xsd:element name="name"
+ type="javaee:tld-canonical-nameType"/>
+ <xsd:element name="tag-class"
+ type="javaee:fully-qualified-classType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines the subclass of javax.serlvet.jsp.tagext.JspTag
+ that implements the request time semantics for
+ this tag. (required)
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ </xsd:element>
+ <xsd:element name="tei-class"
+ type="javaee:fully-qualified-classType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines the subclass of javax.servlet.jsp.tagext.TagExtraInfo
+ for this tag. (optional)
+
+ If this is not given, the class is not consulted at
+ translation time.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="body-content"
+ type="javaee:body-contentType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Specifies the format for the body of this tag.
+ The default in JSP 1.2 was "JSP" but because this
+ is an invalid setting for simple tag handlers, there
+ is no longer a default in JSP 2.0. A reasonable
+ default for simple tag handlers is "scriptless" if
+ the tag can have a body.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="variable"
+ type="javaee:variableType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="attribute"
+ type="javaee:tld-attributeType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="dynamic-attributes"
+ type="javaee:generic-booleanType"
+ minOccurs="0"/>
+ <xsd:element name="example"
+ type="javaee:xsdStringType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The example element contains an informal description
+ of an example of the use of a tag.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ </xsd:element>
+ <xsd:element name="tag-extension"
+ type="javaee:tld-extensionType"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Tag extensions are for tool use only and must not affect
+ the behavior of a container.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="tld-attributeType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The attribute element defines an attribute for the nesting
+ tag. The attribute element may have several subelements
+ defining:
+
+ description a description of the attribute
+
+ name the name of the attribute
+
+ required whether the attribute is required or
+ optional
+
+ rtexprvalue whether the attribute is a runtime attribute
+
+ type the type of the attributes
+
+ fragment whether this attribute is a fragment
+
+ deferred-value present if this attribute is to be parsed as a
+ javax.el.ValueExpression
+
+ deferred-method present if this attribute is to be parsed as a
+ javax.el.MethodExpression
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="name"
+ type="javaee:java-identifierType"/>
+ <xsd:element name="required"
+ type="javaee:generic-booleanType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines if the nesting attribute is required or
+ optional.
+
+ If not present then the default is "false", i.e
+ the attribute is optional.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:choice>
+ <xsd:sequence>
+ <xsd:sequence minOccurs="0">
+ <xsd:element name="rtexprvalue"
+ type="javaee:generic-booleanType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines if the nesting attribute can have scriptlet
+ expressions as a value, i.e the value of the
+ attribute may be dynamically calculated at request
+ time, as opposed to a static value determined at
+ translation time.
+ If not present then the default is "false", i.e the
+ attribute has a static value
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="type"
+ type="javaee:fully-qualified-classType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines the Java type of the attributes value.
+ If this element is omitted, the expected type is
+ assumed to be "java.lang.Object".
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+
+ <xsd:choice>
+ <xsd:element name="deferred-value"
+ type="javaee:tld-deferred-valueType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Present if the value for this attribute is to be
+ passed to the tag handler as a
+ javax.el.ValueExpression. This allows for deferred
+ evaluation of EL expressions. An optional subelement
+ will contain the expected type that the value will
+ be coerced to after evaluation of the expression.
+ The type defaults to Object if one is not provided.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="deferred-method"
+ type="javaee:tld-deferred-methodType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Present if the value for this attribute is to be
+ passed to the tag handler as a
+ javax.el.MethodExpression. This allows for deferred
+ evaluation of an EL expression that identifies a
+ method to be invoked on an Object. An optional
+ subelement will contain the expected method
+ signature. The signature defaults to "void method()"
+ if one is not provided.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:sequence>
+
+ <xsd:element name="fragment"
+ type="javaee:generic-booleanType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ "true" if this attribute is of type
+ javax.jsp.tagext.JspFragment, representing dynamic
+ content that can be re-evaluated as many times
+ as needed by the tag handler. If omitted or "false",
+ the default is still type="java.lang.String"
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ </xsd:choice>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="tld-canonical-nameType">
+
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines the canonical name of a tag or attribute being
+ defined.
+
+ The name must conform to the lexical rules for an NMTOKEN.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:xsdNMTOKENType"/>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="tld-deferred-methodType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines information about how to provide the value for a
+ tag handler attribute that accepts a javax.el.MethodExpression.
+
+ The deferred-method element has one optional subelement:
+
+ method-signature Provides the signature, as in the Java
+ Language Specifies, that is expected for
+ the method being identified by the
+ expression.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="method-signature"
+ type="javaee:string"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Provides the expected signature of the method identified
+ by the javax.el.MethodExpression.
+
+ This disambiguates overloaded methods and ensures that
+ the return value is of the expected type.
+
+ The syntax of the method-signature element is identical
+ to that of the function-signature element. See the
+ documentation for function-signature for more details.
+
+ The name of the method is for documentation purposes only
+ and is ignored by the JSP container.
+
+ Example:
+
+ boolean validate(java.lang.String)
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="tld-deferred-valueType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines information about how to provide the value for a
+ tag handler attribute that accepts a javax.el.ValueExpression.
+
+ The deferred-value element has one optional subelement:
+
+ type the expected type of the attribute
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="type"
+ type="javaee:fully-qualified-classType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The fully-qualified name of the Java type that is the
+ expected type for this deferred expression. If this
+ element is omitted, the expected type is assumed to be
+ "java.lang.Object".
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="tld-extensionType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The tld-extensionType is used to indicate
+ extensions to a specific TLD element.
+
+ It is used by elements to designate an extension block
+ that is targeted to a specific extension designated by
+ a set of extension elements that are declared by a
+ namespace. The namespace identifies the extension to
+ the tool that processes the extension.
+
+ The type of the extension-element is abstract. Therefore,
+ a concrete type must be specified by the TLD using
+ xsi:type attribute for each extension-element.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="extension-element"
+ type="javaee:extensibleType"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+
+ <xsd:attribute name="namespace"
+ use="required"
+ type="xsd:anyURI"/>
+ <xsd:attribute name="id" type="xsd:ID"/>
+
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="tldTaglibType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The taglib tag is the document root, it defines:
+
+ description a simple string describing the "use" of this
+ taglib, should be user discernable
+
+ display-name the display-name element contains a
+ short name that is intended to be displayed
+ by tools
+
+ icon optional icon that can be used by tools
+
+ tlib-version the version of the tag library implementation
+
+ short-name a simple default short name that could be
+ used by a JSP authoring tool to create
+ names with a mnemonic value; for example,
+ the it may be used as the prefered prefix
+ value in taglib directives
+
+ uri a uri uniquely identifying this taglib
+
+ validator optional TagLibraryValidator information
+
+ listener optional event listener specification
+
+ tag tags in this tag library
+
+ tag-file tag files in this tag library
+
+ function zero or more EL functions defined in this
+ tag library
+
+ taglib-extension zero or more extensions that provide extra
+ information about this taglib, for tool
+ consumption
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:group ref="javaee:descriptionGroup"/>
+ <xsd:element name="tlib-version"
+ type="javaee:dewey-versionType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Describes this version (number) of the taglibrary.
+ It is described as a dewey decimal.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ </xsd:element>
+
+ <xsd:element name="short-name"
+ type="javaee:tld-canonical-nameType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines a simple default name that could be used by
+ a JSP authoring tool to create names with a
+ mnemonicvalue; for example, it may be used as the
+ preferred prefix value in taglib directives. Do
+ not use white space, and do not start with digits
+ or underscore.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ </xsd:element>
+ <xsd:element name="uri"
+ type="javaee:xsdAnyURIType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines a public URI that uniquely identifies this
+ version of the taglibrary. Leave it empty if it
+ does not apply.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ </xsd:element>
+ <xsd:element name="validator"
+ type="javaee:validatorType"
+ minOccurs="0">
+ </xsd:element>
+ <xsd:element name="listener"
+ type="javaee:listenerType"
+ minOccurs="0" maxOccurs="unbounded">
+ </xsd:element>
+ <xsd:element name="tag"
+ type="javaee:tagType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="tag-file"
+ type="javaee:tagFileType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="function"
+ type="javaee:functionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="taglib-extension"
+ type="javaee:tld-extensionType"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Taglib extensions are for tool use only and must not
+ affect the behavior of a container.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="version"
+ type="javaee:dewey-versionType"
+ fixed="2.1"
+ use="required">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Describes the JSP version (number) this taglibrary
+ requires in order to function (dewey decimal)
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ </xsd:attribute>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="validatorType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ A validator that can be used to validate
+ the conformance of a JSP page to using this tag library is
+ defined by a validatorType.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0"
+ maxOccurs="unbounded"/>
+ <xsd:element name="validator-class"
+ type="javaee:fully-qualified-classType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines the TagLibraryValidator class that can be used
+ to validate the conformance of a JSP page to using this
+ tag library.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="init-param"
+ type="javaee:param-valueType"
+ minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The init-param element contains a name/value pair as an
+ initialization param.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ </xsd:element>
+
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="variable-scopeType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This type defines scope of the scripting variable. See
+ TagExtraInfo for details. The allowed values are,
+ "NESTED", "AT_BEGIN" and "AT_END".
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string">
+ <xsd:enumeration value="NESTED"/>
+ <xsd:enumeration value="AT_BEGIN"/>
+ <xsd:enumeration value="AT_END"/>
+ </xsd:restriction>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+<!-- **************************************************** -->
+
+ <xsd:complexType name="variableType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The variableType provides information on the scripting
+ variables defined by using this tag. It is a (translation
+ time) error for a tag that has one or more variable
+ subelements to have a TagExtraInfo class that returns a
+ non-null value from a call to getVariableInfo().
+
+ The subelements of variableType are of the form:
+
+ description Optional description of this
+ variable
+
+ name-given The variable name as a constant
+
+ name-from-attribute The name of an attribute whose
+ (translation time) value will
+ give the name of the
+ variable. One of name-given or
+ name-from-attribute is required.
+
+ variable-class Name of the class of the variable.
+ java.lang.String is default.
+
+ declare Whether the variable is declared
+ or not. True is the default.
+
+ scope The scope of the scripting varaible
+ defined. NESTED is default.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:sequence>
+ <xsd:element name="description"
+ type="javaee:descriptionType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:choice>
+ <xsd:element name="name-given"
+ type="javaee:java-identifierType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The name for the scripting variable.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:element name="name-from-attribute"
+ type="javaee:java-identifierType">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The name of an attribute whose
+ (translation-time) value will give the name of
+ the variable.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:choice>
+ <xsd:element name="variable-class"
+ type="javaee:fully-qualified-classType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The optional name of the class for the scripting
+ variable. The default is java.lang.String.
+
+ </xsd:documentation>
+ </xsd:annotation>
+
+ </xsd:element>
+
+ <xsd:element name="declare"
+ type="javaee:generic-booleanType"
+ minOccurs="0">
+
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Whether the scripting variable is to be defined
+ or not. See TagExtraInfo for details. This
+ element is optional and "true" is the default.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="scope"
+ type="javaee:variable-scopeType"
+ minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The element is optional and "NESTED" is the default.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+</xsd:schema>
+
Propchange: geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/web-jsptaglibrary_2_1.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/web-jsptaglibrary_2_1.xsd
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/web-jsptaglibrary_2_1.xsd
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/xml.xsd
URL: http://svn.apache.org/viewcvs/geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/xml.xsd?rev=392836&view=auto
==============================================================================
--- geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/xml.xsd (added)
+++ geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/xml.xsd Sun Apr 9 14:13:57 2006
@@ -0,0 +1,87 @@
+<?xml version='1.0'?>
+
+<!--
+ Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+ SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
+-->
+
+<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN" "XMLSchema.dtd" >
+<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema" xml:lang="en">
+
+ <xs:annotation>
+ <xs:documentation>
+ See http://www.w3.org/XML/1998/namespace.html and
+ http://www.w3.org/TR/REC-xml for information about this namespace.
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+ <xs:documentation>This schema defines attributes and an attribute group
+ suitable for use by
+ schemas wishing to allow xml:base, xml:lang or xml:space attributes
+ on elements they define.
+
+ To enable this, such a schema must import this schema
+ for the XML namespace, e.g. as follows:
+ <schema . . .>
+ . . .
+ <import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
+
+ Subsequently, qualified reference to any of the attributes
+ or the group defined below will have the desired effect, e.g.
+
+ <type . . .>
+ . . .
+ <attributeGroup ref="xml:specialAttrs"/>
+
+ will define a type which will schema-validate an instance
+ element with any of those attributes</xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+ <xs:documentation>In keeping with the XML Schema WG's standard versioning
+ policy, this schema document will persist at
+ http://www.w3.org/2001/03/xml.xsd.
+ At the date of issue it can also be found at
+ http://www.w3.org/2001/xml.xsd.
+ The schema document at that URI may however change in the future,
+ in order to remain compatible with the latest version of XML Schema
+ itself. In other words, if the XML Schema namespace changes, the version
+ of this document at
+ http://www.w3.org/2001/xml.xsd will change
+ accordingly; the version at
+ http://www.w3.org/2001/03/xml.xsd will not change.
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:attribute name="lang" type="xs:language">
+ <xs:annotation>
+ <xs:documentation>In due course, we should install the relevant ISO 2- and 3-letter
+ codes as the enumerated possible values . . .</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+
+ <xs:attribute name="space" default="preserve">
+ <xs:simpleType>
+ <xs:restriction base="xs:NCName">
+ <xs:enumeration value="default"/>
+ <xs:enumeration value="preserve"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="base" type="xs:anyURI">
+ <xs:annotation>
+ <xs:documentation>See http://www.w3.org/TR/xmlbase/ for
+ information about this attribute.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+
+ <xs:attributeGroup name="specialAttrs">
+ <xs:attribute ref="xml:base"/>
+ <xs:attribute ref="xml:lang"/>
+ <xs:attribute ref="xml:space"/>
+ </xs:attributeGroup>
+
+</xs:schema>
Propchange: geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/xml.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/xml.xsd
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/xml.xsd
------------------------------------------------------------------------------
svn:mime-type = text/xml
Modified: geronimo/sandbox/servlet-2.5/modules/j2ee/src/java/org/apache/geronimo/j2ee/j2eeobjectnames/NameFactory.java
URL: http://svn.apache.org/viewcvs/geronimo/sandbox/servlet-2.5/modules/j2ee/src/java/org/apache/geronimo/j2ee/j2eeobjectnames/NameFactory.java?rev=392836&r1=392835&r2=392836&view=diff
==============================================================================
--- geronimo/sandbox/servlet-2.5/modules/j2ee/src/java/org/apache/geronimo/j2ee/j2eeobjectnames/NameFactory.java (original)
+++ geronimo/sandbox/servlet-2.5/modules/j2ee/src/java/org/apache/geronimo/j2ee/j2eeobjectnames/NameFactory.java Sun Apr 9 14:13:57 2006
@@ -241,18 +241,31 @@
}
//TODO THIS IS KIND OF WEIRD. Is there a better way???
- public static ObjectName getWebFilterMappingName(String j2eeDomainName, String j2eeServerName, String j2eeApplicationName, String j2eeModuleName, String filterName, String servletName, String urlPattern, J2eeContext context) throws MalformedObjectNameException {
+ public static ObjectName getWebFilterMappingName(String j2eeDomainName, String j2eeServerName, String j2eeApplicationName, String j2eeModuleName, String filterName, String[] servletNames, String[] urlPatterns, J2eeContext context) throws MalformedObjectNameException {
Properties props = new Properties();
props.put(J2EE_TYPE, WEB_FILTER_MAPPING);
props.put(J2EE_SERVER, context.getJ2eeServerName(j2eeServerName));
props.put(J2EE_APPLICATION, context.getJ2eeApplicationName(j2eeApplicationName));
props.put(WEB_MODULE, context.getJ2eeModuleName(j2eeModuleName));
props.put(WEB_FILTER, filterName);
- if (servletName != null) {
- props.put(SERVLET, servletName);
+ String nameComponent = null;
+ String[] nameValues = null;
+ if (servletNames != null) {
+ nameComponent = SERVLET;
+ nameValues = servletNames;
} else {
- props.put(URL_PATTERN, ObjectName.quote(urlPattern));
+ nameComponent = URL_PATTERN;
+ nameValues = urlPatterns;
}
+
+ StringBuffer strbuff = new StringBuffer();
+ for (int i=0; i<nameValues.length; i++) {
+ strbuff.append(nameValues[i]);
+ if (i < nameValues.length-1)
+ strbuff.append(";");
+ }
+
+ props.put(nameComponent, ObjectName.quote(strbuff.toString()));
return ObjectName.getInstance(context.getJ2eeDomainName(j2eeDomainName), props);
}
Modified: geronimo/sandbox/servlet-2.5/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java
URL: http://svn.apache.org/viewcvs/geronimo/sandbox/servlet-2.5/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java?rev=392836&r1=392835&r2=392836&view=diff
==============================================================================
--- geronimo/sandbox/servlet-2.5/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java (original)
+++ geronimo/sandbox/servlet-2.5/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java Sun Apr 9 14:13:57 2006
@@ -90,10 +90,10 @@
import org.apache.geronimo.xbeans.j2ee.WelcomeFileListType;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
-import org.mortbay.http.BasicAuthenticator;
-import org.mortbay.http.ClientCertAuthenticator;
-import org.mortbay.http.DigestAuthenticator;
-import org.mortbay.jetty.servlet.FormAuthenticator;
+import org.mortbay.jetty.security.BasicAuthenticator;
+import org.mortbay.jetty.security.ClientCertAuthenticator;
+import org.mortbay.jetty.security.DigestAuthenticator;
+import org.mortbay.jetty.security.FormAuthenticator;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
@@ -281,7 +281,8 @@
for (int j = 0; j < servletMappings.length; j++) {
ServletMappingType servletMapping = servletMappings[j];
String servletName = servletMapping.getServletName().getStringValue().trim();
- map.put(servletName, contextRoot + servletMapping.getUrlPattern().getStringValue().trim());
+ //TODO - check on this; is there really always going to be at least one mapping?
+ map.put(servletName, contextRoot + servletMapping.getUrlPatternArray(0).getStringValue().trim());
}
return map;
}
@@ -734,17 +735,26 @@
filterMappingData.setReferencePattern("JettyServletRegistration", webModuleName);
ObjectName filterMappingName = null;
- if (filterMappingType.isSetUrlPattern()) {
+ if (filterMappingType.sizeOfUrlPatternArray() > 0) {
//do not trim!
- String urlPattern = filterMappingType.getUrlPattern().getStringValue().trim();
- filterMappingData.setAttribute("urlPattern", urlPattern);
- filterMappingName = NameFactory.getWebFilterMappingName(null, null, null, null, filterName, null, urlPattern, moduleJ2eeContext);
- }
- if (filterMappingType.isSetServletName()) {
- String servletName = filterMappingType.getServletName().getStringValue().trim();
- ObjectName servletObjectName = NameFactory.getWebComponentName(null, null, null, null, servletName, NameFactory.SERVLET, moduleJ2eeContext);
- filterMappingData.setReferencePattern("Servlet", servletObjectName);
- filterMappingName = NameFactory.getWebFilterMappingName(null, null, null, null, filterName, servletName, null, moduleJ2eeContext);
+ String[] urlPatterns = new String[filterMappingType.sizeOfUrlPatternArray()];
+ for (int j=0; j < urlPatterns.length; j++) {
+ urlPatterns[j] = filterMappingType.getUrlPatternArray(j).getStringValue().trim();
+ }
+
+ filterMappingData.setAttribute("urlPatterns", urlPatterns);
+ filterMappingName = NameFactory.getWebFilterMappingName(null, null, null, null, filterName, null, urlPatterns, moduleJ2eeContext);
+ }
+ if (filterMappingType.sizeOfServletNameArray() > 0) {
+ Set servletNameSet = new HashSet();
+ String[] servletNames = new String[filterMappingType.sizeOfUrlPatternArray()];
+ for (int j=0; j < servletNames.length; j++) {
+ servletNames[j] = filterMappingType.getServletNameArray(j).getStringValue().trim();
+ servletNameSet.add(NameFactory.getWebComponentName(null, null, null, null, servletNames[j], NameFactory.SERVLET, moduleJ2eeContext));
+ }
+
+ filterMappingData.setReferencePatterns("Servlet", servletNameSet);
+ filterMappingName = NameFactory.getWebFilterMappingName(null, null, null, null, filterName, servletNames, null, moduleJ2eeContext);
}
filterMappingData.setName(filterMappingName);
previous = filterMappingName;
@@ -1012,7 +1022,7 @@
}
servletData.setAttribute("initParams", initParams);
if (servletType.isSetLoadOnStartup()) {
- Integer loadOnStartup = new Integer(servletType.getLoadOnStartup().getBigIntegerValue().intValue());
+ Integer loadOnStartup = new Integer(servletType.xgetLoadOnStartup().getStringValue());
servletData.setAttribute("loadOnStartup", loadOnStartup);
}
@@ -1321,14 +1331,20 @@
FilterMappingType[] filterMappings = webApp.getFilterMappingArray();
for (int i = 0; i < filterMappings.length; i++) {
- if (filterMappings[i].isSetUrlPattern()) {
- checkString(filterMappings[i].getUrlPattern().getStringValue().trim());
+ if (filterMappings[i].sizeOfUrlPatternArray() > 0) {
+ for (int j=0; j< filterMappings[i].sizeOfUrlPatternArray(); j++) {
+ checkString(filterMappings[i].getUrlPatternArray(j).getStringValue().trim());
+ }
}
}
ServletMappingType[] servletMappings = webApp.getServletMappingArray();
for (int i = 0; i < servletMappings.length; i++) {
- checkString(servletMappings[i].getUrlPattern().getStringValue().trim());
+ if (servletMappings[i].sizeOfUrlPatternArray() > 0) {
+ for (int j=0; j < servletMappings[i].sizeOfUrlPatternArray(); j++) {
+ checkString(servletMappings[i].getUrlPatternArray(j).getStringValue().trim());
+ }
+ }
}
SecurityConstraintType[] constraints = webApp.getSecurityConstraintArray();
@@ -1481,7 +1497,7 @@
// load-on-startup is set for both. whichever one
// has a smaller value is "less than"
- int comp = s1.getLoadOnStartup().getBigIntegerValue().compareTo(s2.getLoadOnStartup().getBigIntegerValue());
+ int comp = new Integer(s1.xgetLoadOnStartup().getStringValue()).compareTo(new Integer(s2.xgetLoadOnStartup().getStringValue()));
if (comp == 0) {
return s1.getServletName().getStringValue().trim().compareTo(s2.getServletName().getStringValue().trim());
}
Modified: geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/InternalJAASJettyRealm.java
URL: http://svn.apache.org/viewcvs/geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/InternalJAASJettyRealm.java?rev=392836&r1=392835&r2=392836&view=diff
==============================================================================
--- geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/InternalJAASJettyRealm.java (original)
+++ geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/InternalJAASJettyRealm.java Sun Apr 9 14:13:57 2006
@@ -33,7 +33,7 @@
import org.apache.geronimo.security.realm.providers.CertificateCallbackHandler;
import org.apache.geronimo.security.realm.providers.ClearableCallbackHandler;
import org.apache.geronimo.security.realm.providers.PasswordCallbackHandler;
-import org.mortbay.http.HttpRequest;
+import org.mortbay.jetty.Request;
/**
@@ -58,7 +58,7 @@
return (Principal) userMap.get(username);
}
- public Principal authenticate(String username, Object credentials, HttpRequest request) {
+ public Principal authenticate(String username, Object credentials, Request request) {
try {
if ((username != null) && (!username.equals(""))) {
Modified: geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JAASJettyRealm.java
URL: http://svn.apache.org/viewcvs/geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JAASJettyRealm.java?rev=392836&r1=392835&r2=392836&view=diff
==============================================================================
--- geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JAASJettyRealm.java (original)
+++ geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JAASJettyRealm.java Sun Apr 9 14:13:57 2006
@@ -20,8 +20,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.mortbay.http.HttpRequest;
-import org.mortbay.http.UserRealm;
+import org.mortbay.jetty.Request;
+import org.mortbay.jetty.security.UserRealm;
/**
@@ -46,7 +46,7 @@
return internalJAASJettyRealm.getPrincipal(username);
}
- public Principal authenticate(String username, Object credentials, HttpRequest request) {
+ public Principal authenticate(String username, Object credentials, Request request) {
return internalJAASJettyRealm.authenticate(username, credentials, request);
}
Modified: geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyContainer.java
URL: http://svn.apache.org/viewcvs/geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyContainer.java?rev=392836&r1=392835&r2=392836&view=diff
==============================================================================
--- geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyContainer.java (original)
+++ geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyContainer.java Sun Apr 9 14:13:57 2006
@@ -17,23 +17,22 @@
package org.apache.geronimo.jetty;
-import org.mortbay.http.HttpContext;
-import org.mortbay.http.HttpListener;
-import org.mortbay.http.RequestLog;
-import org.mortbay.http.UserRealm;
+import org.mortbay.jetty.handler.ContextHandler;
+import org.mortbay.jetty.Connector;
+import org.mortbay.jetty.RequestLog;
import org.apache.geronimo.management.geronimo.WebContainer;
/**
* @version $Rev$ $Date$
*/
public interface JettyContainer extends WebContainer {
- void addListener(HttpListener listener);
+ void addListener(Connector listener);
- void removeListener(HttpListener listener);
+ void removeListener(Connector listener);
- void addContext(HttpContext context);
+ void addContext(ContextHandler context);
- void removeContext(HttpContext context);
+ void removeContext(ContextHandler context) throws Exception;
String getLocalSessionManager();
void setLocalSessionManager(String localSessionManagerClassname);
Modified: geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyContainerImpl.java
URL: http://svn.apache.org/viewcvs/geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyContainerImpl.java?rev=392836&r1=392835&r2=392836&view=diff
==============================================================================
--- geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyContainerImpl.java (original)
+++ geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyContainerImpl.java Sun Apr 9 14:13:57 2006
@@ -22,10 +22,10 @@
import org.apache.geronimo.gbean.GBeanLifecycle;
import org.apache.geronimo.webservices.SoapHandler;
import org.apache.geronimo.webservices.WebServiceContainer;
-import org.mortbay.http.HttpContext;
-import org.mortbay.http.HttpListener;
-import org.mortbay.http.RequestLog;
-import org.mortbay.http.UserRealm;
+import org.mortbay.jetty.handler.ContextHandler;
+import org.mortbay.jetty.Connector;
+import org.mortbay.jetty.RequestLog;
+import org.mortbay.jetty.security.UserRealm;
import org.mortbay.jetty.Server;
import java.util.HashMap;
@@ -80,87 +80,119 @@
}
public void resetStatistics() {
- server.statsReset();
+ //TODO
+ /* server.statsReset();*/
}
public void setCollectStatistics(boolean on) {
- server.setStatsOn(on);
+ //TODO
+ //server.setStatsOn(on);
}
public boolean getCollectStatistics() {
- return server.getStatsOn();
+ //TODO
+ //return server.getStatsOn();
+ return false;
}
public long getCollectStatisticsStarted() {
- return server.getStatsOnMs();
+ //TODO
+ //return server.getStatsOnMs();
+ return 0L;
}
public int getConnections() {
- return server.getConnections();
+ //TODO
+ //return server.getConnections();
+ return 0;
}
public int getConnectionsOpen() {
- return server.getConnectionsOpen();
+ //TODO
+ //return server.getConnectionsOpen();
+ return 0;
}
public int getConnectionsOpenMax() {
- return server.getConnectionsOpenMax();
+ //TODO
+ //return server.getConnectionsOpenMax();
+ return 0;
}
public long getConnectionsDurationAve() {
- return server.getConnectionsDurationAve();
+ //TODO
+ //return server.getConnectionsDurationAve();
+ return 0L;
}
public long getConnectionsDurationMax() {
- return server.getConnectionsDurationMax();
+ //TODO
+ //return server.getConnectionsDurationMax();
+ return 0L;
}
public int getConnectionsRequestsAve() {
- return server.getConnectionsRequestsAve();
+ //TODO
+ //return server.getConnectionsRequestsAve();
+ return 0;
}
public int getConnectionsRequestsMax() {
- return server.getConnectionsRequestsMax();
+ //TODO
+ //return server.getConnectionsRequestsMax();
+ return 0;
}
public int getErrors() {
- return server.getErrors();
+ //TODO
+ //return server.getErrors();
+ return 0;
}
public int getRequests() {
- return server.getRequests();
+ //TODO
+ //return server.getRequests();
+ return 0;
}
public int getRequestsActive() {
- return server.getRequestsActive();
+ //TODO
+ //return server.getRequestsActive();
+ return 0;
}
public int getRequestsActiveMax() {
- return server.getRequestsActiveMax();
+ //TODO
+ //return server.getRequestsActiveMax();
+ return 0;
}
public long getRequestsDurationAve() {
- return server.getRequestsDurationAve();
+ //TODO
+ //return server.getRequestsDurationAve();
+ return 0L;
}
public long getRequestsDurationMax() {
- return server.getRequestsDurationMax();
+ //TODO
+ //return server.getRequestsDurationMax();
+ return 0L;
}
- public void addListener(HttpListener listener) {
- server.addListener(listener);
+ public void addListener(Connector listener) {
+ server.addConnector(listener);
}
- public void removeListener(HttpListener listener) {
- server.removeListener(listener);
+ public void removeListener(Connector listener) {
+ server.removeConnector(listener);
}
- public void addContext(HttpContext context) {
- server.addContext(context);
+ public void addContext(ContextHandler context) {
+ server.addHandler(context);
}
- public void removeContext(HttpContext context) {
- server.removeContext(context);
+ public void removeContext(ContextHandler context) throws Exception{
+ server.removeHandler(context);
}
public InternalJAASJettyRealm addRealm(String realmName) {
@@ -198,7 +230,11 @@
if (securityRealmName != null) {
removeRealm(securityRealmName);
}
+ try {
removeContext(webServiceContext);
+ }catch (Exception e) {
+ throw new IllegalStateException(e.getMessage());
+ }
}
public void setRequestLog(RequestLog log) {
@@ -216,15 +252,15 @@
public void doStop() {
try {
- server.stop(true);
- } catch (InterruptedException e) {
+ server.stop();
+ } catch (Exception e) {
}
}
public void doFail() {
try {
- server.stop(false);
- } catch (InterruptedException e) {
+ server.stop();
+ } catch (Exception e) {
// continue
}
}
@@ -255,10 +291,10 @@
infoBuilder.addAttribute("localSessionManager", String.class, true);
infoBuilder.addAttribute("distributableSessionManager", String.class, true);
- infoBuilder.addOperation("addListener", new Class[]{HttpListener.class});
- infoBuilder.addOperation("removeListener", new Class[]{HttpListener.class});
- infoBuilder.addOperation("addContext", new Class[]{HttpContext.class});
- infoBuilder.addOperation("removeContext", new Class[]{HttpContext.class});
+ infoBuilder.addOperation("addListener", new Class[]{Connector.class});
+ infoBuilder.addOperation("removeListener", new Class[]{Connector.class});
+ infoBuilder.addOperation("addContext", new Class[]{ContextHandler.class});
+ infoBuilder.addOperation("removeContext", new Class[]{ContextHandler.class});
infoBuilder.addOperation("addRealm", new Class[]{String.class});
infoBuilder.addOperation("removeRealm", new Class[]{String.class});
Modified: geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyEJBWebServiceContext.java
URL: http://svn.apache.org/viewcvs/geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyEJBWebServiceContext.java?rev=392836&r1=392835&r2=392836&view=diff
==============================================================================
--- geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyEJBWebServiceContext.java (original)
+++ geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyEJBWebServiceContext.java Sun Apr 9 14:13:57 2006
@@ -17,7 +17,14 @@
package org.apache.geronimo.jetty;
import org.apache.geronimo.webservices.WebServiceContainer;
-import org.mortbay.http.*;
+import org.mortbay.jetty.HttpException;
+import org.mortbay.jetty.Request;
+import org.mortbay.jetty.Response;
+import org.mortbay.jetty.handler.ContextHandler;
+import org.mortbay.jetty.security.Authenticator;
+import org.mortbay.jetty.security.BasicAuthenticator;
+import org.mortbay.jetty.security.ClientCertAuthenticator;
+import org.mortbay.jetty.security.DigestAuthenticator;
import java.io.IOException;
import java.io.InputStream;
@@ -51,7 +58,7 @@
*
* @version $Rev$ $Date$
*/
-public class JettyEJBWebServiceContext extends HttpContext implements HttpHandler {
+public class JettyEJBWebServiceContext extends ContextHandler {
private final String contextPath;
private final WebServiceContainer webServiceContainer;
@@ -61,14 +68,16 @@
private final boolean isIntegralTransportGuarantee;
private final ClassLoader classLoader;
- private HttpContext httpContext;
+
public JettyEJBWebServiceContext(String contextPath, WebServiceContainer webServiceContainer, InternalJAASJettyRealm internalJAASJettyRealm, String realmName, String transportGuarantee, String authMethod, ClassLoader classLoader) {
this.contextPath = contextPath;
this.webServiceContainer = webServiceContainer;
if (internalJAASJettyRealm != null) {
JAASJettyRealm realm = new JAASJettyRealm(realmName, internalJAASJettyRealm);
- setRealm(realm);
+ //TODO
+ //not used???
+ //setUserRealm(realm);
this.realm = realm;
if ("NONE".equals(transportGuarantee)) {
isConfidentialTransportGuarantee = false;
@@ -106,7 +115,7 @@
//need a better name
return contextPath;
}
-
+/*
public HttpContext getHttpContext() {
return httpContext;
}
@@ -114,9 +123,15 @@
public void initialize(HttpContext httpContext) {
this.httpContext = httpContext;
}
+ */
- public void handle(HttpRequest req, HttpResponse res) throws HttpException, IOException {
- req.setContentType("text/xml");
+ public boolean handle(Request req, Response res) throws HttpException, IOException {
+ //TODO
+ //shouldn't set this on the request !
+ //req.setContentType("text/xml");
+
+ //TODO
+ //do we need to check that this request should be handled by this handler?
RequestAdapter request = new RequestAdapter(req);
ResponseAdapter response = new ResponseAdapter(res);
@@ -124,6 +139,7 @@
try {
webServiceContainer.getWsdl(request, response);
//WHO IS RESPONSIBLE FOR CLOSING OUT?
+ return true;
} catch (IOException e) {
throw e;
} catch (Exception e) {
@@ -131,12 +147,12 @@
}
} else {
if (isConfidentialTransportGuarantee) {
- if (!req.isConfidential()) {
- throw new HttpException(403);
+ if (!req.isSecure()) {
+ throw new HttpException(403,null);
}
} else if (isIntegralTransportGuarantee) {
- if (!req.isIntegral()) {
- throw new HttpException(403);
+ if (!req.getConnection().isIntegral(req)) {
+ throw new HttpException(403,null);
}
}
Thread currentThread = Thread.currentThread();
@@ -144,14 +160,14 @@
currentThread.setContextClassLoader(classLoader);
try {
if (authenticator != null) {
- String pathInContext = org.mortbay.util.URI.canonicalPath(req.getPath());
+ String pathInContext = org.mortbay.util.URIUtil.canonicalPath(req.getContextPath());
if (authenticator.authenticate(realm, pathInContext, req, res) == null) {
- throw new HttpException(403);
+ throw new HttpException(403, null);
}
}
try {
webServiceContainer.invoke(request, response);
- req.setHandled(true);
+ return true;
} catch (IOException e) {
throw e;
} catch (Exception e) {
@@ -177,21 +193,21 @@
}
public static class RequestAdapter implements WebServiceContainer.Request {
- private final HttpRequest request;
+ private final Request request;
private URI uri;
- public RequestAdapter(HttpRequest request) {
+ public RequestAdapter(Request request) {
this.request = request;
}
public String getHeader(String name) {
- return request.getField(name);
+ return request.getHeader(name);
}
public java.net.URI getURI() {
if (uri == null) {
try {
- String uriString = request.getScheme() + "://" + request.getHost() + ":" + request.getPort() + request.getURI();
+ String uriString = request.getScheme() + "://" + request.getRemoteHost() + ":" + request.getRemotePort() + request.getRequestURI();
//return new java.net.URI(uri.getScheme(),uri.getHost(),uri.getPath(),uri.);
uri = new java.net.URI(uriString);
} catch (URISyntaxException e) {
@@ -251,22 +267,26 @@
}
public static class ResponseAdapter implements WebServiceContainer.Response {
- private final HttpResponse response;
+ private final Response response;
- public ResponseAdapter(HttpResponse response) {
+ public ResponseAdapter(Response response) {
this.response = response;
}
public void setHeader(String name, String value) {
- response.setField(name, value);
+ response.setHeader(name, value);
}
public String getHeader(String name) {
- return response.getField(name);
+ return response.getHeader(name);
}
public OutputStream getOutputStream() {
+ try {
return response.getOutputStream();
+ } catch (IOException e) {
+ throw new IllegalStateException(e.getMessage());
+ }
}
public void setStatusCode(int code) {
Modified: geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyFilterHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyFilterHolder.java?rev=392836&r1=392835&r2=392836&view=diff
==============================================================================
--- geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyFilterHolder.java (original)
+++ geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyFilterHolder.java Sun Apr 9 14:13:57 2006
@@ -22,7 +22,7 @@
import org.apache.geronimo.gbean.GBeanInfoBuilder;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.mortbay.jetty.servlet.FilterHolder;
-import org.mortbay.jetty.servlet.WebApplicationHandler;
+
/**
* @version $Rev$ $Date$
@@ -34,10 +34,14 @@
}
public JettyFilterHolder(String filterName, String filterClass, Map initParams, JettyServletRegistration jettyServletRegistration) throws Exception {
- super(jettyServletRegistration == null? null: jettyServletRegistration.getServletHandler(), filterName, filterClass);
+ super();
+
if (jettyServletRegistration != null) {
- ((WebApplicationHandler)jettyServletRegistration.getServletHandler()).addFilterHolder(this);
- putAll(initParams);
+ setName(filterName);
+ setClassName(filterClass);
+ setInitParameters(initParams);
+ (jettyServletRegistration.getServletHandler()).addFilter(this);
+
ClassLoader oldCL = Thread.currentThread().getContextClassLoader();
try {
Modified: geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyFilterMapping.java
URL: http://svn.apache.org/viewcvs/geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyFilterMapping.java?rev=392836&r1=392835&r2=392836&view=diff
==============================================================================
--- geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyFilterMapping.java (original)
+++ geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/JettyFilterMapping.java Sun Apr 9 14:13:57 2006
@@ -21,15 +21,17 @@
import org.apache.geronimo.gbean.GBeanInfo;
import org.apache.geronimo.gbean.GBeanInfoBuilder;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
-import org.mortbay.jetty.servlet.Dispatcher;
-import org.mortbay.jetty.servlet.WebApplicationHandler;
+import org.mortbay.jetty.Handler;
+import org.mortbay.jetty.servlet.FilterMapping;
+
+
/**
* @version $Rev$ $Date$
*/
-public class JettyFilterMapping implements Serializable {
+public class JettyFilterMapping extends FilterMapping implements Serializable {
- private final String urlPattern;
+ private final String[] urlPatterns;
private final boolean requestDispatch;
private final boolean forwardDispatch;
private final boolean includeDispatch;
@@ -41,7 +43,7 @@
//todo use an interface for endpoints.
public JettyFilterMapping() {
- this.urlPattern = null;
+ this.urlPatterns = null;
this.requestDispatch = false;
this.forwardDispatch = false;
this.includeDispatch = false;
@@ -52,7 +54,7 @@
this.jettyServletRegistration = null;
}
- public JettyFilterMapping(String urlPattern,
+ public JettyFilterMapping(String[] urlPatterns,
boolean requestDispatch,
boolean forwardDispatch,
boolean includeDispatch,
@@ -61,7 +63,7 @@
JettyServletHolder jettyServletHolder,
JettyFilterMapping previous,
JettyServletRegistration jettyServletRegistration) {
- this.urlPattern = urlPattern;
+ this.urlPatterns = urlPatterns;
this.requestDispatch = requestDispatch;
this.forwardDispatch = forwardDispatch;
this.includeDispatch = includeDispatch;
@@ -72,35 +74,37 @@
this.jettyServletRegistration = jettyServletRegistration;
if (jettyServletRegistration != null) {
- assert jettyServletHolder != null ^ urlPattern != null;
+ assert jettyServletHolder != null ^ urlPatterns != null;
String filterName = jettyFilterHolder.getFilterName();
int dispatches = 0;
if (requestDispatch) {
- dispatches |= Dispatcher.__REQUEST;
+ dispatches |= Handler.REQUEST;
}
if (forwardDispatch) {
- dispatches |= Dispatcher.__FORWARD;
+ dispatches |= Handler.FORWARD;
}
if (includeDispatch) {
- dispatches |= Dispatcher.__INCLUDE;
+ dispatches |= Handler.INCLUDE;
}
if (errorDispatch) {
- dispatches |= Dispatcher.__ERROR;
+ dispatches |= Handler.ERROR;
}
-
+ setFilterName(filterName);
+ setDispatches(dispatches);
+ setPathSpecs(urlPatterns);
if (jettyServletHolder == null) {
- ((WebApplicationHandler)jettyServletRegistration.getServletHandler()).addFilterPathMapping(urlPattern, filterName, dispatches);
+ (jettyServletRegistration.getServletHandler()).addFilterMapping(this);
} else {
- String servletName = jettyServletHolder.getServletName();
- ((WebApplicationHandler)jettyServletRegistration.getServletHandler()).addFilterServletMapping(servletName, filterName, dispatches);
+ setServletName(jettyServletHolder.getServletName());
+ (jettyServletRegistration.getServletHandler()).addFilterMapping(this);
}
}
}
- public String getUrlPattern() {
- return urlPattern;
+ public String[] getUrlPatterns() {
+ return urlPatterns;
}
public boolean isRequestDispatch() {
@@ -139,7 +143,7 @@
static {
GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(JettyFilterMapping.class, NameFactory.WEB_FILTER_MAPPING);
- infoBuilder.addAttribute("urlPattern", String.class, true);
+ infoBuilder.addAttribute("urlPatterns", String[].class, true);
infoBuilder.addAttribute("requestDispatch", boolean.class, true);
infoBuilder.addAttribute("forwardDispatch", boolean.class, true);
infoBuilder.addAttribute("includeDispatch", boolean.class, true);
@@ -150,7 +154,7 @@
infoBuilder.addReference("Previous", JettyFilterMapping.class, NameFactory.WEB_FILTER_MAPPING);
infoBuilder.addReference("JettyServletRegistration", JettyServletRegistration.class, NameFactory.WEB_MODULE);
- infoBuilder.setConstructor(new String[]{"urlPattern",
+ infoBuilder.setConstructor(new String[]{"urlPatterns",
"requestDispatch",
"forwardDispatch",
"includeDispatch",
Modified: geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/NonAuthenticator.java
URL: http://svn.apache.org/viewcvs/geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/NonAuthenticator.java?rev=392836&r1=392835&r2=392836&view=diff
==============================================================================
--- geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/NonAuthenticator.java (original)
+++ geronimo/sandbox/servlet-2.5/modules/jetty/src/java/org/apache/geronimo/jetty/NonAuthenticator.java Sun Apr 9 14:13:57 2006
@@ -1,9 +1,9 @@
package org.apache.geronimo.jetty;
-import org.mortbay.http.Authenticator;
-import org.mortbay.http.UserRealm;
-import org.mortbay.http.HttpRequest;
-import org.mortbay.http.HttpResponse;
+import org.mortbay.jetty.security.Authenticator;
+import org.mortbay.jetty.security.UserRealm;
+import org.mortbay.jetty.Request;
+import org.mortbay.jetty.Response;
import java.security.Principal;
import java.io.IOException;
@@ -13,7 +13,7 @@
* in an unsecured web app.
*/
public class NonAuthenticator implements Authenticator {
- public Principal authenticate(UserRealm realm, String pathInContext, HttpRequest request, HttpResponse response) throws IOException {
+ public Principal authenticate(UserRealm realm, String pathInContext, Request request, Response response) throws IOException {
return null;
}