root/releases/bedework-3.7/build/quickstart/run-tomcat.xml

Revision 2342 (checked in by douglm, 4 years ago)

Import of a number of features under development into the trunk. This is the start of development for version 3.6

CalDAV: Now has no dependencies on core bedework classes. Involved a significant amount of refactoring.

CalDAV implementations: are now a separate project. This project does have dependencies, as it should.

JMS: Bedework now emits system events on a JMS notification queue. A number of listeners are being developed to move certain bedework functions outboard of the core engine. Currently we havea logging listener, the inbox/outbox scheduler and a partially built indexer. The JMS implementation is Apache activemq

The detailed comments from the merged code follow:


CalDAV refactor:

Remove BwDateTime? from SysIntf?

Rename calfacade TimeRange? to BwTimeRange?

Changed getFreeBusy to use ical4j Period
Subsequent changes:
New package org.bedework.caldav.util and class ParseUtil? - copy of calfacade....util.cml.CalDavParseUtil?

Change all the SysIntf? implementations to use the new parameters
Also change CaldavBwIntf? to use TimeRange? for the freebusy url

Move CalDAVConfig into the caldav code - remove from CalFacade?
New options factory class in caldav
Move options file up a level into classes/properties from classes/calendar/properties
Options don't fail if class not found - just warn
Increment build version on CalDAV and WebDAV

Add method to SysIntf? to convert an iCal4j Calendar to its String form.

Also move ComponentWrapper? into rpiutil to make it available to CalDAV

Remove use of BwDateTime? from RetrievalMode? and subclasses

Add a test.

Moved CalDAV implementations into a separate project - allowing CalDAV to be built separately from the bedework core.

Move timnezones support out of CalFacade? and into edu.rpi package

Move some filtering classes and interfaces out of the bedework core and into external libraries and the CalDAV project.

Entity type definitions:
CalFacadeDefs? and CalDAVEvent had competing definitions. Added the CalFacadeDefs? version to edu.rpi.cmt.calendar.IcalDefs?. Removed the CalDAVEvent versions.
This means the values change for CalDAV but hey aren't stored anywhere.

Make PropertyInfo? separate class from PropertyInfoIndex?. Move PropertyIndex? into edu.rpi.cmt.calendar. Also move some of the information out of ProeprtyInfo? into PropertyInfoIndex?

Moved most filter classes into caldav.util

Copied a number of CalFacade? filter classes into caldav.util.filter, renamed the Filter class to Filterhandler

Misinterpreted tzid:
All timeranges are expressed in UTC. The optional timezone following the filter is used for local (floating) datetime values.
Requires access to timezone conversion - moved CalTimezones? and CalTimezonesImpl? into rpi util package.

Created new project caldavimpl
Moved google, domino, exchage and bedework implementations into that project


JMS Listeners
Add new indexer project
Add some administrative support methods to the core system. These provide paged retrieval of child name/paths for collections allowing crawlers and the like to wander around the data structure.

Also add some options for the new indexer project which makes use of these

Simplify notification classes and implement a jms notifications handler.

This requires activemq to be running

Implement a jms consumer which acts as a system events logger

Redo in/outbox scheduler as a listener on a JMS queue

Create a new deployable module for it.

Change startup to start each separate module as well as the 'infrastructure' components.

activemq run script now copies the activemq config out of the bedework build configuration


Indexing changes - many already in 3.5:

When publishing, unindex the event from the user index and reindex in the public index.
Further changes to fix lucene indexing of overrides.
SIgnificant changes to indexing to handle issues with recurrence overides.

Associated fix to BwEventAnnotation? to fix bug with handling of overridden collections.


Other changes - many already in 3.5:

subversion copy utility was adding timezones as a project. Remove unwanted project

Remove above project from externals

Fix new bug in CoreEvents? - not checking for null timezone.

Updated system parameters code to use and maintain a cached copy of the settings
Add a refresh timeout to the syspars get

Fix missing null check in CalFacadeUtil?.eqobjval
Fix bug renaming or moving collection objects.
Fix bad owner check in CalSvcDb?
Fix problem setting cost in admin and submit client
Fix 500 problem with freebusy url when no access to user
Need a cdata around alias url when emitting collection for jsp/xml
Fix search bug for user client. Not setting principal
Set disabled flag for bad url in subscription
Fix access routines - not correctly handling NONE access. - also add extra test
Fix null-pointer in export action
CalDAV:
Better exception handling for getPrincipal
synch around put/get in EvaluatedAccessCache?
Fix CalDAV so that references to an alias are filtered correctly

Disable caching of collections in the hbm files. When deployed as separate aplications this is causing delays and invalid relations to appear. It may be possible to enable this if all applications share a common cache - e.g. jboss ear or with hibernate as part of the container.

Remove unneccessary check on calendar access check in coreEvents.getEvent

Remove use of <user-home>/bedework.build.properties

