Guide - 7.6 Build Changes

1 Known Issues

1.1 Deployments with Previous Versions of Intershop 7 CI

Problem

When using Intershop Gradle Tools 2.7.0, deployments (including the assembly build and DBInit) of former Intershop versions (e.g., 7.5.x) may fail. Because the deployment's settings.gradle file by default references deployment-bootstrap via the dynamic version expression "+", this may also resolve to 2.7.0 instead of, e.g., 2.3.0.1. This will fail, as Gradle deployment 2.7.0 depends on maven artifacts, which were not part of the repository configuration of previous setups.

Solution 1

Change the build.gradle of the assembly to configure the deployment-bootstrap version to "2.3.0.1":

<DIFF> corp_assembly/build.gradle
...
apply plugin: 'ish-assembly'

+assemblyBuild.bootstrapVersion = '2.3.0.1'

assembly {
...

Solution 2

Update the corporate configuration to include either the ishrepo proxy repository directly or a repository group containing ishrepo (preferred).

2 Gradle Tools Update

Intershop Commerce Suite 7.6 requires Intershop Gradle Tools version 2.7 or higher. Your component set and assembly builds must be updated if they do not already use an appropriate version. Please seePublic Release Notes - Gradle Tools - Version 2.7 for information on how to migrate to the newest build & deployment tools.

3 Java Update

Intershop Commerce Suite 7.6 is based on Java 8. To be able to use the new language features introduced in Java 8, please set the compatibility levels accordingly.

diff of the component set's build.gradle
 project.plugins.withType(JavaBasePlugin) {
-    sourceCompatibility = 1.7
-    targetCompatibility = 1.7
+    sourceCompatibility = 1.8
+    targetCompatibility = 1.8
 }

4 Cartridge Group Changes

4.1 Description

The components that comprise the business platform of Intershop 7 have been moved to different groups. Instead of com.intershop different groups are used. Furthermore, some cartridges are removed, e.g., tools. Therefore it is necessary to migrate the content of your project's build.gradle files.

Intershop provides a special plugin for this migration task: 'com.intershop.build.groupMigration'

4.2 Migration

To use the Gradle Intershop dependency configuration migration plugin:

  1. Add an additional build script to the root project of a component set.

    migration.gradle
    apply plugin: 'com.intershop.build.groupMigration'
    
    buildscript {
        dependencies {
            classpath group: 'com.intershop.build.migration', name: 'intershop-buildmigration', version: '7.6.0.0'
        }
    }

    With this plugin it is possible to migrate dependency configurations of projects based on Intershop 7.4.6 and 7.5 to Intershop 7.6.

  2. Change to the root directory of the project and start the migration with the following command line.

    gradlew -b migration.gradle migrateTo7.6

4.3 Gradle Task

The Intershop SCM version plugin adds the following tasks to the root project of multi project:

Task nameTypeDescription
migrateTo7.6com.intershop.build.migration.task.GroupMigrationThis task migrates the group of Intershop cartridges.

 

5 Dependency Management for 3rd Party Libraries

5.1 Description

All libraries, that were previously contained inside of cartridges, are now declared as dependencies for those cartridges. Every component must declare the third party libraries it uses explicitly. There is no more "container" component like the tools cartridge anymore.

5.2 Migration

  1. For each build.gradle script in your component set sources, perform the following steps:
    1. Remove the dependency to group: 'com.intershop', name: 'tools'.
    2. Add the needed libraries as compile dependencies.
  2. Adapt the build.gradle file of your assembly.
    1. Enable transitive dependency resolution for your cartridges, e.g.:

       assembly {
           cartridges {
               include(
                   'com.example:cartridge1',
                   'com.example:cartridge2',
                   in: [production, development, test]
      +        )
      -        ) {
      -            transitive = false
      -        }
           }
       }

6 Removed Host Type Javadoc

6.1 Description

Due to inconsistent cross-links we removed the dedicated host type javadoc for stand-alone deployment of documentation. Instead the Javadoc is to be consumed in Intershop Studio, that provides correct links based on your project's dependencies.

6.2 Migration

When using the responsive starter store, you do not need to change anything. All base assemblies do not contain the host type javadoc anymore.

If you define or customize host types in your assembly, be sure to not set the flag includeJavadoc to true. This property must be supported in Gradle Tools for compatibility reasons, but enabling it on a Intershop 7.6 assembly will yield an exception during deployment: com.intershop.deploy.index.DuplicateResourceException: Task :some_cartridge:deployJavadocFiles: Resource '/some/path/javadoc/index.html' already defined for Task :deployJavadocIndexFiles

7 Changed Assembly Structure

7.1 Description

The assemblies intershop7 and intershop7-solr have been obsoleted by assemblies for Commerce Management (B2C or B2B). Both containing Solr functionality by default.

7.2 Migration (inheriting from intershop7-solr)

  1. Replace intershop7-solr by commerce_management_b2c or commerce_management_b2x in your assembly's build.gradle and gradle.properties files and, if contained, in your component set's gradle.properties file.

7.3 Migration (inheriting from intershop7)

  1. In case you need to continue using Intershop 7 without the Intershop-provided Solr integration, you can exclude Solr components when inheriting the assembly, e. g.:

    Assembly's build.gradle (snippet)
    assembly {
        inheritFrom('com.intershop.assembly:commerce_management_b2c') {
            // exclude Solr integration cartridges
            excludeDependencies 'ac_search_solr', 'ac_search_solr_bo', 'ucm_demo_solr'
            // exclude Solr server infrastructure
            excludeDependencies from: solr
        }
    }

8 Obsolete Component Set p_security

8.1 Description

Until version 1.1 the component set p_security contained only pf_encryption with no further dependencies to intershop code. Therefore, pf_encryption has been moved to a standalone component encryption which is provided through a mavenized version as a library. The group name changed from com.intershop (:pf_encryption) to com.intershop.common (:encryption).

8.2 Migration

Change dependencies from com.intershop:pf_encryption:1.1.0.0 to com.intershop.common:encryption:2.0.0.

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
Tickets