Introduction | The most noticable change of this release is the new branding of Intershop Studio. |
New Branding | Splash ScreenA new splash screen is available: Welcome ScreenThe newly designed Welcome looks as follows:
|
Support for | Development Home PreferenceUse the environment script of the developers home or the developer home folder to configure Intershop Studio. The developers home script is usually called gradle_environment.(bat|sh). It is used to compute the necessary environment variables. Refresh Gradle DependenciesThe command (action): Refresh Gradle Dependencies allows to refresh the dependencies of cartridges. The action is located in the menu Project. Alternatively you can call it from the context menu. A dialog allows to select multiple cartridges in order to allow batch processing of such dependencies. If the dependency of cartridges changed the class pathes will be refreshed accordingly. Java Extension PointsJava extension points are now available not only for source cartridges but also for server and Gradle repository cartridges. They are now also displayed in the Cartridge Explorer. Terminal ViewSome actions and tools are available as a plug-in and need to be performed in a shell or terminal. This view allows to open local as well as remote shells and terminals. Intershop Studio provides an access to your system terminal directly from within the IDE and helps you to stay focused on you development tasks. A special shell Intershop Developer Shell is avaiable that automatically uses the developer home folder and is set up using an gradle_enviroment script. Open View 'Terminals': Create 'Intershop Developer Shell': Gradle Model ViewThe Gradle Model View (Window | Show View... | Intershop | Gradle Model) displays Gradle projects. It shows details about the hierarchy, tasks, and dependencies. These information are used to compute class paath containers and cartridge inter dependencies.
|
REST Service | REST JAX-RS Services in Cartridge DocumentationThe cartridge documentation now contains REST services. To create a documentation you can use the export wizard Cartridge API Model, Documentation and Usage Reports. Open the export wizard from Cartridge Explorer: Select HTML export: The Javadoc like documentation of cartridge artifacts: REST JAX-RS Services ViewThe REST JAX-RS Services View shows resources and services that contribute to Intershop REST-based Synaptic API. Developers can see details about paths, parameters, return values, supported mime-types and others. Services grouped by their path: Showing services provided by resources: Resource Object ParametersThe details area of the view shows samples and schema information for RO types, if available. Developers can use such schema information in order to create Java stubs. The examples are also handy when using the JSON services. JSON Example of type ContactRO: JSON Schema information of ContactRO: XSD of ContactRO opened in an XSD editor: |
Improved Handling | Hyperlink for ISML Templates in Build ConsoleISML templates are processed from the build tools. Now a hyperlink is available to open erroneous ISML files reported by the ISML2JSP compiler. Template with Content of Overridden TemplateWhen creating an ISML template you may override an existing one using the 'Override Existing...' button. Now you can use the existing content as initial content for the new template. |
Clarity of Pipelines | Quick Fix for Missing Description ProblemA quick fix is available for the problem type Missing Description. No big deal: It just provides a dialog to enter a comment. Pipeline Node Appearance EnhancementsThe appearance of pipeline nodes has been enhanced. Connectors now can have labels and their own image and the node icon of the node can be changed. In order to change the icon of a node the description annotation @Icon or Icon attribute can be used. Following example would use: pipelet_icons/pipelet_smile.png that needs to be located in the cartridges content folder: /** * A pipelet that shows emotion dependent on its configuration. */ @PipelineNode(attributes = { @Attribute(name = "NodeType", value = "Decision"), @Attribute(name = "Label", value = "${Configuration[\"mood\"].value:Pipelet.Configuration[\"mood\"].description}"), @Attribute(name = "MinorLabel", value = "*++++*"), @Attribute(name = "CartridgeLabel", value = "[Cartridge: <b>${Pipelet.Cartridge.label}</b>]"), @Attribute(name = "Image", value = "pipelet_icons/pipelet_yellow.svg"), @Attribute(name = "DecorationImages", value = "${equals(Configuration[\"mood\"].value,\"angry\")?\"pipelet_icons/angry.svg\":equals(Configuration[\"mood\"].value,\"happy\")?\"pipelet_icons/happy.svg\":\"pipelet_icons/indifferent.svg\"}"), @Attribute(name = "DirectEditProperty", value = "mood"), @Attribute(name = "PipelineType", value = "view"), @Attribute(name = "Icon", value = "pipelet_icons/pipelet_smile.png"), }) Now the pipeline node would be displayed using this icon. E.g. it would look as follows in the palette of the Visual Pipeline Editor: In order to apply a label at a connector the @Label description annotation or Label attribute can be used (here we make use of the (Javadoc) annotation, just for demonstration): /** * @Label Happy! */ @PipelineNodeOutput(name = "Happy") private Out happyOut; @PipelineNodeOutput private Out angryOut; Now the node would be displayed as follows: You can even make it appear more important because simple HTML is supported: /** * @Label <h2>Happy!</h2> */ @PipelineNodeOutput(name = "Happy") private Out happyOut; @PipelineNodeOutput private Out angryOut; Also SVG graphics are supported. So We created a little star that should be used for the happy output.
If the connector image should rotate dependent on which side of the node it is, the name has to end with Rotatable. Btw: This is true for node images as well. Next Connector Display of Pipeline Call NodeThe representation of next (default) connector is made semantically more clear. The former representation might be missleading about the handling of other named connectors. Now it is more clear that the connector actually handles all possible call node return states except the special handled ones. Prior DesignConnector Error and A are connected. So, free B as well as next are shown: New DesignAll possible connectors are used. So no next connector is displayed: Connectors A, Error, and next are connceted. The target of the next transition is the whole connector list: Connectors next and Error: |
New Pipeline | EMF Model Based Pipeline XMLThe Visual Pipeline Editor now can edit EMF XML based pipeline files. Next Intershop versions will support a new XML for pipelines. This format is much more compact and compare/merge friendly. You can create such new files using: Save as... from the Visual Pipeline Editor. The new name has to end with .pipeline. MigrationIn order to migrate all pipelines of cartridges an export wizard is available: In order to also remove the 'old' XML files you should select Remove XML files after export. |
Pipeline Comparer | Toolbar Action to Configure How Elements Are Matched in Pipeline ComparerThe most crucial aspect of the model comparing is the matching of elements. For example, the start nodes of the left pipeline need to be associated with the right one. A possible strategy to do that is to use the nodeID. This works fine if you compare a history of a pipeline with already existing start nodes. But in other cases the start node id would be the wrong property. Intershop Studio now supports different matching strategies. Filter for Pipeline Structure Changes in Pipeline ComparerThe Pipeline Comparer now provides an action to ignore pipeline structure related changes (next and before node changes). |
Testing | JUnit Cartridge Test Cases Now Consider Field Based Options in JUnit-RulesJUnit cartridge test cases support paramerizations and options using static Java fields. These options can be customized in the launch configuration. This behaviour can now be used in Rule(s) and ClassRules(s) as well. MySimpleTest import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import com.intershop.tools.etest.server.TestCaseLoggerRule; public class MySimpleTest { @ClassRule public static TestCaseLoggerRule logger = new TestCaseLoggerRule(); /** * A very simple thing :) */ public static String MY_SIMPLE_OPTION = "huch"; @Test public void mytest() throws Exception { System.out.println("Loglevel:" + logger.getLevel()); System.out.println("OPTION_SERVER_NAME:" + MY_SIMPLE_OPTION); logger.debug("Hello :)"); } } This code uses the TestCaseLoggerRule wich provide an option |
Miscellaneous | File Column in Extension Points ViewThe Extension Points view now has a column File which displays the file in which the actual element is located. Application View Shows Extending CartridgesCartridges can extend existing cartridge lists in order to provide additional features for an application type. These bindings are now not only shown for the cartridge but also for cartridge lists. |
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.