Difference between revisions of "Opentaps 1.4 to 1.5 Technical Upgrade Notes"

From Opentaps Wiki
Jump to navigationJump to search
m (Protected "Opentaps 1.4 to 1.5 Technical Upgrade Notes": Sysop page [edit=sysop:move=sysop])
(Controller)
Line 83: Line 83:
 
If you use minilang event servlets, you must now specify the path explicitly with the `component://` notation.  Thus,  
 
If you use minilang event servlets, you must now specify the path explicitly with the `component://` notation.  Thus,  
  
        <event type="simple" path="org/ofbiz/accounting/payment/PaymentMethodEvents.xml" invoke="deletePaymentMethod"/>
+
<event type="simple" path="org/ofbiz/accounting/payment/PaymentMethodEvents.xml" invoke="deletePaymentMethod"/>
  
 
must be changed to
 
must be changed to
 
+
<event type="simple" path="component://accounting/script/org/ofbiz/accounting/payment/PaymentMethodEvents.xml" invoke="deletePaymentMethod"/>
        <event type="simple" path="component://accounting/script/org/ofbiz/accounting/payment/PaymentMethodEvents.xml" invoke="deletePaymentMethod"/>
 

Revision as of 23:37, 21 December 2010

This page describes technical differences between opentaps 1.4 and 1.5. You should read it if you are upgrading or migrating code developed for opentaps 1.4 to opentaps 1.5

Entity Engine Change

opentaps 1.5 now offers the multi-tenancy features of ofbiz 10.04. This means that you need to configure your database differently in `entityengine.xml`. Your delegator must now have a main and a tenant datasource:

   <delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false">
       <group-map group-name="org.ofbiz" datasource-name="localmysql"/>
       <group-map group-name="org.ofbiz.olap" datasource-name="localderbyolap"/>
       <group-map group-name="org.ofbiz.tenant" datasource-name="localmysql_tenant"/>
       <group-map group-name="org.opentaps.analytics" datasource-name="analytics"/>
       <group-map group-name="org.opentaps.testing" datasource-name="testing"/>
   </delegator>

You will then need to define the datasource more than once, even if they both use the same database:

   <datasource name="localmysql_tenant"
           helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
           field-type-name="mysql"
           check-on-start="true"
           add-missing-on-start="true"
           check-pks-on-start="false"
           use-foreign-keys="true"
           join-style="ansi-no-parenthesis"
           alias-view-columns="false"
           drop-fk-use-foreign-key-keyword="true"
           table-type="InnoDB"
           character-set="latin1"
           collate="latin1_general_cs">
       <read-data reader-name="seed"/>
       <read-data reader-name="seed-initial"/>
       <read-data reader-name="demo"/>
       <read-data reader-name="ext"/>
       <inline-jdbc
               jdbc-driver="com.mysql.jdbc.Driver"
               jdbc-uri="jdbc:mysql://127.0.0.1/opentaps_1_5?autoReconnect=true&useOldAliasMetadataBehavior=true"
               jdbc-username="opentaps"
               jdbc-password="opentaps"
               isolation-level="ReadCommitted"
               pool-minsize="2"
               pool-maxsize="250"
               time-between-eviction-runs-millis="600000"/>
   </datasource>

as well as:

   <datasource name="localmysql"
           helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
           field-type-name="mysql"
           check-on-start="true"
           add-missing-on-start="true"
           check-pks-on-start="false"
           use-foreign-keys="true"
           join-style="ansi-no-parenthesis"
           alias-view-columns="false"
           drop-fk-use-foreign-key-keyword="true"
           table-type="InnoDB"
           character-set="latin1"
           collate="latin1_general_cs">
       <read-data reader-name="seed"/>
       <read-data reader-name="seed-initial"/>
       <read-data reader-name="demo"/>
       <read-data reader-name="ext"/>
       <inline-jdbc
               jdbc-driver="com.mysql.jdbc.Driver"
               jdbc-uri="jdbc:mysql://127.0.0.1/opentaps_1_5?autoReconnect=true&useOldAliasMetadataBehavior=true"
               jdbc-username="opentaps"
               jdbc-password="opentaps"
               isolation-level="ReadCommitted"
               pool-minsize="2"
               pool-maxsize="250"
               time-between-eviction-runs-millis="600000"/>
   </datasource>

Web Tier Changes

Controller

If you use minilang event servlets, you must now specify the path explicitly with the `component://` notation. Thus,

<event type="simple" path="org/ofbiz/accounting/payment/PaymentMethodEvents.xml" invoke="deletePaymentMethod"/>

must be changed to

<event type="simple" path="component://accounting/script/org/ofbiz/accounting/payment/PaymentMethodEvents.xml" invoke="deletePaymentMethod"/>