This
project's CVS repository can be checked out through anonymous (pserver)
CVS with the following instruction set. The CVS tree is publicly
accessible for anonymous read-only access, approved contributors will
also be given commit access to appropriate packages. When prompted for
a password for anoncvs, enter anoncvs.
Linux / Unix / BSD
Windows
CVSROOT=:pserver;username=anoncvs;password=anoncvs:cvs.opencrx.org:/CVSROOT
export CVSROOT
cvs login # enter anoncvs when prompted for a password
cvs checkout opencrx
Please note that you're preferred client might still work with openCRX, even if it is not listed below.
Mozilla's Sunbird and Mozilla's Lightning,
the calendaring add-on for Mozilla's Thunderbird, are not only the
best-tested cross-platform CalDAV clients, they also work flawlessly
with openCRX. We tested Sunbird 0.7pre and Lightning 0.5 (with
Thunderbird 2.0). These CalDAV clients work very well in a setting
where you're always online (i.e. connected with the openCRX server) as
changes to remote calendars are submitted immediately. Neither Sunbird nor Lightning are well suited for working offline.
Mulberry kind of works - seems a bit sluggish, though.
We have not been able to get OpenConnector's
CalDAV feature to work properly with Outlook and openCRX, but based on
the information published on the project's website
(www.openconnector.org) you will probably have to wait for a later
version of hope for Microsoft to get their act together and add CalDAV
support to Outlook (apparently, Microsoft joined CalConnect on 15 August 2007).
优化Java VM
- 对于任何J2EE 应用,有很多资料优化
Java VM (内存大小设置,垃圾回收等等)。根据你的平台,可以比较不同虚拟机的性能(e.g. BEA JRockit 和 Sun Java VM)
在任何多核机器中(真正多核或超线程)你应该验证Java VM 和DBMS 实际使用了多个 CPU;
我们碰到过许多花了大价钱来配置高性能多核服务器的客户,他们实际上只使用了一个CPU来工作... (例如,在Redhat 上Java
VM 只有在你安装了compat-libstdc++-3.2-1.i386.rpm后,才会使用多个CPU)
确定你的servlet container / application server 发生压缩(zipped)
的页面到浏览器; 例如JBoss, 添加、设置Tomcat 选项compression="on" 在文件server.xml 中(详细参考Apache Jakarta Project的http connector reference page)
-压缩的页面比未压缩的要小10倍以上,因此可以减少你的网络负载以及提高用户连接openCRX 服务器占用更少带宽的体验
We identify an openCRX version with 3 numbers x, y, and z (i.e.
openCRX x.y.z). x.y.z is
the Implementation
Version, x.y is
the corresponding Specification Version.
The meaning of individual numbers is listed in the table below:
Name
Interfaces/Functions
Implementation
Database
Implications
x
Major Version
if major version number increased
interfaces will be different
(i.e. not upward compatible)
will be different
new tables and possibly
change of existing tables
Implementation:
- bugs fixed
- new functions
- user code requires refactoring
Database:
- modification of existing tables
and adding of new tables
- no data migration
y
Minor Version
if minor version number increased (but same major version
number)
interfaces have been extended and/or
new functions have been added
(but upward compatibility is guaranteed)
will be different
possibly new tables
Implementation:
- bugs fixed
- new functions
- user code upwards compatible
Database:
- script adding new columns to table and adding new tables
- no data migration
z
Patch Version
if patch version number increased (but same specification
number)
unchanged
will be different
possibly new columns
of existing tables
Implementation:
- bugs fixed
- user code upwards compatible
Database:
- script adding new columns to table
- no data migration
What follows are detailed
instructions for upgrading openCRX from v1.9.1 to v1.10.0 (upgrade
instructions for earlier releases can be found here):
Upgrading from openCRX v1.10.0 to openCRX v1.11.0
It is worthwhile checking out the relevant guides published for openCRX v1.11.0 - many guides have been updated / extended.
stop the application server
backup your database
upgrade your database as follows:
drop all (openCRX) views
execute the script upgrade-from-1.10.0-to-1.11.0.sql
execute the script migrate-from-1.10.0-to-1.11.0.sql
execute the script drop-from-1.10.0-to-1.11.0.sql
create a new database (e.g. CRX2_CRX) and execute the script dbcreate-tables.sql
run ant ... CopyDb
you can run the command without parameters to view help/usage information; the following table contains some example calls with parameters (but you must adapt these to your specific environment!).
Please also note that the command must be entered as a single line
without any line breaks (the example commands are multiline for easier
readability):
Important: ant ... DbCopy must complete without errors!
If there are errors the problematic statement(s) will be displayed so that you can try to fix the problem(s) manually.
Hint: you can safely ignore errors regarding the tables security_AUTHENTICATIONCONTEXT_N and security_SEGMENT_N
For production data it is advisable to keep track of all the problems
that need fixing until the copy task completes successfully;
Apply all those fixes to the original DB and then run ant ... DbCopy so that it completes without errors.
on the new database, run ant ... update-size-columns-1_11_0
to bring the new columns into a consistent state; you can run the command without parameters to view help/usage information; the following table contains some example calls with parameters (but you must adapt these to your specific environment!).
Please also note that the command must be entered as a single line
without any line breaks (the example commands are multiline for easier
readability):
DBMS
Example call of ant ... convert
DB2
ant -Ddb.jdbc.url="jdbc:db2://localhost:50000/CRX_TARGET" -Ddb.jdbc.driver="com.ibm.db2.jcc.DB2Driver" -Ddb.jdbc.driver.classpath="..\opt\ibm\jre-1.5\db2-9\db2jcc.jar;..\jre-1.5\db2-9\db2jcc_license_cu.jar" -Ddb.username="system" -Ddb.password="manager" update-size-columns-1_11_0
MSSQL
ant -Ddb.jdbc.url="jdbc:sqlserver://localhost:1433;databaseName=CRX_TARGET" -Ddb.jdbc.driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" -Ddb.jdbc.driver.classpath="..\opt\microsoft\jre-1.5\sql-server-2005\lib\sqljdbc.jar" -Ddb.username="system" -Ddb.password="manager" update-size-columns-1_11_0
MySQL
ant -Ddb.jdbc.url="jdbc:mysql://localhost:3306/CRX_TARGET" -Ddb.jdbc.driver="com.mysql.jdbc.Driver" -Ddb.jdbc.driver.classpath="..\opt\mysql\jre-1.5\mysql-5\lib\mysql-connector-java-3.1.12-bin.jar" -Ddb.username="system" -Ddb.password="manager" update-size-columns-1_11_0
Oracle
ant -Ddb.jdbc.url="jdbc:oracle:thin:@localhost:1521:XE" -Ddb.jdbc.driver="oracle.jdbc.driver.OracleDriver" -Ddb.jdbc.driver.classpath="..\opt\oracle\jre-1.5\oracle-10\lib\ojdbc14.jar" -Ddb.username="CRX_TARGET" -Ddb.password="manager" update-size-columns-1_11_0
PostgreSQL
ant -Ddb.jdbc.url="jdbc:postgresql://localhost/CRX_TARGET" -Ddb.jdbc.driver="org.postgresql.Driver" -Ddb.jdbc.driver.classpath="..\opt\postgresql\jre-1.5\postgresql-8\lib\postgresql-8.1-409.jdbc3.jar" -Ddb.username="system" -Ddb.password="manager" update-size-columns-1_11_0
Important: ant ... update-size-columns-1_11_0 must complete without errors!
If there are errors the problematic statement(s) will be displayed so that you can try to fix the problem(s) manually.
For production data it is advisable to keep track of all the problems
that need fixing until the update task completes successfully.
on the new database, execute the script dbcreate-views.sql
on the new database, execute the script dbcreate-indexes.sql
on the new database, execute the script populate-preferences.sql
build the runtime binaries (EARs) following instructions in the QuickStart Guide or in opencrx/core/README
deploy the file opencrx-core-CRX-App.ear to your application server following the respective guide
deploy the file opencrx-core-CRX-Web.ear to your application server following the respective guide
as mentioned in the README, update the openMDX libraryopenmdx-kernel.jar on your application server following the respective guide
if you configured DB-based authentication you must adapt the select statements to reflect the new DB structure
(see for example JBoss Installation Guide)
delete
all temporary files (e.g. on JBoss remove everything contained in the
directories .../jboss-4.2.1.GA/server/default/tmp and
.../jboss-4.2.1.GA/server/default/work)
The openCRX
Language Localization Guide explains in detail
how you can add new languages to openCRX or even
make your own openCRX language pack. From a technical point of view, adding
languages is a trivial issue; the big task is translating all
the code
tables, labels
and tool tips.
The following languages are currently available or being worked on:
locale
language
locale included
and
activated
in
core distribution
If a login page supports locale xx_YY you can request the login page in that locale xx_YY by appending the string "?locale=xx_YY" to the default login URL.Example: the URL http://demo.opencrx.org/opencrx-core-CRX/Login?locale=de_CH directly loads the German login page.