Release Name: openCRX/Core 2.0.0
Release Date: 2008-02-20
---------------------------------------------------------------------
Notes:
This software is published under the BSD license
as listed below.
Copyright (c) 2004-2008, 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
* Deployment: Support for deployment on Tomcat/LWC
* Wizards: AddressBook, UserSettings
* Free text search: Search Wizard / ObjectFinder / IndexerServlet
* Java 5: Migrate to jmi1/cci2 bindings
* Application plugin: Object-oriented for operations. All business logic
will be migrated to jmi1/cci2 bindings step-by-step in the next minor
versions.
For more information see below and http://www.opencrx.org/opencrx/2.0/new.htm
1. NEW FEATURES
CR10006537
openCRX on Tomcat. Allow to deploy openCRX on Tomcat only using LWC. See
Tomcat installation guide for more information.
CR10006597
depot1: SimpleBooking. A SimpleBooking allows lightweight recording of
any kind of quantities on depot positions.
CR10006574
Extend Price Levels. Allow to have different types of price levels.
Currently suppported are:
* Price level with absolute start and end date
* Price level with start date relative to product phases
CR10006428
Activities provide generic reference to CrxObjects. InvolvedObject allows
to attach any CrxObject to activities. The role of the relationship can
be specified.
CR10006522
UserSettings wizard. Add wizard which allows management of user settings.
CR10006494
Add Address book wizard. The wizard provides simple management of contacts
and addresses.
CR10006521
FilteredActivitiesDataBinding. Add a data binding which allows to access
collections of filtered activities.
An example UI definition looks as follows: Definition of structural feature
which is a reference of type org:opencrx:kernel:Activity:
org:opencrx:kernel:activity1:Activity0..nfalsetrue
The feature name is of the form className:id of filtered activities
container!filteredActivity. The id of the filtered activites container is of
the form (tracker|milestone|category)!name[!filter!name] or globalfilter!name.
The macro ${USER} is replaced by the current user name. The structural feature
definition can be used in element definitions as follows:
<_object>
truefalse
<_item>Private Activities
<_item>0
<_item>0
<_item>3
5org.opencrx.kernel.portal.FilteredActivitiesDataBinding
<_content/>
CR0003427
Search Wizard / ObjectFinder / IndexerServlet. The new (groovy based)
root menu control provides a search input field which allows to perform
keyword / index based search on objects stored in openCRX. The root menu
is customized in ./core/src/data/org.opencrx/control/userwest. The control
invokes the search wizard ./core/src/data/org.opencrx/wizards/en_US/Search.jsp
which in turn takes the query string and creates a corresponding ObjectFinder
on the user home and navigates to it. The object finder lists all index
entries which match the query. Index entries are updates by the Indexer
servlet which is implemented as workflow and is controlled by the
WorkflowControllerServlet. The IndexerServlet indexes all objects which do
not have an IndexEntry which is newer than the modification date of the
object. The IndexerServlet creates an index by invoking the operation
updateIndex() on the object to be indexed.
CR10006498
Model: The class ActivityFilterProperty is extendded as follows:
* add AssignedToFilterProperty
* In case no values for scheduled start and scheduled end are specified
for ScheduledStartFilterProperty and ScheduledEndFilterProperty,
respectively, the current date is used as filter value. offsetInHours
allows to shift the date.
CR10006511
Portal: queries in XML filters. Queries can be defined in XML filters
with the PiggyBackCondition. Here is an example:
* The feature name 'context:$uuid:object_class' corresponds to the feature name
'object_class' with the context prefix context:$uuid. The value of the feature
must be 'org:openmdx:compatibility:datastore1:QueryFilter'. The value is
used by the database plugin and is used to trigger query filters.
* The feature 'context:$uuid:clause' allows to specify the filter clause as
SQL clause. The clause should be in ANSI SQL. This way the filter is database
independent. E.g. use the ANSI SQL function CURRENT_TIMESTAMP to get the current
date and not any DB-specific function.
* $uuid must be replaced by any UUID, e.g. BP96MI-GEdu0Lr3K4tC9bQ.
2. CHANGES
2.0. CHANGED FEATURES
CR10006610
account1: codes for address usage.
CR10006605
Move ContractRole to segment-level. ContractRole is at segment-level and
not composite to ContractReferenceHolder anymore. This allows to perform
global searches on contract roles, e.g. return all contract roles of
account A.
CR10006609
account1: move UnspecifiedAccount.ext... to Account. Move all ext...
attributes of class UnspecifiedAccount to class Account.
CR10006600
depot1: assertReports() takes bookingStatusThreshold as parameter.
assertReports() takes bookingStatus as parameter. This allows to include
bookings in the depot reports matching the specified booking status. The
previous implementation allowed to include bookings with status processed
only.
CR10006599
account1: generalize GroupMembership. Generalize GroupMembership so that
any account can have members and the memberships are listed at account
level. At the same time deprecate the relationships Account.partner,
Account.contact and the class ContactRelationships.
CR10006598
depot1: createBooking() operations take the booking origin as parameter.
CR10007446
product1: Reorg product offerings. The classes below are removed from
the model. A future version of openCRX will provide a simpler model
and implementation for structured products and contract positions.
product1
========
ProductOffering
ComplexProductBundleType
ProductBundleType
BundledProductType
ProductBundleContainer
AbstractProductBundle
AbstractBundledProduct
BundledProduct
ProductBundle
ComplexProductBundle
ChangeOrderParams
AssignProductParams
ProductPosition
ProductOfferingPosition
ProductBundlePosition
ComplexProductBundlePosition
BundledProductPosition
EditableProductOfferingPosition
SelectableItem
SelectableItemWithQuantity
SelectableBundledProduct
SelectableProductBundle
SelectableComplexProductBundle
SelectableProductConfiguration
PriceOverrideEnabled
contract1
=========
InvoiceBundledProductPosition
InvoiceComplexProductBundlePosition
InvoiceProductBundlePosition
InvoiceProductOfferingPosition
OpportunityBundledProductPosition
OpportunityComplexProductBundlePosition
OpportunityProductBundlePosition
OpportunityProductOfferingPosition
QuoteBundledProductPosition
QuoteComplexProductBundlePosition
QuoteProductBundlePosition
QuoteProductOfferingPosition
SalesOrderBundledProductPosition
SalesOrderComplexProductBundlePosition
SalesOrderProductBundlePosition
SalesOrderProductOfferingPosition
CreateProductOfferingPositionParams
CreateProductOfferingPositionResult
depot1
======
BundledProductDepotPosition
ProductBundleDepotPosition
ComplexProductBundleDepotPosition
ProductOfferingDepotPosition
CR10006548
Migrate application plugin to OperationAwarePlugin_1. As a consequence
the plugin is split as follows:
* the classes in package org.opencrx.kernel.backend contain the
business logic of openCRX
* The classes in the packages org.opencrx.kernel.application.* contain
the classes which dispatch operation requests to the backend classes
* The compatibility plugin OpenCrxKernel_1 is still responsible for
create, replace, get and find requests. However it does not handle
operation requests anymore.
To be done
* Migrate the backend to jmi1/cci2. Get rid of DataproviderObjects.
* Migrate OpenCrxKernel_1 to be fully OO. Instead of an
OperationAwarePlugin_1 it should be a Plugin_1.
CR10006543
Migrate to cci2/jmi1 bindings. Migrate the openCRX APIs from the Java 1.4
compliant cci binding to the Java 5 compliant jmi1/cci2 binding. Migration
of client code (wizards, remote clients, reports, user-specific GUIs, ...)
is straight forward. The wizards delivered in openCRX/Core and the
openCRX/Store application show how to migrate to the new APIs.
CR10006529
Merge Web.ear and App.ear. Merge Web.ear and App.ear to one single EAR.
The merge a) improves performance (use of local refs) and b) simplifies
deployement.
CR10006523
JVM local ui repository. Migrate deployment to JVM local ui repository.
The ui provider is local to the ObjectInspectorServlet which has the
following advantages a) performance improvement, b) no conflicts in case
of multiple instances of ObjectInspectorServlet with different ui configurations.
CR10006474
activity1: calculation of actual effort. For performance reasons, the calculation
of ActivityGroup.actualEffort should be calculated by an operation instead by derived
attributes.
CR10006414
AccessControl: missing owner filter for extent queries. AccessControl
does now add owner filter property in case of extent queries.
CR10006493
Change package name org.opencrx.kernel.gui.generic.servlet to
org.opencrx.kernel.portal.
2.1. FIXED BUGS
Many
2.2 REMOVED FEATURES
None
---------------------------------------------------------------------