Line 
1 <?xml version="1.0"?>
2
3 <!-- Run hsqldb for the bedework Calendar quickstart.
4
5      This is imported by the quickstart build.xml ensuring all changes to this file
6      appear in the repository.
7
8      Authors: Mike Douglass   douglm - rpi.edu
9 -->
10
11 <project name="quickstart-run-tomcat" default="tomcatstart" basedir=".">
12   <!-- This target normally overridden by the importing build.xml -->
13   <target name="run.init">
14     <property name="org.bedework.project.bedework"
15               location="${basedir}/bedework" />
16
17     <property name="org.bedework.appserver.dir"
18               location="${org.bedework.project.bedework}/../apache-tomcat-5.5.17" />
19
20     <property name="org.bedework.activemq.dir"
21               location="${org.bedework.project.bedework}/../apache-activemq-5.2.0" />
22   </target>
23
24   <!-- =================================================================
25        The "tomcatstart" target starts Tomcat
26        ================================================================= -->
27
28   <target name="tomcatstart-locale" depends="run.init"
29           description="starts the tomcat server">
30     <input message="Enter language code: "
31            addproperty="tomcat.locale" />
32
33     <input message="Enter country code: "
34            addproperty="tomcat.country" />
35
36     <echo message="Starting Tomcat from ${org.bedework.appserver.dir}"/>
37     <java fork="true" dir="${basedir}"
38           classname="org.apache.catalina.startup.Bootstrap">
39       <classpath>
40         <pathelement path="${org.bedework.appserver.dir}/bin/bootstrap.jar"/>
41       </classpath>
42       <sysproperty key="catalina.home" value="${org.bedework.appserver.dir}"/>
43       <!--jvmarg value="-Dcatalina.home=${tomcat.dir}"/-->
44       <jvmarg value="-Duser.language=${tomcat.locale}"/>
45       <jvmarg value="-Duser.country=${tomcat.country}"/>
46       <!--
47       <jvmarg value="-Dfile.encoding=ISO-8859-1"/>
48       -->
49       <arg value="start"/>
50     </java>
51   </target>
52
53   <target name="tomcatstart" depends="run.init"
54           description="starts the tomcat server">
55     <echo message="Starting Tomcat from ${org.bedework.appserver.dir}"/>
56     <java fork="true" dir="${basedir}"
57           classname="org.apache.catalina.startup.Bootstrap">
58       <classpath>
59         <pathelement path="${org.bedework.appserver.dir}/bin/bootstrap.jar"/>
60       </classpath>
61       <sysproperty key="catalina.home" value="${org.bedework.appserver.dir}"/>
62       <!--jvmarg value="-Dcatalina.home=${tomcat.dir}"/-->
63       <jvmarg value="-Xms128m" />
64       <jvmarg value="-Xmx630m" />
65       <jvmarg value="-XX:PermSize=128m" />
66       <jvmarg value="-XX:MaxPermSize=128m" />
67       <jvmarg value="-Djava.net.preferIPv4Stack=true"/>
68       <jvmarg value="-Dfile.encoding=UTF-8"/>
69
70       <jvmarg value="-Dactivemq.base=${org.bedework.activemq.dir}"/>
71       <jvmarg value="-Dwebconsole.type=jndi"/>
72
73       <arg value="start"/>
74     </java>
75   </target>
76
77   <target name="tomcatstart-large" depends="run.init"
78           description="starts a large memory version of the tomcat server">
79     <echo message="Starting Tomcat from ${org.bedework.appserver.dir}"/>
80     <java fork="true" dir="${basedir}"
81           classname="org.apache.catalina.startup.Bootstrap">
82       <classpath>
83         <pathelement path="${org.bedework.appserver.dir}/bin/bootstrap.jar"/>
84       </classpath>
85       <sysproperty key="catalina.home" value="${org.bedework.appserver.dir}"/>
86       <!--jvmarg value="-Dcatalina.home=${tomcat.dir}"/-->
87       <jvmarg value="-Xms128m" />
88       <jvmarg value="-Xmx1028m" />
89       <jvmarg value="-XX:PermSize=128m" />
90       <jvmarg value="-XX:MaxPermSize=128m" />
91       <jvmarg value="-Djava.net.preferIPv4Stack=true"/>
92       <arg value="start"/>
93     </java>
94   </target>
95
96   <target name="tomcatstart-profile" depends="run.init"
97           description="starts the tomcat server with rpofiling">
98     <echo message="Starting Tomcat from ${org.bedework.appserver.dir}"/>
99     <java fork="true" dir="${basedir}"
100           classname="org.apache.catalina.startup.Bootstrap">
101       <classpath>
102         <pathelement path="${org.bedework.appserver.dir}/bin/bootstrap.jar"/>
103       </classpath>
104       <sysproperty key="catalina.home" value="${org.bedework.appserver.dir}"/>
105       <!--jvmarg value="-Dcatalina.home=${tomcat.dir}"/-->
106       <jvmarg value="-Xrunyjpagent:cpu=times,onexit=cpu" />
107       <jvmarg value="-Djava.net.preferIPv4Stack=true"/>
108       <arg value="start"/>
109     </java>
110   </target>
111
112   <target name="tomcatstart-profile-large" depends="run.init"
113           description="starts the tomcat server with rpofiling">
114     <echo message="Starting Tomcat from ${org.bedework.appserver.dir}"/>
115     <java fork="true" dir="${basedir}"
116           classname="org.apache.catalina.startup.Bootstrap">
117       <classpath>
118         <pathelement path="${org.bedework.appserver.dir}/bin/bootstrap.jar"/>
119       </classpath>
120       <sysproperty key="catalina.home" value="${org.bedework.appserver.dir}"/>
121       <!--jvmarg value="-Dcatalina.home=${tomcat.dir}"/-->
122       <jvmarg value="-Xms128m" />
123       <jvmarg value="-Xmx1028m" />
124       <jvmarg value="-XX:PermSize=128m" />
125       <jvmarg value="-XX:MaxPermSize=128m" />
126       <jvmarg value="-server" />
127       <jvmarg value="-agentlib:hprof=cpu=samples,depth=15,onexit=memory" />
128       <jvmarg value="-Djava.net.preferIPv4Stack=true"/>
129       <arg value="start"/>
130     </java>
131   </target>
132
133   <target name="tomcatstart-profile-yk" depends="run.init"
134           description="starts the tomcat server with rpofiling">
135     <echo message="Starting Tomcat from ${org.bedework.appserver.dir}"/>
136     <echo message="For this to work you need to do something like:"/>
137     <echo message="export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/douglm/drop2/java/yourkit/yjp-6.0.15/bin/linux-x86-32"/>
138     <java fork="true" dir="${basedir}"
139           classname="org.apache.catalina.startup.Bootstrap">
140       <classpath>
141         <pathelement path="${org.bedework.appserver.dir}/bin/bootstrap.jar"/>
142       </classpath>
143       <sysproperty key="catalina.home" value="${org.bedework.appserver.dir}"/>
144       <!--jvmarg value="-Dcatalina.home=${tomcat.dir}"/-->
145       <jvmarg value="-Xms128m" />
146       <jvmarg value="-Xmx1028m" />
147       <jvmarg value="-XX:PermSize=128m" />
148       <jvmarg value="-XX:MaxPermSize=128m" />
149       <jvmarg value="-server" />
150       <jvmarg value="-agentlib:yjpagent" />
151       <jvmarg value="-Djava.net.preferIPv4Stack=true"/>
152       <arg value="start"/>
153     </java>
154   </target>
155
156   <target name="tomcatstart-debug" depends="run.init"
157           description="starts the tomcat server with remote debugging enabled">
158     <echo message="Starting Tomcat from ${org.bedework.appserver.dir}"/>
159     <java fork="true" dir="${basedir}"
160           classname="org.apache.catalina.startup.Bootstrap">
161       <classpath>
162         <pathelement path="${org.bedework.appserver.dir}/bin/bootstrap.jar"/>
163       </classpath>
164       <sysproperty key="catalina.home" value="${org.bedework.appserver.dir}"/>
165       <!--jvmarg value="-Dcatalina.home=${tomcat.dir}"/-->
166       <jvmarg value="-Djava.net.preferIPv4Stack=true"/>
167       <jvmarg value="-Xdebug"/>
168       <jvmarg value="-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"/>
169       <arg value="start"/>
170     </java>
171   </target>
172
173   <!-- This target is for use when sync4j is installed -->
174   <target name="tomcatstart-sync4j" depends="run.init"
175           description="starts the tomcat server with sync4j">
176     <echo message="Starting Tomcat with sync4j"/>
177     <java fork="true" dir="${basedir}"
178           classname="org.apache.catalina.startup.Bootstrap">
179       <classpath>
180         <pathelement path="${org.bedework.appserver.dir}/bin/bootstrap.jar"/>
181       </classpath>
182       <sysproperty key="catalina.home" value="${org.bedework.appserver.dir}"/>
183       <!--jvmarg value="-Dcatalina.home=${tomcat.dir}"/-->
184       <jvmarg value="-Dsync4j.home=${sync4j.dir}"/>
185       <arg value="start"/>
186     </java>
187   </target>
188
189   <!-- =================================================================
190        The "tomcatstop" target stops Tomcat cleanly
191        ================================================================= -->
192
193   <target name="tomcatstop" depends="run.init">
194     <echo message="Stopping Tomcat"/>
195     <java fork="true" dir="${basedir}"
196           classname="org.apache.catalina.startup.Bootstrap">
197       <classpath>
198         <pathelement path="${org.bedework.appserver.dir}/bin/bootstrap.jar"/>
199       </classpath>
200       <sysproperty key="catalina.home" value="${org.bedework.appserver.dir}"/>
201       <!--jvmarg value="-Dcatalina.home=${tomcat.dir}"/-->
202       <arg value="stop"/>
203     </java>
204   </target>
205 </project>
Note: See TracBrowser for help on using the browser.