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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org