|
View:
New views
5 Messages
—
Rating Filter:
Alert me
|
|
|
Eclipse Dynamic Web Project for RollerI'm using Eclipse at work now and considering using it for Roller dev too.
Anybody ever get Roller configured as an Eclipse "Dynamic Web Project" and if so, any pointers to share? - Dave |
|
|
Re: Eclipse Dynamic Web Project for RollerHi Dave,
Yes, we use Eclipse "Dynamic Web Project" for debugging roller and it works well. A while ago we got it working with some steps set-out by Adib in this discussion list (you might be able to search for the original post). The following steps are are for Roller 3.x, so the structures changed a little since then: 1. Build Roller 2. Create a new 'Dynamic Web Project' 3. Copy from Roller 'build/webapp/*' into the 'WebContent' directory. 4. Create a 'resources' source folder. 5. Move 'WebContent/WEB-INF/classes/*' in the 'resources' source folder. 6. Copy from Roller 'src/*' into the 'src' folder. 7. Copy from Roller 'build/compile/business/*' into the 'src' folder. 8. Copy from Roller 'build/compile/web/*' into the 'src' folder. 9. Remove 'WebContent/WEB-INF/lib/roller-*.jar'. 10. Create a simple 'context.xml' file in 'WebContent/META-INF/' with the database connection string. 11. Run using 'Debug on Server' (and set-up the necessary Tomcat server). We've also created 2 build targets to make the "deploying" and "syncing" easier. I've attached the edited build.xml. Again this is for Roller 3.x and you would need to add something like the following to your ant.properties: # --------------------------------------------------- # Path to Roller source, needed by our custom Netbeans actions project.dir=/home/workspace/roller trunk # Path to Eclipse Dynamic Web Project; needed by our custom Eclipse actions eclipse.dwp.dir=/home/workspace/roller_debug # --------------------------------------------------- In the build.xml, look for the new targets: sync-debug deploy-debug Hope that helps. Cheers, Richard On Sat, Nov 7, 2009 at 12:22 PM, Dave <snoopdave@...> wrote: > I'm using Eclipse at work now and considering using it for Roller dev too. > > Anybody ever get Roller configured as an Eclipse "Dynamic Web Project" > and if so, any pointers to share? > > - Dave > -- PixyBlog - Expose Yourself ---------------------------------------- www.pixyblog.com ---------------------------------------- Pixy Ltd. 2a Bracken Road Maidenhead Berkshire SL6 3EF U.K. Email: info@... Tel: +44 (0)20 8144 1841 Skype: pixyblog <?xml version="1.0"?> <!DOCTYPE project [ <!ENTITY properties SYSTEM "properties.xmlf"> <!ENTITY custom-ant SYSTEM "custom/custom-ant.xmlf"> <!ENTITY custom-jars SYSTEM "custom/custom-jars.xmlf"> <!ENTITY custom-gen-business SYSTEM "custom/custom-gen-business.xmlf"> <!ENTITY custom-build-business SYSTEM "custom/custom-build-business.xmlf"> <!ENTITY custom-build-web SYSTEM "custom/custom-build-web.xmlf"> <!ENTITY custom-gen-web SYSTEM "custom/custom-gen-web.xmlf"> <!ENTITY custom-src-web SYSTEM "custom/custom-src-web.xmlf"> <!ENTITY custom-web SYSTEM "custom/custom-web.xmlf"> <!ENTITY custom-src-tests SYSTEM "custom/custom-src-tests.xmlf"> <!ENTITY custom-dbscripts SYSTEM "custom/custom-dbscripts.xmlf"> <!ENTITY custom-pre-dbtest SYSTEM "custom/custom-pre-dbtest.xmlf"> <!ENTITY custom-post-dbtest SYSTEM "custom/custom-post-dbtest.xmlf"> ]> <!-- ********************************************************************* --> <!-- Ant build script for Roller main branch --> <!-- Author: David M Johnson --> <!-- ********************************************************************* --> <project name="roller" default="usage"> <!-- Because we don't want to allow release builds to be done with Java 1.5 (yet) --> <available classname="java.lang.ProcessBuilder" property="java15.present" /> <!-- Bring in properties.xml --> &properties; <!-- Bring in custom properties and targets --> &custom-ant; <target name="usage" description="Print usage for key targets"> <echo> Key Targets: all - Build all: gen wrappers/forms, compile, gen web, gen O/R mappings, stage webapp build - Same as 'all' but NO code gen stage-webapp - Build almost all: compile, gen web, gen O/R mappings, stage webapp apache-release - Build binary and source release files clean - Blow away all generated code and all byte code rebuild - Clean and build all deploy-debug - Build all and create an Eclipse Dynamic Web Project for debugging sync-debug - Sync Eclipse Dynamic Web Project with the main project tests - Build and run all JUnit tests build-tests - Build all JUnit tests test-business - Start DB, run business layer tests, stop DB test-presentation - Run presentation layer tests test-utils - Run utility tests start-db - Start test DB init-db - Initialize a running test DB stop-db - Stop test DB docs - Build all docs javadoc - Build javadocs velocidocs - Build velocidocs usage - Print this help text... </echo> </target> <!-- ================================================ --> <!-- Meta targets --> <!-- ================================================ --> <target name="all" depends="generate,stage-webapp" description="Build all"> </target> <target name="build" depends="copy-webapp" description="Compile code and copy files, no code generation"> </target> <target name="rebuild" depends="clean,all" description="Clean and build all"> </target> <target name="clean" description="Clean out build and dist directory"> <delete dir="${ro.build}" /> <delete dir="${ro.dist}" /> </target> <!-- ********************************************************************* --> <!-- XDoclet code generation --> <!-- ********************************************************************* --> <target name="generate" depends="gen-wrappers,gen-forms" > </target> <!-- ============================================== --> <!-- generate code/files for the business layer --> <target name="gen-business" description="Generate business layer resources"> <taskdef name="hibernatedoclet" classname="xdoclet.modules.hibernate.HibernateDocletTask" classpathref="xdoclet.path" /> <!-- there is a bug in xdoclet such that mergedir must be the same as destdir, or the merge files won't be read so i create a little copy command and put the merge files (hibernate-properties-*) in next to the *.java file and it handles it. i'd like these to live in metadata, but then i would have to rcreate the entire package structure in there, and i don't really want to! --> <copy todir="${build.compile.business}/org/apache/roller/pojos"> <fileset dir="./metadata/xdoclet" includes="**/hibernate-properties*.xml"/> </copy> <hibernatedoclet destdir="${build.compile.business}" mergedir="${build.compile.business}" excludedtags="@version,@author" addedtags="@xdoclet-generated at ${TODAY}" force="true"> <fileset dir="${ro.src}" includes="org/apache/roller/pojos/WeblogTemplate.java" /> <fileset dir="${ro.src}" includes="org/apache/roller/pojos/*Data.java" /> <fileset dir="${ro.src}" includes="org/apache/roller/pojos/*Assoc.java" /> <fileset dir="${ro.src}" includes="org/apache/roller/planet/pojos/*Assoc.java" /> <fileset dir="${ro.src}" includes="org/apache/roller/planet/pojos/*Data.java" /> <hibernate validatexml="true" version="3.0"/> </hibernatedoclet> <!-- copy database related files --> <antcall target="stage-dbscripts" /> <!-- allow for custom generation work --> &custom-gen-business; </target> <!-- ============================================== --> <!-- Generate pojo wrappers --> <target name="gen-wrappers" description="XDoclet generate pojo wrappers"> <!-- Define the XDoclet task --> <taskdef name="xdoclet" classname="xdoclet.DocletTask" classpathref="xdoclet.path" /> <xdoclet destdir="${build.generated.business}"> <packageSubstitution packages="pojos" substituteWith="pojos.wrapper"/> <fileset dir="${ro.src}"> <!-- it may be easier to glob using *Data.java at some point, but for now that will generate a lot of unneeded classes. maybe we can extend the process to only wrap classes that have methods tagged with @roller.wrapPojoMethod ?? --> <include name="org/apache/roller/pojos/BookmarkData.java"/> <include name="org/apache/roller/pojos/CommentData.java"/> <include name="org/apache/roller/pojos/EntryAttributeData.java"/> <include name="org/apache/roller/pojos/FolderData.java"/> <include name="org/apache/roller/pojos/RefererData.java"/> <include name="org/apache/roller/pojos/Template.java"/> <include name="org/apache/roller/pojos/UserData.java"/> <include name="org/apache/roller/pojos/WeblogEntryData.java"/> <include name="org/apache/roller/pojos/WeblogEntryTagData.java"/> <include name="org/apache/roller/pojos/WeblogGalleryData.java"/> <include name="org/apache/roller/pojos/SiteTagAggregateData.java"/> <include name="org/apache/roller/pojos/WebsiteData.java"/> <include name="org/apache/roller/pojos/TagStat.java"/> <include name="org/apache/roller/pojos/ImageData.java"/> <include name="org/apache/roller/pojos/ImageExifData.java"/> <include name="org/apache/roller/pojos/ImagePreviewData.java"/> <include name="org/apache/roller/pojos/WatermarkData.java"/> <include name="org/apache/roller/pojos/EntryImageData.java"/> <include name="org/apache/roller/pojos/EntryGalleryData.java"/> <include name="org/apache/roller/pojos/BasketData.java"/> <include name="org/apache/roller/pojos/LightboxData.java"/> <include name="org/apache/roller/pojos/OrderData.java"/> <include name="org/apache/roller/pojos/OrderTransactionData.java"/> <include name="org/apache/roller/pojos/ProductData.java"/> <include name="org/apache/roller/pojos/ProductCategoryData.java"/> <include name="org/apache/roller/pojos/ServiceData.java"/> <include name="org/apache/roller/pojos/ProductDeliveryData.java"/> <include name="org/apache/roller/pojos/DeliveryMethodData.java"/> <include name="org/apache/roller/pojos/AffiliateData.java"/> <include name="org/apache/roller/pojos/AffiliateGroupData.java"/> <include name="org/apache/roller/pojos/AffiliateRateData.java"/> <include name="org/apache/roller/pojos/UserCardData.java"/> <include name="org/apache/roller/pojos/UserAddressData.java"/> <include name="org/apache/roller/planet/pojos/PlanetEntryData.java"/> <include name="org/apache/roller/planet/pojos/PlanetEntryImageData.java"/> <include name="org/apache/roller/planet/pojos/PlanetSubscriptionData.java"/> </fileset> <template destinationFile="{0}Wrapper.java" templateFile="metadata/xdoclet/pojo_wrapper.xdt" subTaskName="Pojo Wrappers" /> </xdoclet> </target> <!-- ============================================== --> <!-- generate Struts forms --> <target name="gen-forms" description="XDoclet generate form beans"> <!-- Define the XDoclet xdoclet task --> <taskdef name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask" classpathref="xdoclet.path" /> <mkdir dir="${build.generated.web}"/> <!-- Use EJBDoclet to generate Struts forms --> <ejbdoclet destdir="${build.generated}/unused" excludedtags="@version,@author"> <fileset dir="${ro.src}" includes="org/apache/roller/pojos/WeblogTemplate.java" /> <fileset dir="${ro.src}" includes="org/apache/roller/pojos/*Data.java" /> <fileset dir="${ro.src}" includes="org/apache/roller/planet/pojos/*Data.java" /> &custom-gen-web; <!-- Generate Struts forms --> <strutsform destdir="${build.generated.web}" prefixWithPackageStructure="no" templateFile="./metadata/xdoclet/struts_form.xdt"> <!-- into the org.apache.roller.ui.authoring.struts.forms package --> <packageSubstitution packages="pojos" substituteWith="ui.authoring.struts.forms"/> </strutsform> <!-- We are not actually generating data objects, but using the dataobject subtask allows the strutsform subtask to add nice constructors and setData methods to Struts forms --> <dataobject destdir="${ro.build}/unused" pattern="{0}" /> </ejbdoclet> <!-- Change Struts form names from *DataForm.java to *Form.java --> <replace dir="${build.generated.web}/org/apache/roller/ui/authoring/struts/forms" token="DataForm" value="Form"/> <move todir="${build.generated.web}/org/apache/roller/ui/authoring/struts/forms"> <fileset dir="${build.generated.web}/org/apache/roller/ui/authoring/struts/forms" > <include name="*DataForm.java"/> <include name="*ConfigForm.java" /> </fileset> <mapper type="glob" from="*DataForm.java" to="*Form.java"/> </move> <replace dir="${build.generated.web}/org/apache/roller/planet/ui/authoring/struts/forms" token="DataForm" value="Form"/> <move todir="${build.generated.web}/org/apache/roller/planet/ui/authoring/struts/forms"> <fileset dir="${build.generated.web}/org/apache/roller/planet/ui/authoring/struts/forms" > <include name="*DataForm.java"/> <include name="*ConfigForm.java" /> </fileset> <mapper type="glob" from="*DataForm.java" to="*Form.java"/> </move> </target> <!-- ============================================== --> <!-- Generate web deployment descriptors --> <target name="gen-web" description="XDoclet generate web depoyment descriptors"> <!-- Define the XDoclet webdoclet task --> <taskdef name="webdoclet" classname="xdoclet.modules.web.WebDocletTask" classpathref="xdoclet.path" /> <!-- Use WebDoclet to web.xml, struts-config.xml, and TLDs --> <mkdir dir="${build.webapp}/WEB-INF"/> <mkdir dir="${build.compile.web}/META-INF/tlds"/> <webdoclet force="true" destdir="${build.webapp}/WEB-INF" mergedir="./metadata/xdoclet" excludedtags="@version,@author"> <fileset dir="${ro.src}"> <!-- Speed up XDoclet by limiting number of files it has to process --> <include name="**/*Action.java" /> <include name="**/*Filter.java" /> <include name="**/*Form.java" /> <include name="**/*FormEx.java" /> <include name="**/*Servlet.java" /> <include name="**/*Tag.java" /> <include name="org/apache/roller/ui/**/actions/*.java" /> <include name="org/apache/roller/ui/core/RollerContext.java" /> <include name="org/apache/roller/ui/core/RollerSession.java" /> <exclude name="**/LinkTag**" /> <exclude name="**/LinkParamTag**" /> </fileset> <fileset dir="${build.generated.web}"> <include name="**/*Form.java" /> </fileset> &custom-gen-web; <!-- web.xml config --> <deploymentdescriptor servletspec="2.4" destdir="${build.webapp}/WEB-INF" sessiontimeout="30" displayname="PixyBlog" /> <!-- jsp taglib descriptor config --> <jsptaglib jspversion="1.2" filename="roller.tld" shortname="roller" uri="http://www.rollerweblogger.org/tags" destdir="${build.webapp}/WEB-INF/classes/META-INF/tlds" /> <!-- struts struts-config.xml --> <strutsconfigxml destdir="${build.webapp}/WEB-INF" validatexml="true" mergedir="./metadata/xdoclet" version="1.1" /> <!-- struts validation.xml --> <strutsvalidationxml/> </webdoclet> </target> <!-- ********************************************************************* --> <!-- Compile and jar Business Tier classes --> <!-- ********************************************************************* --> <target name="build-business"> <mkdir dir="${build.generated.business}"/> <mkdir dir="${build.compile.business}"/> <mkdir dir="${build.lib}"/> <tstamp> <format property="ro.buildTime" pattern="yyyyMMddhhmmss" /> </tstamp> <echo file="${build.compile.business}/version.properties"> ro.version=${ro.version} ro.buildTime=${ro.buildTime} ro.buildUser=${user.name} </echo> <!-- compile roller business classes --> <javac destdir="${build.compile.business}" excludes="org/apache/roller/ui/**, org/apache/roller/webservices/**" debug="${build.debug}" source="${build.sourcelevel}" deprecation="${build.deprecation}"> <src path="${ro.src}" /> <src path="${build.generated.business}"/> <classpath> <path refid="business.path"/> &custom-jars; </classpath> </javac> <!-- Copy resources --> <copy todir="${build.compile.business}"> <fileset dir="${ro.src}" excludes="**/*.java, **/*.html, **/*.png, org/apache/roller/ui/**, org/apache/roller/webservices/**" /> <fileset dir="${build.generated.business}" excludes="**/*.java" /> </copy> <!-- allow for custom build work --> &custom-build-business; <!-- Jar up the business layer --> <jar basedir="${build.compile.business}" jarfile="${build.lib}/roller-business.jar"/> </target> <!-- ********************************************************************* --> <!-- Compile and jar Presentation Tier classes --> <!-- ********************************************************************* --> <target name="build-web" depends="build-business" > <mkdir dir="${build.compile.web}" /> <javac debug="${build.debug}" source="${build.sourcelevel}" destdir="${build.compile.web}" includes="org/apache/roller/ui/**, org/apache/roller/webservices/**, org/apache/roller/util/rome/**" > <src path="${ro.src}" /> <src path="${build.generated.web}"/> &custom-src-web; <classpath> <path refid="presentation.path"/> <path location="${build.compile.business}"/> &custom-jars; </classpath> </javac> <!-- Copy in resources --> <copy todir="${build.compile.web}"> <fileset dir="${ro.src}"> <include name="**/*.properties"/> <include name="**/*.tpl"/> <include name="**/*.vm"/> </fileset> </copy> &custom-build-web; <!-- Jar up web classes --> <jar jarfile="${build.lib}/roller-web.jar"> <fileset dir="${build.compile.web}" excludes="**/tomcat/**"/> </jar> </target> <!-- ********************************************************************* --> <!-- Stage web application --> <!-- ********************************************************************* --> <target name="stage-webapp" depends="gen-business, build-business, gen-web, build-web, copy-webapp" description="Stage webapp, including jars"> </target> <target name="copy-webapp" depends="build-web" description="Stage webapp without code generation"> <mkdir dir="${build.webapp}/WEB-INF/lib"/> <mkdir dir="${build.webapp}/WEB-INF/tlds"/> <!-- Copy database configs to classpath in staging --> <copy todir="${build.webapp}/WEB-INF/classes"> <fileset dir="${basedir}/metadata/database/hibernate" includes="hibernate.cfg.xml"/> </copy> <!-- Copy WEB-INF contents to staging --> <copy todir="${build.webapp}/WEB-INF"> <fileset dir="${tools.struts}/lib" includes="validator-rules.xml"/> </copy> <!-- Copy other jars --> <copy todir="${build.webapp}/WEB-INF/lib"> <fileset dir="${build.lib}" /> <fileset dir="./contrib/lib" /> <fileset refid="base.jars" /> <fileset refid="presentation.jars" /> <fileset refid="hibernate.jar" /> <fileset refid="hibernate.jars" /> <fileset refid="commons.jars" /> <fileset refid="struts.jars" /> <fileset refid="spring.jars" /> <fileset refid="jstl.jars" /> <fileset refid="verticalresponse.jars" /> <!-- include custom jars --> &custom-jars; </copy> <!-- Copy DTDs and TLDs --> <copy todir="${build.webapp}/WEB-INF/tlds"> <fileset dir="${ro.tools}/lib" includes="*.tld"/> </copy> <!-- Copy web contents to staging, plus README files. --> <copy todir="${build.webapp}"> <fileset dir="./web"> <include name="**/*"/> <exclude name="**/codewright*/**"/> <exclude name="**/*.bak"/> <exclude name="**/*~"/> </fileset> </copy> <!-- Copy docs to staging --> <copy todir="${build.webapp}/roller-ui/docs"> <fileset dir="${basedir}/docs"> <include name="examples/**" /> <include name="userguide/**" /> <exclude name="installguide/**" /> <exclude name="**/old/**" /> </fileset> </copy> <!-- apply custom web task --> &custom-web; </target> <!-- ********************************************************************* --> <!-- Debugging in Eclipse Dynamic Web Project --> <!-- ********************************************************************* --> <target name="deploy-debug" depends="build-web" description="Deploy to Eclipse Dynamic Web Project for debugging"> <delete dir="${eclipse.dwp.dir}/src" /> <delete dir="${eclipse.dwp.dir}/resources" /> <delete dir="${eclipse.dwp.dir}/WebContent" /> <!-- Copy the configuration files --> <copy todir="${eclipse.dwp.dir}/resources"> <fileset dir="${build.webapp}/WEB-INF/classes"/> </copy> <!-- Copy the source files --> <copy todir="${eclipse.dwp.dir}/src"> <fileset dir="${ro.src}"> <include name="**/*.java"/> <exclude name="**/*.class"/> </fileset> </copy> <!-- Copy the generated business files --> <copy todir="${eclipse.dwp.dir}/src"> <fileset dir="${build.generated.business}"> <include name="**/*.java"/> <exclude name="**/*.class"/> </fileset> </copy> <!-- Copy the compiled business files --> <copy todir="${eclipse.dwp.dir}/src"> <fileset dir="${build.compile.business}"> <include name="version.properties"/> <include name="**/*.hbm.xml"/> <exclude name="**/*.class"/> </fileset> </copy> <!-- Copy the generated web files --> <copy todir="${eclipse.dwp.dir}/src"> <fileset dir="${build.generated.web}"> <include name="**/*.java"/> <include name="**/smileys.properties"/> <exclude name="**/*.class"/> </fileset> </copy> <!-- Copy the compiled web files --> <copy todir="${eclipse.dwp.dir}/src"> <fileset dir="${build.compile.web}"> <include name="version.properties"/> <include name="**/*.hbm.xml"/> <exclude name="**/*.class"/> </fileset> </copy> <!-- Copy the webapp --> <copy todir="${eclipse.dwp.dir}/WebContent"> <fileset dir="${build.webapp}"> <exclude name="WEB-INF/classes/**"/> <exclude name="**/roller-business.jar"/> <exclude name="**/roller-web.jar"/> </fileset> </copy> <!-- Copy the context.xml file containing the database connection --> <copy todir="${eclipse.dwp.dir}/WebContent/META-INF/"> <fileset dir="${basedir}/personal" includes="context.xml"/> </copy> </target> <target name="sync-debug" description="Synchronize with Eclipse Dynamic Web Project"> <!-- Copy back the src --> <copy todir="${ro.src}"> <fileset dir="${eclipse.dwp.dir}/src"> <exclude name="version.properties"/> <exclude name="**/*.hbm.xml"/> <exclude name="org/apache/roller/pojos/wrapper/**"/> <exclude name="org/apache/roller/planet/pojos/wrapper/**"/> <exclude name="org/apache/roller/planet/ui/**"/> <!-- remove when have something in this dir --> <exclude name="org/apache/roller/planet/ui/authoring/struts/forms/**"/> <exclude name="org/apache/roller/ui/authoring/struts/forms/**"/> </fileset> </copy> <!-- Copy back the WEB-INF/classes config files --> <copy todir="${ro.web}/WEB-INF/classes"> <fileset dir="${eclipse.dwp.dir}/resources"> <exclude name="META-INF/**"/> <exclude name="hibernate.cfg.xml"/> </fileset> </copy> <!-- Copy back the config files --> <copy todir="${ro.web}"> <fileset dir="${eclipse.dwp.dir}/WebContent"> <exclude name="META-INF/**"/> <exclude name="WEB-INF/dbscripts/**/createdb.sql"/> <exclude name="WEB-INF/dbscripts/droptables.sql"/> <exclude name="roller-ui/docs/**"/> <exclude name="WEB-INF/struts-config.xml"/> <exclude name="WEB-INF/validation.xml"/> <exclude name="WEB-INF/validator-rules.xml"/> <exclude name="WEB-INF/web.xml"/> <exclude name="WEB-INF/lib/**"/> <exclude name="WEB-INF/tlds/**"/> </fileset> </copy> </target> <!-- ********************************************************************* --> <!-- Create different versions of database setup script --> <!-- With this approach we won't have to expand the script all the time. --> <!-- ********************************************************************* --> <target name="stage-dbscripts"> <property name="dbscripts" value="${build.webapp}/WEB-INF/dbscripts"/> <!-- Create database creation script directory --> <mkdir dir="${dbscripts}"/> <copy todir="${dbscripts}"> <fileset dir="./metadata/database" includes="droptables.sql"/> </copy> <taskdef name="texen" classname="org.apache.velocity.texen.ant.TexenTask" classpath="${basedir}/tools/lib/velocity-dep-1.4.jar" /> <texen controlTemplate="control.vm" contextProperties="${basedir}/metadata/database/mysql.properties" templatePath="${basedir}/metadata/database/" outputDirectory="${build.webapp}/WEB-INF/dbscripts/mysql/" outputFile="README.txt" /> <texen controlTemplate="control.vm" contextProperties="${basedir}/metadata/database/postgresql.properties" templatePath="${basedir}/metadata/database/" outputDirectory="${build.webapp}/WEB-INF/dbscripts/postgresql/" outputFile="README.txt" /> <texen controlTemplate="control.vm" contextProperties="${basedir}/metadata/database/hsqldb.properties" templatePath="${basedir}/metadata/database/" outputDirectory="${build.webapp}/WEB-INF/dbscripts/hsqldb/" outputFile="README.txt" /> <texen controlTemplate="control.vm" contextProperties="${basedir}/metadata/database/derby.properties" templatePath="${basedir}/metadata/database/" outputDirectory="${build.webapp}/WEB-INF/dbscripts/derby/" outputFile="README.txt" /> <texen controlTemplate="control.vm" contextProperties="${basedir}/metadata/database/db2.properties" templatePath="${basedir}/metadata/database/" outputDirectory="${build.webapp}/WEB-INF/dbscripts/db2/" outputFile="README.txt" /> <texen controlTemplate="control.vm" contextProperties="${basedir}/metadata/database/oracle.properties" templatePath="${basedir}/metadata/database/" outputDirectory="${build.webapp}/WEB-INF/dbscripts/oracle/" outputFile="README.txt" /> <texen controlTemplate="control.vm" contextProperties="${basedir}/metadata/database/mssql.properties" templatePath="${basedir}/metadata/database/" outputDirectory="${build.webapp}/WEB-INF/dbscripts/mssql/" outputFile="README.txt" /> </target> <!-- ********************************************************************* --> <!-- Generate Javadocs and Velocidocs --> <!-- ********************************************************************* --> <target name="docs" depends="javadoc,velocidoc" > <copy todir="${build.javadoc}"> <fileset dir="${build.velocidoc}/docs"> <include name="*.css"/> </fileset> </copy> </target> <target name="javadoc"> <mkdir dir="${build.javadoc}"/> <javadoc bottom="Copyright (C) David M Johnson" classpathref="javadoc.path" destdir="${build.javadoc}" doctitle="Javadocs: Roller Weblogger ${ro.version}" private="false" version="false" windowtitle="Javadocs: Roller Weblogger ${ro.version}"> <sourcepath> <pathelement path="./src"/> <pathelement path="${ro.build}/generated/src.business"/> <pathelement path="${ro.build}/generated/src.presentation"/> </sourcepath> <packageset dir="src" defaultexcludes="yes"> <include name="org/apache/roller/**" /> <exclude name="org/apache/roller/business/prevayler/**" /> </packageset> <link href="http://java.sun.com/j2se/1.4/docs/api/"/> <link href="http://java.sun.com/products/servlet/2.3/javadoc/"/> <link href="http://jakarta.apache.org/struts/doc-1.0.2/api"/> <link href="http://hibernate.bluemars.net/hib_docs/api/"/> </javadoc> <copy todir="${build.javadoc}"> <fileset dir="${basedir}/src"> <include name="**/roller*.png"/> </fileset> </copy> </target> <target name="velocidoc"> <mkdir dir="${build.velocidoc}/temp"/> <copy todir="${build.velocidoc}/temp"> <fileset dir="./web/WEB-INF/velocity/"> <include name="weblog.vm" /> <include name="feeds.vm" /> </fileset> </copy> <mkdir dir="${build.velocidoc}/docs"/> <java fork="true" jar="${ro.tools}/buildtime/velocidoc-app.jar"> <arg line="-s ${build.velocidoc}/temp \ -d ${build.velocidoc}/docs \ -t ${ro.tools}/buildtime/velocidoc-templates/ \ -c ${ro.tools}/buildtime/velocidoc-templates/control.vm "/> </java> </target> <!-- ********************************************************************* --> <!-- Create Binary Releases --> <!-- ********************************************************************* --> <target name="apache-release" depends="apache-binary,apache-sources"> </target> <!-- ********************************************************************* --> <!-- Create Binary Release --> <!-- ********************************************************************* --> <target name="stage-binary" depends="version-check" > <!-- copy in release documents --> <copy todir="${build.dist.binary}"> <fileset dir="${basedir}"> <include name="docs/**" /> <include name="CHANGES.txt" /> <include name="LICENSE.txt" /> <include name="NOTICE.txt" /> <include name="README.txt" /> <exclude name="**/codewright*/**"/> <exclude name="docs/installguide/old/**"/> <exclude name="docs/userguide/old/**"/> <exclude name="docs/testing/**"/> <exclude name="**/CVS/**"/> <exclude name="**/*.bak"/> <exclude name="**/*-hide"/> <exclude name="**/*.diff"/> <exclude name="**/*.patch"/> <exclude name="**/*~"/> <exclude name="**/*.#*"/> <exclude name="**/WS_FTP.LOG"/> <exclude name="**/.nbattrs"/> </fileset> </copy> <!-- and of course we'll want the webapp too --> <copy todir="${build.dist.binary}/webapp/roller"> <fileset dir="${build.webapp}" /> </copy> </target> <target name="dist-binary" depends="stage-binary"> <mkdir dir="${ro.dist}" /> <!-- Tar and GZip the binary release --> <tar destfile="${ro.dist}/roller-${ro.version}.tar.gz" longfile="gnu" compression="gzip"> <tarfileset dir="${build.dist.binary}" prefix="${ro.name}-${ro.version}" /> </tar> </target> <target name="apache-binary" depends="stage-binary"> <mkdir dir="${ro.dist}" /> <!-- Tar and GZip the apache sources release --> <tar destfile="${ro.dist}/${ro.name}-${ro.version}.tar.gz" longfile="gnu" compression="gzip"> <!-- don't include unshippables in apache release --> <tarfileset dir="${build.dist.binary}" prefix="${ro.name}-${ro.version}"> <exclude name="webapp/roller/WEB-INF/lib/mail.jar" /> <exclude name="webapp/roller/WEB-INF/lib/activation.jar" /> <exclude name="webapp/roller/WEB-INF/lib/hibernate3.jar" /> <exclude name="webapp/roller/WEB-INF/lib/asm.jar" /> <exclude name="webapp/roller/WEB-INF/lib/asm-attrs.jar" /> <exclude name="webapp/roller/WEB-INF/lib/cglib-2.1.3.jar" /> <exclude name="webapp/roller/WEB-INF/lib/dom4j-1.6.1.jar" /> <exclude name="webapp/roller/WEB-INF/lib/ehcache-1.1.jar" /> <exclude name="webapp/roller/WEB-INF/lib/jdbc2_0-stdext.jar" /> <exclude name="webapp/roller/WEB-INF/lib/jta.jar" /> </tarfileset> </tar> <zip destfile="${ro.dist}/${ro.name}-${ro.version}.zip"> <!-- don't include unshippables in apache release --> <zipfileset dir="${build.dist.binary}" prefix="${ro.name}-${ro.version}"> <exclude name="webapp/roller/WEB-INF/lib/mail.jar" /> <exclude name="webapp/roller/WEB-INF/lib/activation.jar" /> <exclude name="webapp/roller/WEB-INF/lib/hibernate3.jar" /> <exclude name="webapp/roller/WEB-INF/lib/asm.jar" /> <exclude name="webapp/roller/WEB-INF/lib/asm-attrs.jar" /> <exclude name="webapp/roller/WEB-INF/lib/cglib-2.1.3.jar" /> <exclude name="webapp/roller/WEB-INF/lib/dom4j-1.6.1.jar" /> <exclude name="webapp/roller/WEB-INF/lib/ehcache-1.1.jar" /> <exclude name="webapp/roller/WEB-INF/lib/jdbc2_0-stdext.jar" /> <exclude name="webapp/roller/WEB-INF/lib/jta.jar" /> </zipfileset> </zip> <!-- Tar and GZip the apache binary unshippables --> <tar destfile="${ro.dist}/required-jars-roller-${ro.version}.tar.gz" longfile="gnu" compression="gzip"> <!-- only include unshippables --> <tarfileset dir="${build.dist.binary}" prefix="${ro.name}-${ro.version}"> <exclude name="webapp/roller/WEB-INF/lib/mail.jar" /> <exclude name="webapp/roller/WEB-INF/lib/activation.jar" /> <include name="webapp/roller/WEB-INF/lib/hibernate3.jar" /> <include name="webapp/roller/WEB-INF/lib/asm.jar" /> <include name="webapp/roller/WEB-INF/lib/asm-attrs.jar" /> <include name="webapp/roller/WEB-INF/lib/cglib-2.1.3.jar" /> <include name="webapp/roller/WEB-INF/lib/dom4j-1.6.1.jar" /> <include name="webapp/roller/WEB-INF/lib/ehcache-1.1.jar" /> <include name="webapp/roller/WEB-INF/lib/jdbc2_0-stdext.jar" /> <include name="webapp/roller/WEB-INF/lib/jta.jar" /> </tarfileset> </tar> <zip destfile="${ro.dist}/required-jars-roller-${ro.version}.zip" > <zipfileset dir="${build.dist.binary}" prefix="${ro.name}-${ro.version}"> <exclude name="webapp/roller/WEB-INF/lib/mail.jar" /> <exclude name="webapp/roller/WEB-INF/lib/activation.jar" /> <include name="webapp/roller/WEB-INF/lib/hibernate3.jar" /> <include name="webapp/roller/WEB-INF/lib/asm.jar" /> <include name="webapp/roller/WEB-INF/lib/asm-attrs.jar" /> <include name="webapp/roller/WEB-INF/lib/cglib-2.1.3.jar" /> <include name="webapp/roller/WEB-INF/lib/dom4j-1.6.1.jar" /> <include name="webapp/roller/WEB-INF/lib/ehcache-1.1.jar" /> <include name="webapp/roller/WEB-INF/lib/jdbc2_0-stdext.jar" /> <include name="webapp/roller/WEB-INF/lib/jta.jar" /> </zipfileset> </zip> </target> <!-- ********************************************************************* --> <!-- Create Source Release --> <!-- ********************************************************************* --> <target name="stage-sources" depends="version-check"> <copy todir="${build.dist.sources}"> <fileset dir="${basedir}"> <include name="src/**" /> <include name="tests/**" /> <include name="testdata/**" /> <include name="metadata/**" /> <include name="personal/**" /> <include name="custom/**" /> <include name="contrib/**" /> <include name="web/**" /> <include name="docs/**" /> <include name="tools/**" /> <include name="ant.properties" /> <include name="build.bat" /> <include name="build.sh" /> <include name="build.xml" /> <include name="properties.xmlf" /> <include name="CHANGES.txt" /> <include name="LICENSE.txt" /> <include name="NOTICE.txt" /> <include name="README.txt" /> <exclude name="**/codewright*/**"/> <exclude name="docs/installguide/old/**"/> <exclude name="docs/userguide/old/**"/> <exclude name="**/CVS/**"/> <exclude name="**/*.bak"/> <exclude name="**/*-hide"/> <exclude name="**/*.diff"/> <exclude name="**/*.patch"/> <exclude name="**/*~"/> <exclude name="**/*.#*"/> <exclude name="**/WS_FTP.LOG"/> <exclude name="**/.nbattrs"/> </fileset> </copy> </target> <target name="dist-sources" depends="stage-sources"> <mkdir dir="${ro.dist}" /> <!-- Tar and GZip the sources release --> <tar destfile="${ro.dist}/roller-src-${ro.version}.tar.gz" longfile="gnu" compression="gzip"> <tarfileset dir="${build.dist.sources}" prefix="${ro.name}-src-${ro.version}" /> </tar> </target> <target name="apache-sources" depends="stage-sources"> <mkdir dir="${ro.dist}" /> <!-- Tar and GZip the apache binary release --> <tar destfile="${ro.dist}/${ro.name}-src-${ro.version}.tar.gz" longfile="gnu" compression="gzip"> <!-- don't include unshippables in apache release --> <tarfileset dir="${build.dist.sources}" prefix="${ro.name}-src-${ro.version}"> <exclude name="**/hibernate-3.1/**" /> <exclude name="**/activation.jar" /> <exclude name="**/mail.jar" /> <exclude name="**/ejb-1.1.jar" /> </tarfileset> </tar> <zip destfile="${ro.dist}/${ro.name}-src-${ro.version}.zip"> <!-- don't include unshippables in apache release --> <zipfileset dir="${build.dist.sources}" prefix="${ro.name}-src-${ro.version}"> <exclude name="**/hibernate-3.1/**" /> <exclude name="**/activation.jar" /> <exclude name="**/mail.jar" /> <exclude name="**/ejb-1.1.jar" /> </zipfileset> </zip> <!-- Tar and GZip the apache sources unshippables --> <tar destfile="${ro.dist}/required-jars-roller-src-${ro.version}.tar.gz" longfile="gnu" compression="gzip"> <!-- only include unshippables --> <tarfileset dir="${build.dist.sources}" prefix="${ro.name}-src-${ro.version}"> <include name="**/hibernate-3.1/**" /> <include name="**/activation.jar" /> <include name="**/mail.jar" /> <include name="**/ejb-1.1.jar" /> </tarfileset> </tar> <zip destfile="${ro.dist}/required-jars-roller-src-${ro.version}.zip"> <!-- only include unshippables --> <zipfileset dir="${build.dist.sources}" prefix="${ro.name}-src-${ro.version}"> <include name="**/hibernate-3.1/**" /> <include name="**/activation.jar" /> <include name="**/mail.jar" /> <include name="**/ejb-1.1.jar" /> </zipfileset> </zip> </target> <target name="version-check" if="java15.present" > <fail message="ERROR: DON'T BUILD RELEASES WITH JAVA 1.5 (yet)" /> </target> <!-- ********************************************************************* --> <!-- TEST targets --> <!-- ********************************************************************* --> <target name="tests" depends="build-tests,test-business,test-presentation,test-utils" description="All unit tests" > </target> <target name="clean-tests" description="Removes test build and result artifacts and reports"> <delete dir="${build.tests}"/> <delete dir="${ro.build}/build/reports"/> </target> <target name="build-tests" depends="build-web" description="Build unit tests"> <mkdir dir="${build.tests}" /> <mkdir dir="${build.tests}/logs" /> <mkdir dir="${build.compile.tests}" /> <!-- compile all test classes --> <javac destdir="${build.compile.tests}" includeantruntime="false" debug="${build.debug}" source="${build.sourcelevel}" deprecation="${build.deprecation}"> <src path="${ro.tests}" /> &custom-src-tests; <classpath> <path refid="tests.path"/> <pathelement location="${ro.tools}/buildtime/ant-1.6.2/ant.jar"/> &custom-jars; </classpath> </javac> <!-- Copy test resources --> <copy todir="${build.compile.tests}"> <fileset dir="${ro.tests}" excludes="**/*.java, **/*.html, **/*.png" /> </copy> <!-- register Ant tasks that were just built --> <taskdef name="startdb" classname="org.apache.roller.ant.StartHsqldbTask" classpath="${ro.tools}/buildtime/hsqldb.jar;${build.compile.tests}" /> <taskdef name="stopdb" classname="org.apache.roller.ant.StopHsqldbTask" classpath="${ro.tools}/buildtime/hsqldb.jar;${build.compile.tests}" /> <!-- Copy web config files to ${build.tests} to make them available for testing. This includes the WEB-INF directory, minus jsps --> <mkdir dir="${build.tests}/WEB-INF" /> <copy todir="${build.tests}/WEB-INF"> <fileset dir="${basedir}/web/WEB-INF"> <exclude name="jsps/**" /> </fileset> </copy> <copy todir="${build.tests}/WEB-INF/classes"> <fileset dir="${basedir}/metadata/database/hibernate/" includes="hibernate.cfg.xml" /> </copy> <!-- Copy custom testing files which will overwrite some config files --> <copy todir="${build.tests}"> <fileset dir="${basedir}/testdata" /> </copy> <!-- allow for custom build work --> </target> <!-- ===================================== --> <!-- test business --> <target name="test-business" depends="build-tests" description="Back-end tests"> <mkdir dir="${build.reports}/business/xml"/> <mkdir dir="${build.reports}/business/html"/> <antcall target="start-db" /> <antcall target="init-db" /> &custom-pre-dbtest; <junit fork="true" dir="${build.tests}" printsummary="on" showOutput="false"> <classpath> <path refid="tests.run.path"/> </classpath> <!-- needed to satisfy ref in log4j.properties --> <jvmarg value="-Dcatalina.base=${build.tests}"/> <jvmarg value="-Dro.build=${ro.build}"/> <jvmarg value="-Droller.custom.config=${build.tests}/roller-custom.properties"/> <formatter type="xml"/> <batchtest toDir="${build.reports}/business/xml"> <fileset dir="${build.compile.tests}"> <include name="org/apache/roller/business/BookmarkTest.class"/> <include name="org/apache/roller/business/UserTest.class"/> <include name="org/apache/roller/business/WeblogTest.class"/> <include name="org/apache/roller/business/PermissionTest.class"/> <include name="org/apache/roller/business/WeblogPageTest.class"/> <include name="org/apache/roller/business/PingsTest.class"/> <include name="org/apache/roller/business/PropertiesTest.class"/> <include name="org/apache/roller/business/WeblogEntryTest.class"/> <include name="org/apache/roller/business/WeblogGalleryTest.class"/> <include name="org/apache/roller/business/CommentTest.class"/> <include name="org/apache/roller/business/FileManagerTest.class"/> <include name="org/apache/roller/business/IndexManagerTest.class"/> <include name="org/apache/roller/business/PlanetManagerTest.class"/> <include name="org/apache/roller/business/RefererTest.class"/> <include name="org/apache/roller/business/ProductTest.class"/> <include name="org/apache/roller/business/AffiliateTest.class"/> <include name="org/apache/roller/business/OrderTest.class"/> <include name="org/apache/roller/business/OrderTransactionTest.class"/> <include name="org/apache/roller/business/UserCardTest.class"/> <include name="org/apache/roller/business/UserAddressTest.class"/> <include name="org/apache/roller/business/imaging/ImageTest.class"/> <include name="org/apache/roller/business/imaging/WatermarkTest.class"/> <include name="org/apache/roller/business/HitCountTest.class"/> <include name="org/apache/roller/business/TaskLockTest.class"/> </fileset> </batchtest> </junit> <junitreport todir="${build.reports}/business/xml"> <fileset dir="${build.reports}/business/xml"> <include name="TEST-*.xml"/> </fileset> <report format="noframes" toDir="${build.reports}/business/html"/> </junitreport> &custom-post-dbtest; <antcall target="stop-db" /> <echo>Suggested: Run "ant consistency-check".</echo> </target> <!-- ===================================== --> <!-- test presentation --> <target name="test-presentation" depends="build-tests"> <mkdir dir="${build.reports}/presentation/xml"/> <mkdir dir="${build.reports}/presentation/html"/> <antcall target="start-db" /> <antcall target="init-db" /> <junit fork="true" dir="${build.tests}" printsummary="on" showOutput="false"> <classpath> <path refid="tests.run.path"/> </classpath> <!-- needed to satisfy ref in log4j.properties --> <jvmarg value="-Dcatalina.base=${build.tests}"/> <jvmarg value="-Dro.build=${ro.build}"/> <jvmarg value="-Droller.custom.config=${build.tests}/roller-custom.properties"/> <formatter type="xml"/> <batchtest toDir="${build.reports}/presentation/xml"> <fileset dir="${build.compile.tests}"> <include name="org/apache/roller/ui/UIPluginManagerTest.class"/> <include name="org/apache/roller/ui/authoring/struts/actions/BookmarksActionTest.class"/> <include name="org/apache/roller/ui/authoring/weblog/struts/actions/WeblogEntryActionTest.class"/> <include name="org/apache/roller/webservices/xmlrpc/RollerXmlRpcServerTest.class"/> <include name="org/apache/roller/ui/rendering/velocity/plugins/smileys/SmileysTest.class"/> </fileset> </batchtest> </junit> <junitreport todir="${build.reports}/presentation/xml"> <fileset dir="${build.reports}/presentation/xml"> <include name="TEST-*.xml"/> </fileset> <report format="noframes" toDir="${build.reports}/presentation/html"/> </junitreport> <antcall target="stop-db" /> </target> <!-- ===================================== --> <!-- test utils --> <target name="test-utils" depends="build-tests" > <mkdir dir="${build.reports}/utils/xml"/> <mkdir dir="${build.reports}/utils/html"/> <junit fork="true" dir="${build.tests}" showOutput="true"> <batchtest toDir="${build.reports}/utils/xml"> <fileset dir="${build.tests}/WEB-INF/classes"> <include name="org/apache/roller/util/*Test.class"/> </fileset> </batchtest> <!-- needed to satisfy ref in log4j.properties --> <jvmarg value="-Dcatalina.base=."/> <formatter type="xml"/> <classpath> <path refid="tests.run.path"/> </classpath> </junit> <junitreport todir="${build.reports}/utils/xml"> <fileset dir="${build.reports}/utils/xml"> <include name="TEST-*.xml"/> </fileset> <report format="noframes" toDir="${build.reports}/utils/html"/> </junitreport> </target> <target name="test-aapp" depends="test-aapp-sdk, test-aapp-handler"/> <target name="test-aapp-sdk"> <mkdir dir="${build.reports}/webservices/adminapi/sdk/xml"/> <mkdir dir="${build.reports}/webservices/adminapi/sdk/html"/> <junit fork="true" dir="${build.tests}" printsummary="on" showOutput="true"> <syspropertyset> <propertyref builtin="commandline"/> </syspropertyset> <classpath> <path refid="tests.run.path"/> </classpath> <formatter type="xml"/> <batchtest toDir="${build.reports}/webservices/adminapi/sdk/xml"> <fileset dir="${build.tests}/WEB-INF/classes"> <include name="org/apache/roller/webservices/adminapi/sdk/*EntryTest.class"/> </fileset> </batchtest> </junit> <junitreport todir="${build.reports}/webservices/adminapi/sdk/xml"> <fileset dir="${build.reports}/webservices/adminapi/sdk/xml"> <include name="TEST-*.xml"/> </fileset> <report format="noframes" toDir="${build.reports}/webservices/adminapi/sdk/html"/> </junitreport> </target> <target name="test-aapp-handler"> <mkdir dir="${build.reports}/webservices/adminapi/xml"/> <mkdir dir="${build.reports}/webservices/adminapi/html"/> <junit fork="true" dir="${build.tests}" printsummary="on"> <syspropertyset> <propertyref builtin="commandline"/> </syspropertyset> <classpath> <path refid="tests.run.path"/> </classpath> <formatter type="xml"/> <batchtest toDir="${build.reports}/webservices/adminapi/xml"> <fileset dir="${build.tests}/WEB-INF/classes"> <include name="org/apache/roller/webservices/adminapi/*HandlerTest.class"/> </fileset> </batchtest> </junit> <junitreport todir="${build.reports}/webservices/adminapi/xml"> <fileset dir="${build.reports}/webservices/adminapi/xml"> <include name="TEST-*.xml"/> </fileset> <report format="noframes" toDir="${build.reports}/webservices/adminapi/html"/> </junitreport> </target> <!-- You can specify testClass using -DtestClass=foo --> <property name="testClass" value="org.apache.roller.presentation.velocity.plugins.smileys.SmileysTest"/> <target name="test-one" depends="build-tests"> <java classname="junit.textui.TestRunner" fork="yes" failonerror="false"> <arg value="${testClass}"/> <classpath> <path refid="tests.run.path"/> </classpath> </java> </target> <!-- ********************************************************************* --> <!-- EXAMPLE targets --> <!-- ********************************************************************* --> <target name="deploy-tomcat" depends="stage-webapp" > <ant dir="./personal" target="deploy-tomcat" /> </target> <target name="deploy-resin" depends="stage-webapp" > <ant dir="./personal" target="deploy-resin" /> </target> <target name="deploy-isp" depends="stage-webapp" > <ant dir="./personal" target="deploy-isp" /> </target> <target name="clean-isp"> <ant dir="./personal" target="clean-isp" /> </target> <target name="official-release" depends="tests,apache-release" > <ant dir="./personal" target="official-release" /> </target> <!-- ********************************************************************* --> <!-- EXPERIMENTAL targets --> <!-- ********************************************************************* --> <!-- EXPERIMENTAL: Run ConsistencyCheck. --> <target name="consistency-check"> <echo>Use -Ddelete=1 to delete all orphans. Use -Dverbose=1 to get verbose output. 'delete' and 'verbose' are exclusive, 'delete' wins. </echo> <condition property="command" value="-v"> <isset property="verbose" /> </condition> <condition property="command" value="-purge"> <isset property="delete" /> </condition> <java classname="org.apache.roller.business.utils.ConsistencyCheck" fork="yes"> <arg value="${command}"/> <jvmarg value="-Dusername=roller"/> <jvmarg value="-Dpassword=tiger"/> <classpath> <path refid="base.path"/> <path location="${ro.build}/lib/rollerbeans.jar"/> <path location="${ro.tools}/lib/mm.mysql-2.0.14-bin.jar"/> </classpath> </java> </target> <target name="compile-jsps" depends="stage-webapp"> <mkdir dir="${ro.build}/jspc"/> <taskdef classname="org.apache.jasper.JspC" name="jasper2" > <classpath refid="jasper.path"/> </taskdef> <jasper2 validateXml="false" uriroot="${build.webapp}" webXmlFragment="${build.webapp}/WEB-INF/generated_web.xml" outputDir="${ro.build}/jspc" /> <mkdir dir="${ro.build}/jspc.classes"/> <javac source="${build.sourcelevel}" debug="true" srcdir="${ro.build}/jspc" excludes="**/header_jsp.*" destdir="${ro.build}/jspc.classes" fork="true"> <classpath refid="jsp.compile.path"/> </javac> </target> <!-- ********************************************************************* --> <!-- HSQLDB start, init and stop targets --> <!-- ********************************************************************* --> <target name="init-db" description= "Initializes built-in database by running drop table and create table"> &custom-post-dbtest; <sql driver="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost:3219" userid="sa" password="" src="${build.webapp}/WEB-INF/dbscripts/droptables.sql" onerror="continue" classpath="${ro.tools}/buildtime/hsqldb.jar" /> <sql driver="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost:3219" userid="sa" password="" src="${build.webapp}/WEB-INF/dbscripts/hsqldb/createdb.sql" classpath="${ro.tools}/buildtime/hsqldb.jar" /> &custom-pre-dbtest; </target> <target name="start-db" description="Starts built-in database"> <startdb database="${build.tests}/testdb" port="3219" /> <!-- Not sure we need that custom 'startdb' task if this plain old Ant works: <java classname="org.hsqldb.Server" fork="yes" spawn="true" classpath="./tools/buildtime/hsqldb.jar"> <arg value="-database"/> <arg value="${build.tests}/testdb"/> <arg value="-port"/> <arg value="3219"/> </java> --> </target> <target name="stop-db" description="Drop tables and stops the built-in database"> <stopdb port="3219"/> <!-- This below code does the same thing as 'stopdb' but the 'sql' task throws an exception when HSQLDB disconnects and that causes a build failure, so for now I'm keeping the custom 'startdb' and 'stopdb' Ant tasks. <sql driver="org.hsqldb.jdbcDriver" onerror="continue" url="jdbc:hsqldb:hsql://localhost:3219" userid="sa" password="" classpath="${ro.tools}/buildtime/hsqldb.jar" > SHUTDOWN </sql> --> </target> <!-- ********************************************************************* --> <!-- Experimental Admin API SDK --> <!-- ********************************************************************* --> <!-- build standalone aapp-sdk.jar, for external consumption --> <target name="aapp-sdk" depends="build"> <mkdir dir="${build.lib}"/> <jar destfile="${build.lib}/roller-aapp-sdk.jar"> <manifest> <attribute name="Manifest-Version" value="${ro.version}"/> </manifest> <fileset dir="${build.compile.web}"> <include name="org/apache/roller/webservices/adminapi/sdk/*"/> </fileset> </jar> </target> </project> |
|
|
Re: Eclipse Dynamic Web Project for RollerHi Dave,
Welcome to the eclipse world :). I managed to configured roller in different two ways. But I don't develop roller actively so this two ways might not be the best. 1. Slow but with the correct structure Trying to mimic how I think roller runs at runtime, I started creating java projects and web projects as required. In order to figure the right dependencies, I had to go through the build.xml file and find exactly what it was doing. I also tried to match the names of the projects to the actual jars. I might have a copy of this workspace on one of my computers at home. I did this based on Roller 4.0 RC9 I think 2. Fast but mainly for debugging, can't compile. This was recomended by someone on the newsgroups. Create a web project and import the source, then add all jars required (including the compiled code for roller) to the java build dependency. Let us know about your experience. On Sat, Nov 7, 2009 at 12:22 AM, Dave <snoopdave@...> wrote: > I'm using Eclipse at work now and considering using it for Roller dev too. > > Anybody ever get Roller configured as an Eclipse "Dynamic Web Project" > and if so, any pointers to share? > > - Dave > |
|
|
Re: Eclipse Dynamic Web Project for RollerThanks for the tips, Richard and Angel.
It does not sound like an ideal situation. Perhaps I should take at Maven and what the Maven plugins for Eclipse and IDEA can do. - Dave On Sat, Nov 7, 2009 at 8:39 AM, Angel Vera <gunfus@...> wrote: > Hi Dave, > > Welcome to the eclipse world :). I managed to configured roller in different > two ways. But I don't develop roller actively so this two ways might not be > the best. > > 1. Slow but with the correct structure > Trying to mimic how I think roller runs at runtime, I started creating java > projects and web projects as required. In order to figure the right > dependencies, I had to go through the build.xml file and find exactly what > it was doing. I also tried to match the names of the projects to the actual > jars. I might have a copy of this workspace on one of my computers at home. > I did this based on Roller 4.0 RC9 I think > > 2. Fast but mainly for debugging, can't compile. > This was recomended by someone on the newsgroups. Create a web project and > import the source, then add all jars required (including the compiled code > for roller) to the java build dependency. > > Let us know about your experience. > > On Sat, Nov 7, 2009 at 12:22 AM, Dave <snoopdave@...> wrote: > >> I'm using Eclipse at work now and considering using it for Roller dev too. >> >> Anybody ever get Roller configured as an Eclipse "Dynamic Web Project" >> and if so, any pointers to share? >> >> - Dave >> > |
|
|
Re: Eclipse Dynamic Web Project for RollerI was going to mention that. If you restructure things to work with Maven,
you should be able to use the IDE plugins to achieve what you like. Or we could use JRebel and "mvn jetty:run" and get hot-reloading and just use the IDE as a text editor/compiler/debugger. I plan on doing this with AppFuse soon. Matt On Sat, Nov 7, 2009 at 8:26 AM, Dave <snoopdave@...> wrote: > Thanks for the tips, Richard and Angel. > > It does not sound like an ideal situation. Perhaps I should take at > Maven and what the Maven plugins for Eclipse and IDEA can do. > > - Dave > > > > On Sat, Nov 7, 2009 at 8:39 AM, Angel Vera <gunfus@...> wrote: > > Hi Dave, > > > > Welcome to the eclipse world :). I managed to configured roller in > different > > two ways. But I don't develop roller actively so this two ways might not > be > > the best. > > > > 1. Slow but with the correct structure > > Trying to mimic how I think roller runs at runtime, I started creating > java > > projects and web projects as required. In order to figure the right > > dependencies, I had to go through the build.xml file and find exactly > what > > it was doing. I also tried to match the names of the projects to the > actual > > jars. I might have a copy of this workspace on one of my computers at > home. > > I did this based on Roller 4.0 RC9 I think > > > > 2. Fast but mainly for debugging, can't compile. > > This was recomended by someone on the newsgroups. Create a web project > and > > import the source, then add all jars required (including the compiled > code > > for roller) to the java build dependency. > > > > Let us know about your experience. > > > > On Sat, Nov 7, 2009 at 12:22 AM, Dave <snoopdave@...> wrote: > > > >> I'm using Eclipse at work now and considering using it for Roller dev > too. > >> > >> Anybody ever get Roller configured as an Eclipse "Dynamic Web Project" > >> and if so, any pointers to share? > >> > >> - Dave > >> > > > |
| Free embeddable forum powered by Nabble | Forum Help |