Release Name: openCRX/Core 2.4.1 Release Date: 2009-03-23 --------------------------------------------------------------------- Notes: This software is published under the BSD license as listed below. Copyright (c) 2004-2009, CRIXP Corp., Switzerland All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of CRIXP Corp. nor the names of the contributors to openCRX may be used to endorse or promote products derived from this software without specific prior written permission THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------ This product includes software developed by the Apache Software Foundation (http://www.apache.org/). This product includes software developed by contributors to openMDX (http://www.openmdx.org/) --------------------------------------------------------------------- 0. SUMMARY * Wizards which make the user interface more intuitive to use * User-defineable forms * Migration from JPOX to OpenJPA for database schema generation * Support for Apache OpenEJB * Improved performance * Fixed bugs For more information see below and http://www.opencrx.org/opencrx/2.4/new.htm 1. NEW FEATURES CR10008389 Notifications as RSS feed. NewsServlet added. CR10008279 User interface that is more intuitive to use. Added the following wizards: * CreateProjectWizard * CreateActivityWizard * ScheduleEventWizard / VoteForEvent * CreateProductWizard * CreateContractWizard * CreateLeadWizard * CreateContactWizard CR10008309 Forms: allow to define forms which are composed from customized fields. A form consists of a set of field groups and a field group of a set of fields. A field definition is specified by the class name and feature name of a modeled, customized field and a field order. Below is a sample definition: <_object/> <_content> <_object/> <_content> <_object/> <_content> <_object> <_item>Product Price</_item> <_item>Product Price <_content> <_object> 10 <_item>4 <_item>8 <_content> <_object> org:opencrx:kernel:product1:AbstractProductPrice usage 100 <_content /> <_object> org:opencrx:kernel:product1:AbstractPriceLevel basedOn 200 <_content /> <_object> org:opencrx:kernel:product1:AbstractProductPrice price 300 <_content /> <_object> org:opencrx:kernel:product1:AbstractProductPrice quantityFrom 400 <_content /> <_object> org:opencrx:kernel:product1:AbstractProductPrice quantityTo 500 <_content /> <_object> org:opencrx:kernel:product1:AbstractProductPrice discountIsPercentage 600 <_content /> <_object> org:opencrx:kernel:product1:AbstractProductPrice discount 700 <_content /> The form can then be used in a wizard as follows: 1. Get the form org.openmdx.ui1.jmi1.FormDefinition productBasePriceFormDefinition = app.getUiFormDefinition("ProductBasePriceForm"); org.openmdx.portal.servlet.control.FormControl productBasePriceForm = new org.openmdx.portal.servlet.control.FormControl( formDefinition.refGetPath().getBase(), app.getCurrentLocaleAsString(), app.getCurrentLocaleAsIndex(), app.getUiContext(), productBasePriceFormDefinition ); 2. Read the fields from an HttpRequest into a field value map Map formValues = new HashMap(); productBasePriceForm.updateObject( request.getParameterMap(), formValues, app, pm ); 3. Paint the form form.paint( p, null, // frame true // forEditing ); p.flush(); CR10008349 Support for OpenEJB. Setup is done as follows: From Apache get: * tomcat 6.0.18 From openMDX get: * openmdx-openejb.war openmdx-openejb.war is the original openejb.war from Apache OpenEJB with the following modifications: - Patch for TomcatWebAppBuilder which allows to load context.xml files from WebApps META-INF - Patch for MailSessionFactory which allows to use multiple mail sessions - Deployment factory for in-process deployment, log stream for slf4j. * openmdx-base.jar, openmdx-base-ext.jar * catalina.jar which contains the ExtendedJDBCRealm * tomcat-juli.jar which contains xri protocol handler * slf4j-openmdx1.jar From openCRX get: * opencrx-core-CRX.ear Installation * Unzip Tomcat * Copy openmdx-openejb.war to webapps and rename to 0-openejb.war. This asserts that openejb.war is the first WebApp deployed by tomcat * Copy openmdx-base.jar, openmdx-base-ext.jar, catalina.jar, slf4j-openmdx1.jar, database driver jars to lib * Copy tomcat-juli.jar to bin * Create directory apps (same dir level as webapps) and copy opencrx-core-CRX.ear to apps * Copy openejb.xml to conf. Adapt JDBC resource. * Add users to tomcat-users.xml * Start Tomcat with the same -D options as Tomcat+LWC. Configuring Security Realm with in opencrx-core-CRX.ear The WebApps in opencrx-core-CRX.ear have a context.xml located in the META-INF directory of each WebApp. The Realm is configured by setting the following environment variables (-D option): -Dopencrx.CRX.jdbc.driverName="org.postgresql.Driver" -Dopencrx.CRX.jdbc.url="jdbc:postgresql://127.0.0.1:5432/CRX_2_4" -Dopencrx.CRX.jdbc.userName="postgres" -Dopencrx.CRX.jdbc.password="..." 2. CHANGES 2.0. CHANGED FEATURES CR10008387 Migrate models to RSM 7.5. CR20018534 Replace JPOX by OpenJPA. The model mapper now generates JPA compliant persistence classes and a default persistence mapping (orm.xml). The JDO2 mapping is not supported anymore. The ant build-library provides the following targets: * enhance: enhances the classes listed in orm.xml * create-schema: orm.xml --> openjpa-schema.xml * create-sql: openjpa-schema --> sql build and upgrade script 2.1. FIXED BUGS SF6884208 When I run ant script: ant -Dformat.source=openmdx2 -Dformat.target=openmdx2 -Ddb.jdbc.driver.classpath="D:\temp\hsqldb.jar;D:\temp\ojdbc14.jar" -Ddb.jdbc.url.source="jdbc:hsqldb:hsql://127.0.0.1:9001/CRX_2_4" -Ddb.jdbc.driver.source="org.hsqldb.jdbcDriver" -Ddb.username.source="sa" -Ddb.password.source="manager99" -Ddb.jdbc.url.target="jdbc:oracle:thin:@localhost:1521:XE" -Ddb.jdbc.driver.target="oracle.jdbc.driver.OracleDriver" -Ddb.username.target="CRX_CRX" -Ddb.password.target="123" CopyDb I get an error: [java] java.lang.NoClassDefFoundError: org/openmdx/kernel/application/client/Launch SF6853479 I tried http://www.opencrx.org/opencrx/2.3/new.htm#REST in 2.3 it is ok. But in 2.4 I get an error: javax.servlet.ServletException: Servlet.init() for servlet RestServlet threw exception org.apache.openejb.tomcat.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) org.apache.openejb.tomcat.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857) org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565) org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509) java.lang.Thread.run(Thread.java:595) root cause java.lang.NoClassDefFoundError: org/openmdx/application/dataprovider/transport/ejb/cci/Jmi1AccessorFactory_2org.openmdx.application.rest.RestServlet.getPersistenceManagerFactory(RestServlet.java:1317) org.openmdx.application.rest.RestServlet.init(RestServlet.java:1338) org.apache.openejb.tomcat.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) org.apache.openejb.tomcat.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857) org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565) org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509) java.lang.Thread.run(Thread.java:595) 2.2 REMOVED FEATURES none ---------------------------------------------------------------------