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 2009/04/05 16:24:42 UTC
svn commit: r762090 - in /tomcat/trunk/modules/tomcat-lite: build.xml
coyote-nio.files examples/ examples/spring/
examples/spring/TomcatSpring.java examples/spring/tomcat-spring.xml
Author: costin
Date: Sun Apr 5 14:24:42 2009
New Revision: 762090
URL: http://svn.apache.org/viewvc?rev=762090&view=rev
Log:
Build and one example of embedding tomcat-lite ( I'll add more when I get time, I only picked
spring for its limitations - it's easier to use tomcat-lite in a framework that supports
existing-object injection ).
Added:
tomcat/trunk/modules/tomcat-lite/build.xml (with props)
tomcat/trunk/modules/tomcat-lite/coyote-nio.files
tomcat/trunk/modules/tomcat-lite/examples/
tomcat/trunk/modules/tomcat-lite/examples/spring/
tomcat/trunk/modules/tomcat-lite/examples/spring/TomcatSpring.java (with props)
tomcat/trunk/modules/tomcat-lite/examples/spring/tomcat-spring.xml (with props)
Added: tomcat/trunk/modules/tomcat-lite/build.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/tomcat-lite/build.xml?rev=762090&view=auto
==============================================================================
--- tomcat/trunk/modules/tomcat-lite/build.xml (added)
+++ tomcat/trunk/modules/tomcat-lite/build.xml Sun Apr 5 14:24:42 2009
@@ -0,0 +1,116 @@
+<?xml version="1.0"?>
+<project name="Tomcat Lite" default="tomcat-lite.jar" basedir="../..">
+
+ <property file="${user.home}/build.properties" />
+ <property file="${basedir}/build.properties" />
+ <property file="${basedir}/build.properties.default" />
+
+ <property name="tomcat.build" value="${basedir}/output/build" />
+ <property name="tomcat.src" value="${basedir}/java" />
+ <property name="tomcat.lite.src" value="${basedir}/modules/tomcat-lite" />
+
+ <property name="classes" value="${basedir}/output/tomcat-lite/classes" />
+ <property name="jar.dir" value="${basedir}/output/tomcat-lite/" />
+
+ <target name="compile">
+ <mkdir dir="${classes}" />
+ <!-- Tomcat deps first -->
+ <javac destdir="${classes}"
+ debug="${compile.debug}"
+ deprecation="${compile.deprecation}"
+ source="${compile.source}"
+ optimize="${compile.optimize}"
+ srcdir="${tomcat.src}"
+ >
+ <include name="javax/servlet/**" />
+ <include name="javax/annotation/**" />
+ <!--include name="org/apache/coyote/**" />
+ <include name="org/apache/tomcat/util/**" /-->
+ <includesfile name="${tomcat.lite.src}/coyote-nio.files"/>
+ <include name="org/apache/jasper/**" />
+ </javac>
+
+ <javac destdir="${classes}"
+ debug="${compile.debug}"
+ deprecation="${compile.deprecation}"
+ source="${compile.source}"
+ optimize="${compile.optimize}"
+ >
+ <src path="${tomcat.lite.src}/java" />
+ </javac>
+
+ <copy todir="${classes}">
+ <fileset dir="${tomcat.lite.src}/java" includes="**/*.properties **/*.xml" />
+ <fileset dir="${tomcat.src}"
+ includes="org/apache/tomcat/util/**/*.properties org/apache/tomcat/util/**/*.xml"
+ />
+ <fileset dir="${tomcat.src}"
+ includes="javax/servlet/**/*.properties"
+ />
+ <fileset dir="${tomcat.src}"
+ includes="org/apache/coyote/**/*.properties org/apache/coyote/**/*.xml"
+ />
+ </copy>
+
+ </target>
+
+ <target name="clean">
+ <delete dir="${classes}" includes="**" />
+ <delete dir="${jar.dir}" includes="**" />
+ <delete dir="${jar.dir}/jar" includes="**" />
+ </target>
+
+ <target name="tomcat-lite.jar" depends="compile,pack_tomcat-lite.jar" />
+
+ <target name="pack_tomcat-lite.jar">
+ <!-- individually packed jars for servlet support-->
+ <mkdir dir="${jar.dir}/jar" />
+ <jar destfile="${jar.dir}/jar/tomcat-lite.jar">
+ <manifest>
+ <attribute name="Main-Class" value="org.apache.tomcat.lite.cli.Main"/>
+ </manifest>
+ <fileset dir="${classes}">
+ <include name ="org/apache/tomcat/lite/**" />
+ <include name ="org/apache/tomcat/servlets/**" />
+ </fileset>
+ </jar>
+ <copy file="${tomcat.build}/lib/annotations-api.jar" todir="${jar.dir}/jar"/>
+ <copy file="${tomcat.build}/lib/servlet-api.jar" todir="${jar.dir}/jar"/>
+ <copy file="${tomcat.build}/lib/tomcat-coyote.jar" todir="${jar.dir}/jar"/>
+
+ <!-- Jasper jars -->
+ <mkdir dir="${jar.dir}/jasper" />
+ <copy file="${tomcat.build}/lib/el-api.jar" todir="${jar.dir}/jasper"/>
+ <copy file="${tomcat.build}/lib/jsp-api.jar" todir="${jar.dir}/jasper"/>
+ <copy file="${tomcat.build}/lib/jasper.jar" todir="${jar.dir}/jasper"/>
+ <copy file="${tomcat.build}/lib/jasper-el.jar" todir="${jar.dir}/jasper"/>
+
+ <!-- Bundles -->
+ <!-- All included: javax, jasper, coyote, tomcat-lite -->
+ <jar destfile="${jar.dir}/tomcat-lite-all.jar">
+ <manifest>
+ <attribute name="Main-Class" value="org.apache.tomcat.lite.cli.Main"/>
+ </manifest>
+ <fileset dir="${classes}">
+ </fileset>
+ </jar>
+
+ <!-- Tomcat lite without jasper -->
+ <jar destfile="${jar.dir}/tomcat-lite+javax+coyote.jar">
+ <manifest>
+ <attribute name="Main-Class" value="org.apache.tomcat.lite.cli.Main"/>
+ </manifest>
+ <fileset dir="${classes}">
+ <exclude name ="org/apache/jasper/**" />
+ <exclude name ="org/apache/el/**" />
+ </fileset>
+ </jar>
+
+
+ </target>
+
+ <target name="run">
+ <java jar="${jar.dir}/tomcat-lite-ALL.jar"/>
+ </target>
+
+</project>
Propchange: tomcat/trunk/modules/tomcat-lite/build.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: tomcat/trunk/modules/tomcat-lite/coyote-nio.files
URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/tomcat-lite/coyote-nio.files?rev=762090&view=auto
==============================================================================
--- tomcat/trunk/modules/tomcat-lite/coyote-nio.files (added)
+++ tomcat/trunk/modules/tomcat-lite/coyote-nio.files Sun Apr 5 14:24:42 2009
@@ -0,0 +1,116 @@
+org/apache/coyote/http11/filters/IdentityInputFilter.java
+org/apache/coyote/http11/filters/GzipOutputFilter.java
+org/apache/coyote/http11/filters/IdentityOutputFilter.java
+org/apache/coyote/http11/filters/SavedRequestInputFilter.java
+org/apache/coyote/http11/filters/ChunkedInputFilter.java
+org/apache/coyote/http11/filters/VoidInputFilter.java
+org/apache/coyote/http11/filters/BufferedInputFilter.java
+org/apache/coyote/http11/filters/ChunkedOutputFilter.java
+org/apache/coyote/http11/filters/VoidOutputFilter.java
+org/apache/coyote/http11/filters/GzipInputFilter.java
+org/apache/coyote/http11/InputFilter.java
+org/apache/coyote/http11/OutputFilter.java
+org/apache/coyote/http11/Constants.java
+org/apache/coyote/Processor.java
+org/apache/coyote/ProtocolHandler.java
+org/apache/coyote/Adapter.java
+org/apache/coyote/RequestGroupInfo.java
+org/apache/coyote/RequestInfo.java
+org/apache/coyote/ActionCode.java
+org/apache/coyote/Request.java
+org/apache/coyote/InputBuffer.java
+org/apache/coyote/OutputBuffer.java
+org/apache/coyote/Constants.java
+org/apache/coyote/ActionHook.java
+org/apache/coyote/Response.java
+org/apache/juli/logging/Log.java
+org/apache/juli/logging/DirectJDKLog.java
+org/apache/juli/logging/LogConfigurationException.java
+org/apache/juli/logging/LogFactory.java
+org/apache/juli/ClassLoaderLogManager.java
+org/apache/juli/JdkLoggerFormatter.java
+org/apache/juli/FileHandler.java
+org/apache/juli/JdkLoggerConfig.java
+org/apache/tomcat/util/http/mapper/Mapper.java
+org/apache/tomcat/util/http/mapper/MappingData.java
+org/apache/tomcat/util/http/mapper/SimpleMapper.java
+org/apache/tomcat/util/http/ServerCookie.java
+org/apache/tomcat/util/http/AcceptLanguage.java
+org/apache/tomcat/util/http/BaseRequest.java
+org/apache/tomcat/util/http/MimeHeaders.java
+org/apache/tomcat/util/http/Parameters.java
+org/apache/tomcat/util/http/FastHttpDateFormat.java
+org/apache/tomcat/util/http/MimeMap.java
+org/apache/tomcat/util/http/HttpMessages.java
+org/apache/tomcat/util/http/ContentType.java
+org/apache/tomcat/util/http/Cookies.java
+org/apache/tomcat/util/net/URL.java
+org/apache/tomcat/util/net/SocketStatus.java
+org/apache/tomcat/util/modeler/modules/MbeansDescriptorsSerSource.java
+org/apache/tomcat/util/modeler/modules/MbeansSource.java
+org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDOMSource.java
+org/apache/tomcat/util/modeler/modules/ModelerSource.java
+org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java
+org/apache/tomcat/util/modeler/modules/MbeansSourceMBean.java
+org/apache/tomcat/util/modeler/ConstructorInfo.java
+org/apache/tomcat/util/modeler/NotificationInfo.java
+org/apache/tomcat/util/modeler/BaseAttributeFilter.java
+org/apache/tomcat/util/modeler/FeatureInfo.java
+org/apache/tomcat/util/modeler/Registry.java
+org/apache/tomcat/util/modeler/RegistryMBean.java
+org/apache/tomcat/util/modeler/OperationInfo.java
+org/apache/tomcat/util/modeler/FixedNotificationFilter.java
+org/apache/tomcat/util/modeler/AttributeInfo.java
+org/apache/tomcat/util/modeler/ManagedBean.java
+org/apache/tomcat/util/modeler/BaseNotificationBroadcaster.java
+org/apache/tomcat/util/modeler/ParameterInfo.java
+org/apache/tomcat/util/modeler/BaseModelMBean.java
+org/apache/tomcat/util/modeler/JmxObjectManager.java
+org/apache/tomcat/util/res/StringManager.java
+org/apache/tomcat/util/buf/TimeStamp.java
+org/apache/tomcat/util/buf/UEncoder.java
+org/apache/tomcat/util/buf/HexUtils.java
+org/apache/tomcat/util/buf/CharChunk.java
+org/apache/tomcat/util/buf/DateTool.java
+org/apache/tomcat/util/buf/UTF8Decoder.java
+org/apache/tomcat/util/buf/UriNormalizer.java
+org/apache/tomcat/util/buf/Base64.java
+org/apache/tomcat/util/buf/Ascii.java
+org/apache/tomcat/util/buf/UDecoder.java
+org/apache/tomcat/util/buf/StringCache.java
+org/apache/tomcat/util/buf/MessageBytes.java
+org/apache/tomcat/util/buf/ByteChunk.java
+org/apache/tomcat/util/buf/C2BConverter.java
+org/apache/tomcat/util/buf/B2CConverter.java
+org/apache/tomcat/util/buf/BufferInfo.java
+org/apache/tomcat/util/collections/MultiMapValuesEnumeration.java
+org/apache/tomcat/util/collections/MultiMapNamesEnumeration.java
+org/apache/tomcat/util/collections/SimplePool.java
+org/apache/tomcat/util/collections/Queue.java
+org/apache/tomcat/util/collections/EmptyEnumeration.java
+org/apache/tomcat/util/collections/SimpleHashtable.java
+org/apache/tomcat/util/collections/LRUCache.java
+org/apache/tomcat/util/collections/MultiMap.java
+org/apache/tomcat/util/IntrospectionUtils.java
+org/apache/tomcat/util/MutableInteger.java
+org/apache/tomcat/util/DomUtil.java
+org/apache/tomcat/util/ObjectManager.java
+org/apache/coyote/http11/Http11NioProtocol.java
+org/apache/coyote/http11/Http11NioProcessor.java
+org/apache/coyote/http11/InternalNioOutputBuffer.java
+org/apache/coyote/http11/InternalNioInputBuffer.java
+org/apache/tomcat/util/net/jsse/JSSEImplementation.java
+org/apache/tomcat/util/net/jsse/JSSESupport.java
+org/apache/tomcat/util/net/jsse/JSSESocketFactory.java
+org/apache/tomcat/util/net/jsse/JSSEFactory.java
+org/apache/tomcat/util/net/jsse/JSSEKeyManager.java
+org/apache/tomcat/util/net/SSLImplementation.java
+org/apache/tomcat/util/net/SSLSupport.java
+org/apache/tomcat/util/net/SecureNioChannel.java
+org/apache/tomcat/util/net/NioChannel.java
+org/apache/tomcat/util/net/NioBlockingSelector.java
+org/apache/tomcat/util/net/NioSelectorPool.java
+org/apache/tomcat/util/net/NioEndpoint.java
+org/apache/tomcat/util/net/SocketProperties.java
+org/apache/tomcat/util/net/DefaultServerSocketFactory.java
+org/apache/tomcat/util/net/ServerSocketFactory.java
Added: tomcat/trunk/modules/tomcat-lite/examples/spring/TomcatSpring.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/tomcat-lite/examples/spring/TomcatSpring.java?rev=762090&view=auto
==============================================================================
--- tomcat/trunk/modules/tomcat-lite/examples/spring/TomcatSpring.java (added)
+++ tomcat/trunk/modules/tomcat-lite/examples/spring/TomcatSpring.java Sun Apr 5 14:24:42 2009
@@ -0,0 +1,57 @@
+
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+
+import org.apache.tomcat.integration.ObjectManager;
+import org.apache.tomcat.lite.TomcatLite;
+import org.springframework.beans.factory.support.DefaultListableBeanFactory;
+import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
+
+/**
+ * Example of embedding tomcat-lite in Spring.
+ *
+ * Spring is a good example because it has some limitations - it can't
+ * inject into existing (user-created) objects, which would have been
+ * nice and easier for tomcat-lite. As a result, things are harder and more
+ * verbose than they should.
+ *
+ * This is just an example - I'm not an expert in spring and I wouldn't
+ * use it, too verbose and bloated - while still missing existing-objects
+ * injection ( at least for regular objects ).
+ *
+ * This should also work with small modifications for jboss microcontainer,
+ * and probably other frameworks that support POJO.
+ *
+ * @author Costin Manolache
+ */
+public class TomcatSpring {
+
+ void loadProperties() throws IOException, ServletException {
+ final DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
+
+ // Properties won't work - no support for list.
+ // PropertiesBeanDefinitionReader rdr =
+ XmlBeanDefinitionReader rdr = new XmlBeanDefinitionReader(factory);
+ rdr.loadBeanDefinitions("tomcat-spring.xml");
+
+ TomcatLite lite = (TomcatLite) factory.getBean("TomcatLite");
+
+ lite.setObjectManager(new ObjectManager() {
+ public Object get(String name) {
+ int lastDot = name.lastIndexOf(".");
+ if (lastDot > 0) {
+ name = name.substring(lastDot + 1);
+ }
+ return factory.getBean(name);
+ }
+ });
+
+ lite.run();
+ }
+
+ public static void main(String[] args) throws IOException, ServletException {
+ new TomcatSpring().loadProperties();
+ }
+}
Propchange: tomcat/trunk/modules/tomcat-lite/examples/spring/TomcatSpring.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: tomcat/trunk/modules/tomcat-lite/examples/spring/tomcat-spring.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/tomcat-lite/examples/spring/tomcat-spring.xml?rev=762090&view=auto
==============================================================================
--- tomcat/trunk/modules/tomcat-lite/examples/spring/tomcat-spring.xml (added)
+++ tomcat/trunk/modules/tomcat-lite/examples/spring/tomcat-spring.xml Sun Apr 5 14:24:42 2009
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+
+
+<bean id="UserSessionManager" class="org.apache.tomcat.servlets.session.SimpleSessionManager"
+ scope="prototype" lazy-init="true"/>
+
+<bean id="WebappServletMapper" class="org.apache.tomcat.lite.WebappServletMapper"
+ scope="prototype" lazy-init="true"/>
+
+<bean id="WebappFilterMapper" class="org.apache.tomcat.lite.WebappFilterMapper"
+ scope="prototype" lazy-init="true"/>
+
+<bean id="UserTemplateClassMapper" class="org.apache.tomcat.servlets.jsp.JasperCompilerTemplateClassMapper"
+ scope="prototype" lazy-init="true"/>
+
+<bean id="ContextPreinitListener" class="org.apache.tomcat.lite.webxml.TomcatLiteWebXmlConfig"
+ scope="prototype" lazy-init="true"/>
+
+<bean id="default-servlet" class="org.apache.tomcat.servlets.file.WebdavServlet"
+ scope="prototype" lazy-init="true"/>
+
+<bean id="jspwildcard-servlet" class="org.apache.tomcat.servlets.jsp.WildcardTemplateServlet"
+ scope="prototype" lazy-init="true"/>
+
+<bean id="Context1" class="org.apache.tomcat.lite.ServletContextImpl" >
+ <property name="contextPath" value="/"/>
+ <property name="basePath" value="./webapps/ROOT"/>
+</bean>
+
+<bean id="Context2" class="org.apache.tomcat.lite.ServletContextImpl" >
+ <property name="contextPath" value="/examples"/>
+ <property name="basePath" value="./webapps/examples"/>
+</bean>
+
+
+ <bean id="connector1" class="org.apache.tomcat.lite.coyote.CoyoteHttp">
+ <property name="port" value="9999"/>
+ </bean>
+
+ <bean id="TomcatLite" class="org.apache.tomcat.lite.TomcatLite">
+ <property name="connector"><ref bean="connector1"/></property>
+ <property name="servletContexts">
+ <list>
+ <ref bean="Context1"/>
+ <ref bean="Context2"/>
+ </list>
+ </property>
+ </bean>
+
+</beans>
\ No newline at end of file
Propchange: tomcat/trunk/modules/tomcat-lite/examples/spring/tomcat-spring.xml
------------------------------------------------------------------------------
svn:eol-style = native
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org