Guide - 7.9-7.10. API Changes

Table of Contents


Product Version

7.9

Product To Version

7.10
Status

final

1 API Changes

DescriptionAPI changeHow to migrate
Basket calculation results are now always persisted

To prevent issues with multiple application servers, basket calculation results (in the form of an XML computed item structure) are now always persisted. This causes the following changes:

Configuration properties

  • intershop.basket.persistCalculationResults
    • removed
  • intershop.xmlattributes.computedlineitems.compressed
    • Changed default value to true. This causes the XML structure to be compressed by default. If there is custom code that operates directly on the XML structure (database table BASKET, column COMPUTEDITEMS).

Database

  • Table BASKET - new column CALCULATIONINVALIDFLAG
    • Will be created automatically by DBMigrate

Java code

  • com.intershop.beehive.bts.capi.orderprocess.LineItemCtnr
    • new methods:
      • SpreadSheet getSpreadSheet()
      • void setSpreadSheet(SpreadSheet)
      • boolean getSpreadSheetNull()
      • void setSpreadSheetNull(boolean)
  • com.intershop.beehive.bts.internal.orderprocess.LineItemCtnrPO no longer implements com.intershop.component.spreadsheet.capi.SpreadSheet interface
  • com.intershop.component.basket.capi.BasketBO.setCalculationInvalid(boolean)
    • requires a transaction now
  • com.intershop.component.foundation.capi.spreadsheet.orm.ComputedItems.forcePersisting()
    • removed, no replacement
See notes in API changes column.

Java code of cartridge bc_mvc
in f_business/f_catalog

New interface is added for import elements representing extension to catalog filters (views).

CAPI
com.intershop.component.mvc.capi.impex.catalogfilter.extension.ElementBulkerORMCatalogFilterExtension

Old interface for import elements representing extension to catalog filters (views) is deprecated.

CAPI
com.intershop.component.mvc.capi.impex.catalogfilter.extension.ElementBulkerSQLLDRCatalogFilterExtension

New implementation class of the bulker for importing catalog filters (views). The bulker now uses the ORM layer instead of SQL Loader.

Internal
com.intershop.component.mvc.internal.impex.ElementBulkerORMCatalogFilter
Implement the new interface for catalog filters (views) import. For example see the recipe Add a Catalog View Target Type to Import.

Changes done to content management system

Java code

  • com.intershop.component.pmc.capi.viewcontext.ViewContextMgr
    • removed deprecated method
      • createViewContext(String, ContextObjectRelation, Domain, App)

Pipelet

  • New pipelet GetPageletView that answers with a pagelet wrapped into a PageletView implementation to handle sharing aspects.


 Java code
  • com.intershop.component.pmc.capi.viewcontext.ViewContextMgr
    • use createViewContext(String, ContextObjectRelation, Domain, PageletModelRepository) instead
Java classes of cartridge bc_basket_service moved to library

The following Java classes were move from bc_basket_service to the micro service project common-webinterface which is referenced as library.

  • com.intershop.common.webinterface.capi.ServiceNotAvailableException
  • com.intershop.common.webinterface.capi.xml.PeriodXmlAdapter
  • com.intershop.common.webinterface.capi.xml.UriXmlAdapter
Since the package name remains constant there is not need to change something in the code that uses that classes.

Java code of cartridge bc_catalog

in f_business/f_catalog

In Java class com.intershop.component.catalog.capi.CatalogCategoryBO the following method has been added:

  • Collection<CatalogCategoryBO> getMenuSortedAccessibleSubCatalogCategoryBOs()

Java code change in p_platform

Row.java

In the class com.intershop.beehive.core.capi.query.Row the following method has been changed:

  • public <T> T get(String name)


The following methods were added:

  • public <T> T getRawData(String name)
  • public JDBCRow getJDBCRow()


The method getJDBCRow() is only for internal usage. Please keep using the instance of Row directly.
get(String name) is now generic. If the return-value is an instance of java.lang.Number, the return type is java.math.BigDecimal.
If the original value is needed, instead of a java.math.BigDecimal, the method getRawData(String name) should be used.


Java code change in p_platform

SQLUtil.java

In Java class com.intershop.beehive.core.capi.search.sql.SQLUtil the following methods have been deleted:

  • public static StringBuffer convDate(Date date)
  • public static String getDateFormatString()
  • public static String convDate2GMTDateString(Date date)


Use com.intershop.beehive.core.capi.util.DateHelper to calculate a timestamp in UTC.

Java code change in p_platform

AnalyzeTablesDecorator.java

The constructor-parameter has changed into the parameter of a set-method.
Removed cartridge ac_ecircle

The E-Mail Marketing Provider eCircle was acquired by another company and is not available anymore in the market. All sources and corresponding tests have been removed.

The capability to register a custom E-Mail Marketing Provider still remains in the product.

Not supported.
Remove Java code in p_platformThe class com.intershop.beehive.core.capi.mbean.OracleDataSourceInformation and its interface com.intershop.beehive.core.capi.mbean.OracleDataSourceInformationMBean are removed to cleanup oracle dependencies in core cartridgeNot supported.
Remove deprecated code in p_platformThe deprecated method com.intershop.beehive.core.dbinit.capi.PrepareException.getNestedException() has been removed.Use com.intershop.beehive.core.dbinit.capi.PrepareException.getCause() instead
Classes moved from app_sf_rest to app_sf_rest_commonThe classes BitSetSerializer and BitSetDeserializer have been moved from package com.intershop.sellside.rest.common.capi (cartridge app_sf_rest) to com.intershop.sellside.rest.common.v1.capi in cartridge app_sf_rest_common

The dependency to the new cartridge has to be added to the dependencies list. Both classes are still available, but now deprecated. It is recommended to use the classes from the new package.

The 'messaging' component was extracted as single project.

The 'messaging' component was extracted from p_platform and got a new name and a new group:

  • group: 'com.intershop'
  • name: 'common-messaging'

In the dependencies section of the build.gradle are following replacements necessary(e.g. compile)

- compile group: 'com.intershop.platform', name: 'messaging'
+ compile group: 'com.intershop', name: 'common-messaging
Changed pipeline-classloading.The classes com.intershop.beehive.core.internal.pipeline.AbstractPipelineNodeClassLoader and com.intershop.beehive.core.internal.pipeline.PipeletClassLoader are removed from p_platform.The developer must know that there is no dynamic loading of pipelets any more.
Pipelets behave like normal classes and the reloading of changes has to be trigered
the same way than it has to be for other classes.

Disclaimer

The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.

Customer Support
Knowledge Base
Product Resources
Support Tickets