Projects/CodeCleanupOB3
Introduction
This project contains all the code cleanup work done for the Openbravo 3 release.
This project did review the Openbravo code-base (both files and db-content) and removed a number of deprecated / legacy elements whichfrom the Openbravo 3 distribution. Most of those elements are available in one of three modules which have been created to provide a means to still use those legacy elements (where this was technically feasible).
- Import Data (Classic csv-file import)
- LAM Authentication Manager (LAM SSO Authentication Manager)
- Legacy features no longer available in Core (all the rest)
Who is affected by those changes?
The following sections explain in which cases an instance might be affected by this cleanup work. They should help to decide if one or more of those modules above are needed even before doing a test-update of the instance.
AuthenticationManager changes
The AuthenticationManager interface was changed to an abstract-class. If an instance has a custom AuthenticationManager
, instead of implement the interface the the class needs to be a sub-class of AuthenticationManager and implement doLogin
and doLogout
methods: AuthenticationManager
Implementation
- Previous to 3.0MP4
<source lang="java"> public class DefaultAuthenticationManager implements AuthenticationManager {
public String authenticate(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException, ServletException, IOException { // authenticate implementation }
public void logout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // logout implementation }
} </source>
- In 3.0MP4 and above, the the custom authentication class needs to extend AuthenticationManager instead of trying to implement an interface. It needs to implement the doAuthenticate and doLogout in the same way it was doing before.
<source lang="java"> public class DefaultAuthenticationManager extends AuthenticationManager {
@Override protected String doAuthenticate(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException, ServletException, IOException { // authenticate implementation }
@Override protected void doLogout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // logout implementation }
} </source>
Using the LAM authentication manager
This applies only if your instance is using the LAM Authentication manager provided with Openbravo. If the instance does not use the parameter 'authentication.class=org.openbravo.authentication.lam.LamAuthenticationManager' in config/Openbravo.properties then you do not need this new module.
When using classic csv-file import data loader
If you use the Import Data Loader functionality earlier provided by core then you need to install this module to not loose that functionality.
Note: This applies also if some other module depends on this functionality. Examples for this are:
- The legacy features module mentioned above
- The POS Sync module for synchronizing data with Openbravo POS (a new version of that module has been published already which adds the needed dependency).
Use of removed 'Application Element'
It might be that some customization do indirectly depend on some application elements (ad_element) which have been removed during the cleanup. This can happen as the 'Synchronize Terminology' process matches elements by name so it might have connected some of the new columns with elements in core which have now been removed.
In this case two options are possible:
a.) Let the customization depend on the legacy module (discouraged) b.) Create a new ad_element entry in the customization module and use this one instead
Use of any of the other removed elements
If any of customization/module require use of one of the removed elements (files,tables, ...) then the immediate fix is to install the 'Legacy features' module during the upgrade.
This should fix the issue in most cases and let the customization continue to work without changes.
Exception: If some customized code does access any of the moved tables via DAL then a slight adjustment to that code will be necessary. This is needed as for technical reasons the java-package of the dal-model classes corresponding to those tables had to be changed.
List of removed elements
The following sections list the main elements which have been remove from the core distribution and moved into the Legacy module.
The full list of moved elements can be seen as the Legacy modules' content in its mercurial repository here.
Especially individual moved files (html,xml,jrxml,... are not listed here).
Physical database objects
This list all the database objects which have been removed from core an moved into the Legacy module:
Tables
Tables |
---|
AD_ATTACHMENT |
AD_CHANGELOG |
AD_COLUMN_ACCESS |
AD_NOTE |
AD_PROPERTY_CONFIGURATION |
AD_RECORD_ACCESS |
AD_TASK_ACCESS |
AD_TASK_TRL |
AD_TASK |
AD_TEST |
AD_TREEBAR |
AD_TREENODEBP |
AD_TREENODEMM |
AD_TREENODEPR |
AD_WF_NODENEXT |
AD_WF_NODE_TRL |
AD_WF_NODE |
AD_WORKFLOW_ACCESS |
AD_WORKFLOW_TRL |
AD_WORKFLOW |
AT_COMMAND_TRL |
AT_COMMAND |
AT_LINE |
AT_ROLLOGIN |
AT_TESTDOCUMENTLINE |
AT_TESTDOCUMENT |
AT_TEST |
C_INTERORG_ACCT |
C_ORGASSIGNMENT |
C_REVENUERECOGNITION_PLAN |
C_REVENUERECOGNITION_RUN |
C_REVENUERECOGNITION |
C_SERVICELEVELLINE |
C_SERVICELEVEL |
MA_PC_CASE |
MA_PC_VALUE |
M_LOCATOR_TYPE |
M_PERPETUALINV |
M_REPLENISH |
M_WH_PERIOD_INVOICED |
M_WH_PERIOD |
M_WH_SCHEDULE_PRODUCT |
M_WH_SCHEDULE |
R_CONTACTINTEREST |
R_INTERESTAREA |
R_MAILTEXT |
R_REQUESTACTION |
R_REQUESTPROCESSOR_ROUTE |
R_REQUESTPROCESSOR |
R_REQUESTTYPE |
R_REQUEST |
R_RESOURCEPLANCOST |
Views
Views |
---|
A_ASSET_AMORTIZATION |
AD_FIELD_V |
AD_FIELD_VT |
AD_TAB_V |
AD_TAB_VT |
AD_USER_ROLES_V |
AD_WINDOW_VT |
C_BPARTNER_V |
C_CASH_DETAIL |
C_INVOICE_CUSTOMERPRODQTR |
C_INVOICE_CUSTOMERVENDQTR |
C_INVOICE_DAY |
C_INVOICE_HEADER_V |
C_INVOICE_HEADER_VT |
C_INVOICE_LINETAX_V |
C_INVOICE_LINETAX_VT |
C_INVOICE_MONTH |
C_INVOICE_PRODMONTH |
C_INVOICE_PRODWEEK |
C_INVOICE_VENDORMONTH |
C_INVOICE_WEEK |
C_ORDER_HEADER_V |
C_ORDER_HEADER_VT |
C_ORDER_LINETAX_V |
C_ORDER_OPEN |
C_PROJECT_DETAILS_V |
C_PROJECT_DETAILS_VT |
C_PROJECT_HEADER_V |
C_PROJECT_HEADER_VT |
GL_JOURNALLINE_ACCT_V |
MA_SEQUENCE_EMPLOYEE_COST |
MA_SEQUENCE_INDIRECT_COST_COST |
MA_SEQUENCE_MACHINE_COST |
M_INOUT_HEADER_V |
M_INOUT_HEADER_VT |
M_INOUT_LINE_V |
M_INOUT_LINE_VT |
M_TRANSACTION_SUM |
R_REQUEST_V |
Triggers
Triggers |
---|
AD_PROPERTY_CONF_MOD_TRG |
AD_TASK_TRG |
AD_TASK_TRG2 |
AD_WF_NODE_MOD_TRG |
AD_WF_NODENEXT_MOD_TRG |
AD_WF_NODE_TRG |
AD_WORKFLOW_MOD_TRG |
AD_WORKFLOW_TRG |
AT_COMMAND_TRG |
C_BPARTNER_TRG2 |
C_REVENUERECOGNITION_PLAN_TRG |
MA_PC_CASE_TRG |
PL-Functions
PL-Functions |
---|
AD_DISPLAY_LIST |
AD_GET_PROPERTY_VALUE |
AD_MESSAGE_GET |
AD_ORGLIST |
AD_TRANSLATE_ID |
AD_UPDATE_SEQUENCE |
AT_TEST_COPY |
AT_TEST_DELETE |
C_ELEMENTVALUE_COPY |
C_GETORDERLINE_TAXAMOUNT |
C_GETPERIODNAME |
C_ORDER_ACTUALIZE_PRICELIST |
C_ORDER_FACT_RESET |
C_PAYMENTTERM_DUEDATE |
C_PAYMENTTERM_DUEDAYS |
GL_PERIOD_OPEN |
MA_PC_CASE_CREATE |
M_GET_OFFERS_APPLIED |
M_GET_PURCHASE_PRICE |
M_PRODUCT_DELETE |
M_WH_ACTIVATE_PERIODS |
M_WH_PERIOD_GENERATE |
R_REQUEST_DUETYPE |
R_REQUEST_PROCESS |
R_REQUEST_PROCESS0 |
R_REQUEST_REOPEN |
Main Application Dictionary entries
This section list the removed elements from the application dictionary but only covers the main tables and not every detail:
Windows
ID | Name |
---|---|
113 | Workflow |
114 | Task |
127 | Test |
128 | Attachment |
160 | Withholding (1099) |
161 | Charge |
174 | Revenue Recognition |
175 | Perpetual Inventory |
176 | Vendor Details |
193 | Notice |
201 | Request |
203 | Request Processor |
204 | Mail Template |
220 | Service Level |
232 | Request All |
244 | Request Type |
245 | Areas of Interest |
250 | Application Translation Check |
251 | Asset |
262 | Vendor Expense Invoice |
270 | Change Log |
272 | Time Type |
275 | Invoice Payment Schedule |
286 | Service Project (deprecated) |
800004 | Simple Sales Order |
800010 | Warehouse Schedule |
800012 | Storage Bin Type |
800021 | Expense Invoice |
800022 | Document |
800023 | Role Login |
800024 | Instructions |
800025 | Command |
800067 | Periodic Quality Control Data |
EFB5814F190840039AF5137B01C6E32B | Property Configuration |
Individual Tabs
Tab ID | Window-name | Tab-name |
---|---|---|
332 | Organization | Accounting |
307 | Role | Workflow Access |
313 | Role | Task Access |
439 | Business Partner | Areas of Interest |
182 | Product | Replenish |
493 | Resource | Plan Costs |
487 | Session | Change Log |
483 | Role Access | Record Access |
484 | Role Access | Column Access |
556 | Business Partner Info | Partner Requests |
Manual Forms
ID | Form-name |
---|---|
105 | Create Charges |
106 | Payment Print/Export |
107 | Payment Selection (manual) |
111 | Password Maintenance |
112 | Merge Entities |
800000 | In-Out Report |
800008 | Change Payment Status |
800010 | InvoiceVendorMultiline |
800013 | Remittance Cancellation/Return |
Report & Processes
ID | Process-name |
---|---|
126 | Order Drilldown |
152 | Invoice Detail - old |
158 | Process Requests |
177 | Run Process |
195 | Reopen Request |
209 | Send Mail Text |
800007 | Report inventory |
800009 | Proposal print |
800011 | Bank Report - old |
800012 | Cash Report - old |
800016 | Invoice Customer Report |
800028 | Change Order Organization |
800049 | C_Invoice_Create1 |
800065 | Create Periods |
800066 | Activate/Deactivate Periods |
800071 | Generate Help |
800072 | Invoiced Returns Dimensional Report |
800078 | Update Price List from Orders |
800080 | Generate 347 Model |
800093 | Account Dimensional Report |
800095 | Delete Lines from Test |
800096 | Copy Test Lines |
800097 | Test In |
800120 | Run Periodic Control |
1004400007 | Revenue and Expenses |