From d170a576023d88343c90ce67405d8754d3a16811 Mon Sep 17 00:00:00 2001 From: Christian Stuht Date: Tue, 19 Feb 2019 10:24:44 +0100 Subject: [PATCH 1/3] Support Hybris 6 --- .gitignore | 25 +- .project | 39 - .ruleset | 1392 --------- build.xml | 49 +- extensioninfo.xml | 10 +- extensioninfo.xsd | 206 -- hmc/resources/hmc.xsd | 2614 ----------------- project.properties | 40 +- resources/firefly-spring.xml | 18 +- resources/items.xsd | 1044 ------- src/de/neuland/firefly/EventDistributor.java | 20 + src/de/neuland/firefly/HybrisAdapter.java | 11 +- .../firefly/MigrationOnStartupListener.java | 24 +- .../changes/ChangeExecutedEventListener.java | 19 +- .../HmcResetEventListener.java | 10 + .../SystemUpdateEventListener.java | 10 + .../neuland/firefly/EventDistributorTest.java | 8 +- .../MigrationOnStartupListenerTest.java | 21 +- .../ChangeExecutedEventListenerTest.java | 12 +- .../HmcResetEventListenerTest.java | 6 +- .../SystemUpdateEventListenerTest.java | 6 +- web/webroot/WEB-INF/ibm-web-ext.xmi | 20 +- web/webroot/img/logo-bg.svg | 100 +- web/webroot/img/logo.svg | 102 +- web/webroot/index.jsp | 14 +- 25 files changed, 325 insertions(+), 5495 deletions(-) delete mode 100644 .project delete mode 100644 .ruleset delete mode 100644 extensioninfo.xsd delete mode 100644 hmc/resources/hmc.xsd delete mode 100644 resources/items.xsd diff --git a/.gitignore b/.gitignore index f081e52..5384e5c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,27 @@ classes + +# generated gensrc -bin -.settings + +extensioninfo.xsd +resources/items.xsd +hmc/resources/hmc.xsd + +generated-firefly-web-spring.xml +platformhome.properties +ruleset.xml +.ruleset +*testclasses.xml + +# IntelliJ +.idea +out/ + +# Eclipse .externalToolBuilders .classpath .pmd +.project +.settings .springBeans -platformhome.properties -generated-firefly-web-spring.xml +bin/ diff --git a/.project b/.project deleted file mode 100644 index 5087d01..0000000 --- a/.project +++ /dev/null @@ -1,39 +0,0 @@ - - - firefly - - - - - - org.eclipse.ui.externaltools.ExternalToolBuilder - auto,full, - - - LaunchConfigHandle - <project>/.externalToolBuilders/HybrisCodeGeneration.launch - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.springframework.ide.eclipse.core.springbuilder - - - - - net.sourceforge.pmd.eclipse.plugin.pmdBuilder - - - - - - org.springframework.ide.eclipse.core.springnature - org.eclipse.jdt.core.javanature - net.sourceforge.pmd.eclipse.plugin.pmdNature - - diff --git a/.ruleset b/.ruleset deleted file mode 100644 index fb8a7b9..0000000 --- a/.ruleset +++ /dev/null @@ -1,1392 +0,0 @@ - - - PMD Plugin preferences rule set - - .*/Generated/.* - .*/gensrc/.* - .*/jsp/.* - .*_jsp.java - .*/de/hybris/platform/cockpit/services/config/jaxb/.* - .*/virtualjdbc/vjdbc/.* - .*/jax-doclets/.* - - - - - - 1 - - - - - - 2 - - - - - - 1 - - - - - - 2 - - - - - - 2 - - - - - - 1 - - - - - - 2 - - - - - - 2 - - - - - - 2 - - - - - - 1 - - - - - - - 4 - - - - - - 4 - - - - - - 4 - - - - - - 4 - - - - - - 2 - - - - - - 2 - - - - - - 2 - - - - - - 2 - - - - - - 2 - - - - - - 2 - - - - - - 3 - - - - - - 2 - - - - - - 1 - - - - - - 1 - - - - - - 4 - - - - - - 3 - - - - - - 4 - - - - - - 1 - - - - - - 2 - - - - - - 1 - - - - - - 1 - - - - - - 1 - - - - - - 4 - - - - - - - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - - 5 - - - - - - 5 - - - - - - 4 - - - - - - - - - - 5 - - - - - - 5 - - - 5 - - - 5 - - - 5 - - - 5 - - - 5 - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - - - - - 4 - - - - - - - 4 - - - - - - - 2 - - - - - - 1 - - - - - - 5 - - - - - - - - 4 - - - - - - 4 - - - - - - 2 - - - - - - 5 - - - - - - - 2 - - - - - - 2 - - - - - - 4 - - - - - - 4 - - - - - - - - - - 5 - - - - - - 5 - - - - - - - 5 - - - - - - - - - - - 4 - - - - - - 5 - - - - - - 4 - - - - - - 4 - - - - - - - 5 - - - - - - 4 - - - - - - 4 - - - - - - - 4 - - - - - - 4 - - - - - - - 4 - - - - - - 5 - - - - - - 4 - - - - - - 4 - - - - - - - 1 - - - - - - 4 - - - - - - 3 - - - - - - 4 - - - - - - 2 - - - - - - 4 - - - - - - 2 - - - - - - 2 - - - - - - 2 - - - - - - 4 - - - - - - 2 - - - - - - 2 - - - - - - 4 - - - - - - - 4 - - - - - - 2 - - - - - - 2 - - - - - - 2 - - - - - - 4 - - - - - - 4 - - - - - - - 5 - - - - - - 3 - - - - - - 3 - - - - - - 4 - - - - - - 4 - - - - - - 1 - - - - - - 4 - - - - - - 4 - - - - - - - - - - - 1 - - - - - - 2 - - - - - - 1 - - - - - - 2 - - - - - - 1 - - - - - - 1 - - - - - - - - - - 2 - - - - - - 3 - - - - - - 3 - - - - - - 2 - - - 10 - - - - 10] -[not (//ClassOrInterfaceDeclaration[//ClassOrInterfaceType[typeof(@Image, 'junit.framework.TestCase','TestCase')] or //MarkerAnnotation/Name[typeof(@Image, 'org.junit.Test', 'Test')]])] - ]]> - - - - - - - 3 - - - - - - - - - - - - - - - - - - - - - - - 4 - - - - - - 3 - - - - - - 2 - - - - - - 4 - - - - - - 2 - - - - - - - 2 - - - - - - - 3 - - - - - - 5 - - - - - - - - - - 4 - - - - - - 1 - - - - - - - - - - 4 - - - - - - 2 - - - - - - 4 - - - - - - 4 - - - - - - - - - - 2 - - - - - - 2 - - - - - - 2 - - - - - - 2 - - - - - - - - - - - 2 - - - - - - 1 - - - - - - 4 - - - - - - 3 - - - - - - 2 - - - - - - - - - - 4 - - - - - - 2 - - - - - - 2 - - - - - - 2 - - - - - - 2 - - - - - - 1 - - - - - - 4 - - - - - $minimum and not(upper-case(@Image)=@Image)] - ]]> - - - - - - - 3 - - - - - - 1 - - - - - - 1 - - - - - - 1 - - - - - - 1 - - - - - - 3 - - - - - - 4 - - - - - - - - - - - 4 - - - - - - 2 - - - - - - 1 - - - - - - 4 - - - - - - - - - - 2 - - - - - - 1 - - - - - - - 2 - - - - - - 1 - - - - - - 2 - - - - - - 2 - - - - - - 1 - - - - - - 1 - - - - - - 4 - - - - - - - - - - 4 - - - - - - 4 - - - - - - 4 - - - - - - 4 - - - - - - 4 - - - - - - 1 - - - - - - 4 - - - - - - 4 - - - - - - 4 - - - - - - - - - - 2 - - - - - - - 1 - - - - - - - 4 - - - - - - - 2 - - - - - - 2 - - - - - - 2 - - - - - - 2 - - - - - - 1 - - - - - - 3 - - - - - - 1 - - - - - - 4 - - - - - - 3 - - - - - - - - - - 4 - - - - - - 4 - - - - - - - - - - 4 - - - - - - 4 - - - - - - - 3 - - - - - - - - - - 4 - - - - - - 3 - - - - - - 4 - - - - - - 4 - - - - - diff --git a/build.xml b/build.xml index 4470293..b2fbe5c 100644 --- a/build.xml +++ b/build.xml @@ -2,17 +2,13 @@ - @@ -39,8 +35,8 @@ *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING *** --> - - + + @@ -75,11 +71,19 @@ - + - + + + + + + + + + @@ -94,9 +98,18 @@ + + + + + + + + - + + @@ -131,13 +144,17 @@ - + + + + + - + - + - + diff --git a/extensioninfo.xml b/extensioninfo.xml index b71a6f5..9187271 100644 --- a/extensioninfo.xml +++ b/extensioninfo.xml @@ -10,7 +10,7 @@ Information and shall use it only in accordance with the terms of the license agreement you entered into with hybris. - + --> @@ -21,18 +21,18 @@ managersuperclass="de.hybris.platform.jalo.extension.Extension" description="Firefly Change Management" > - + - - + diff --git a/extensioninfo.xsd b/extensioninfo.xsd deleted file mode 100644 index e8d988c..0000000 --- a/extensioninfo.xsd +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - Configures the available modules of the extension. - - - - Configures the available modules of the extension. - - - - - - - - - - Configures the available modules of the extension. - - - - - Configures the set of extensions required by the extension at compile time. If you set 'autoload=true' in the localextensions.xml file, you will not need to reference any core extensions here. - - - - - Configures a core module for the extension. A core module consists of an items.xml file (and therefore allows to add new types to the system), a manager class, classes for the JaLo Layer and the ServiceLayer and JUnit test classes. The following directories are required: /src, /resources, /testsrc. - - - - - Configures a web module for the extension. Required directory: /web. - - - - - Configures an hMC module for the extension. Required directory: /hmc. - - - - - - - Name of the extension. Do not use special characters or spaces. - - - - - Prefix used for generated extension classes, such as the classes for Constants. Default is "[extensionname]". - - - - - Prefix for generated Java classes, such as the abstract classes for getter and setter methods. Default is "Generated". - - - - - Deprecated. Default is "false". - - - - - Class name of the manager class. Default is "[classprefix]Manager" - - - - - Class name of the manager's superclass. Default is de.hybris.platform.jalo.extension.Extension. - - - - - Short description of this extension. Is used by the hybris package manager. - - - - - - - Configures the set of extensions required by the extension at compile time. - - - - Name of an extension which is required at compile time. - - - - - Allowed range of versions of the required extension. Is used by the hybris package manager. - - - - - - - Configures a core module for the extension. A core module consists of an items.xml file (and therefore allows to add new types to the system), a manager class, classes for the JaLo Layer and the ServiceLayer and JUnit test classes. The following directories are required: /src, /resources, /testsrc. - - - - Deprecated. Not used anymore. - - - - - Package root where extension and item classes will be generated to. - - - - - Fully qualified Java class name of the extension's manager. - - - - - Deprecated. Has no effect and will be evaluated always to 'true' if a 'src' directory is available - - - - - If "true", item and extension classes will be generated. Only needed in case of "sourceavailable=true". Default is "false". - - - - - Deprecated. Will always be evaluated to 'true'. Generated item and extension classes will use java generics and annotations. - - - - - If "true", the generated item and extension classes will use the partOf handler, so partOf references will be removed if the holding item is removed. Default is "true". - - - - - - - Configures an hMC module for the extension. Required directory: /web. - - - - Webroot where the web application will be available at. - - - - - Deprecated. Not used anymore. - - - - - If "true", JSP files will be pre-compiled as part of the build process. If "false", JSP files will be compiled when first used by the application server. Default is "true". - - - - - Deprecated. Has no effect and will be evaluated always to 'true' if a 'web/src' directory is available - - - - - - - Configures an hmc module for the extension. Required directory: /hmc. - - - - Deprecated. Not used anymore. - - - - - Name of the extension's HMCExtension class. - - - - - Deprecated. Has no effect and will be evaluated always to 'true' if a 'hmc/src' directory is available - - - - - - - A class name including full package name. - - - - - diff --git a/hmc/resources/hmc.xsd b/hmc/resources/hmc.xsd deleted file mode 100644 index 3b277e3..0000000 --- a/hmc/resources/hmc.xsd +++ /dev/null @@ -1,2614 +0,0 @@ - - - - - - Generic editor configuration schema. - Copyright (c) 2000-2012 hybris AG. All rights reserved. - - - - - - - - - - Configuration to replace core classes with custom classes. - - - - - Configuration of the default attribute editor and display chips. - - - - - Configuration of global actions (create, save and toolbar actions). - - - - - Description of the hmc explorer tree (which nodes are shown etc.). - - - - - Description of a single type (appearance in the editor, in lists, etc.). - - - - - - - - - - - - - - - - - - - - Maps a hmc core class to a custom class which is to be used instead. - - - - - - - - - Source class name (fully qualified), i.e. the class which should be replaced. - - - - - Target class name (fully qualified), i.e. the class which is to be used instead of the source class. - - - - - - - - - - - Contains descriptions of default editor and/or display chips for a given attribute type. - - - - - - - - - - Configuration of the attribute display chip which is to use for the attributetype (specified in the classname attribute). - - - - - Configuration of the attribute editor chip which is to use for the attributetype (specified in the classname attribute). - - - - - - Class name (fully qualified) of the attribute type for which the default chips are configured. - - - - - - - - - Parameter which will be provided to the class. - - - - - - Class name (fully qualified) of the chip class this element describes. - - - - - - - - - - A parameter which will be given to the action class. - - - - - - - Class name (fully qualified) of the action class. - - - - - Name of the action. Will be used as a key to look up a localized string. - - - - - Tooltip for the action. Will be used as a key to look up a localized string. - - - - - The type of the action (toolbar, item, create, save, searchresult). - - - - - - This will create an action which will be placed in the toolbar. - - - - - This will create an action which will be placed in an item editor. - - - - - Create action. - - - - - Create action. - - - - - Save action. - - - - - Remove action. - - - - - This will create an action which will be placed in a search result section. - - - - - - - - The file name of an icon to use for this action (if applicable). - - - - - The file name of a disabled icon to use for this action (if applicable). - - - - - The file name of a toolbar icon to use for this action (if not specified the action will not be show with the toolbar). - - - - - If true a text will be shown next to the icon in the toolbar. Default is false. - - - - - Hide the Button in the Editor. Default is false. - - - - - - For item actions setting 'autosave' to true will enable the action even when - the item is not yet created. When pressing the action button the item will automatically be saved first. - Default is 'false'. - - - - - - The alignment of the action if it is a toolbar action (left, right) - default is left. - - - - - - This action will be shown on the left side of the toolbar. - - - - - This action will be shown on the right side of the toolbar. - - - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - - - Adds a group node to the explorer tree which in turn can contain other nodes. - - - - - Add a node to the explorer tree representing a type. - - - - - Can be used to add a jsp as a node (while not using a chip class or representing a type). - - - - - Adds a given chip class as a node which is not representing a type. - - - - - - Width of the explorer tree. - - - - - Number of columns shown in the icon tree view. - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - Add a node to the explorer tree representing a type. - - - - - Adds a group node to the explorer tree which in turn can contain other nodes. - - - - - Can be used to add a jsp as a node (while not using a chip class or representing a type). - - - - - Adds a given chip class as a node which is not representing a type. - - - - - - The name of the group node. This name will be used as a key to look up a localized string. - - - - - - A description for the group node (appears in the icon tree view). - It will be used as a key to look up a localized string. - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - If set to 'true' the node will be expanded after a hmc login. - - - - - The position of this group within the explorer tree. - - - - - - - - The code of the type. The appropriate type description is used to determine how the organizer is build. - - - - - - A description for the type reference node (appears in the icon tree view). - It will be used as a key to look up a localized string. - - - - - - The position of this node in the group. - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - The name of the node. This name will be used as a key to look up a localized string. - - - - - The URI of the jsp to be used. - - - - - The url of the icon to be used for the node. (Since 1.3.1) - - - - - - A description for this node (appears in the icon tree view). - It will be used as a key to look up a localized string. - - - - - - The position of this node in the group. - - - - - - - - The (fully qualified) name of the chip class to be used. - - - - - - A description for this node (appears in the icon tree view). - It will be used as a key to look up a localized string. - - - - - - The position of this node in the group. - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'replace'. - - - - - - - - - - - Contains descriptions on how the different organizer components represent this type. - - - - - Describes how items of this type look (by default) when they are referenced in a different location. - - - - - Contains labels. - - - - - - The code of the type which is described here. - - - - - Pathname of an icon which should be used for this type. - - - - - If useselector is set to true, attribute editors of this type will always show a select box to choose an item of this type. - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'replace'. - - - - - - - - - - Contains configurations of the organizer search section. - - - - - Contains configurations of the organizer result section. - - - - - Contains configurations of the organizer editor section. - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - - Describes a default condition which will be added to the search section. - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - Allows you to preset the search using the specified SavedQuery (using the SavedQuery's code/identifier). - Since 3.0 M1. - - - - - - - - - - Set the editor class to be used for this attribute. - - - - - - Name of the attribute for which this condition applies. - - - - - Operator to use in this condition. - - - - - - - - - - - - - - - - - - - - - - - - - - - - Comma-separated list of allowed operators for this condition. - If this attribute is omitted or empty then a default set of operators appropriate - for the condition's type is used. - Since: 3.1-u5. - - - - - - Default value for this condition's operand (only valid for text and numbers!). - - - - - Name of the enclosing item's attribute from which to get the default value. - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - The position of this condition within the search. - - - - - - - - - - Configuration of the organizer result section when in 'list view' mode. - - - - - Configuration of the organizer result section when in 'edit view' mode. - - - - - Configuration of the organizer result section when in 'tree view' mode. - - - - - Adds a searchresult action to the result section of this type. - - - - - - - Sets the default view mode (list, edit, tree) for the organizer result section. - If no default view is explicitly set, the list view will used. - - - - - - - - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - - Define which attributes of the type are shown in the result list (one attribute per column). - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - Configure how to display a list of attributes of a type. - - - - - - - Show the default representation of the current item in a list. - - - - - Configure how to display an attribute. - - - - - - - - - - - Width of the column in which the item representation appears. - - - - - title of the column in which the item representation appears. - - - - - - - - - - - Set the display class to be used for this attribute. - - - - - - - - - - - - Define which attributes of the type are shown in the result list (one attribute per column). - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - Configure how to edit a list of attributes of a type. - - - - - - - Show the default representation of the current item in a list. - - - - - Configure how to edit an attribute. - - - - - - - - - - - - - - Set the editor class to be used for this attribute. - - - - - - - - - - - - Define which attributes of the type are shown in the result tree (attributes are seperated by hyphens). - - - - - Define which attributes are explorable, i.e. which attributes are shown and explorable below the item nodes. - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - - Attribute which should be explorable, i.e. which will be shown below an item node in the tree view result list. - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - - - If set to 'true' the appropriate attribute itself will not appear as a node, - but all its explorable subnodes will be shown directly (i.e. one node level will be skipped). - - - - - - - - - - - - - - Contains the attributes which should be excluded (omitted) in the editor of this type. - Be sure you don't explicitly add these attributes in any of the other sections! - - - - - - - Contains the attributes which are 'essential' for this type. - These attributes will be shown on top of every tab in the editor. - - - - - - - Describes one tab of the editor, which in turn contains sections and attributes. - - - - - - Describes a custom tab of the editor which is not using the generic editor approach, but - which design is totally controllable by the developer. - - - - - - Using this tag you can re-use other tab definitions (referencing by their id). - - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - If set to 'true' the editor will include wizard-like 'next' and 'previous' buttons to switch between - the different tabs. - - - - - - - - - - - Attribute which should be excluded from this editor. - Thus you are able to exclude single attributes completely from an editor if you do not configure it anywhere else. - - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - - Configure the layout of the type's attributes using a table layout. This layout mimics - the html table element, so you can use a few well known features of that element. - - - - - - Configure the layout of the type's attributes using a list layout. - - - - - - Configure the layout of the type's attributes using a column layout. - A column layout is just a convenient way to configure a table with only two columns. - So each row inside a columnlayout may only contain up to 2 elements. - - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - - - Describes one row of an editor table (works just like the html tr element). - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - - - - - Describes the content of one table cell of an editor table (works just like the html td element). - - - - - - - - - - - - - - Describes an attribute editor. - - - - - Describes a custom attribute editor chip. - - - - - - Configures a custom attribute editor which is not necessarily an attribute chip - This way you could provide you own class (with own parameters) and/or your own jsp. - - - - - - Describes a (nested) table layout of the type's attributes. - - - - - Describes a (nested) list layout of the type's attributes. - - - - - - Adds a so called inlineshortcut. This is a (short) result list of a search for this item (or one - of its attributes) within other types/items. - - - - - - - A so called shortcut (a button) to the search or creation of other items which contain - this item or one of its attributes. - - - - - - Adds an item action to this type's editor. - - - - - Describes an attribute editor. - - - - - - Just like in an html table this configures the column spanning of a td element. - - - - - Just like in an html table this configures the row spanning of a td element. - - - - - - - - - - - - Editor using the default layout for the data type of the attribute - - - - - Editor using the default layout for the data type of the attribute - - - - - Default editor for string values - - - - - Default editor for string values in select box - - - - - Editor providing an enhanced text area and a simple input field view for string values - - - - - Editor providing an wysiwyg text area for string values containing html elements - - - - - Default editor for integer values - - - - - Default editor for short values - - - - - Default editor for byte values - - - - - Default editor for long values - - - - - Default editor for double values - - - - - Default editor for float values - - - - - Default editor for character values - - - - - Default editor for boolean values - - - - - @since 2.00 Advanced editor for boolean values - - - - - Default editor for date values. - - - - - Editor providing a time and a date input field. - - - - - Default editor for date values based on a long. - - - - - Editor providing a time and a date input field based on a long. - - - - - Editor for java class values. - - - - - Editor for enumeration values as dropdown. - - - - - Editor providing editing for references - - - - - Editor providing editing for references to one item of a part-of relation - - - - - Editor providing editing for collection of references - - - - - Editor for reference collections, allows selection of one or more items. - - - - - Editor providing editing for collection of atomic types - - - - - Editor providing a list of subtypes. - - - - - Editor providing editing for special attributes or other special situations - - - - - Editor providing preview of media items - - - - - Editor providing preview of media items - - - - - Editor providing preview of media items - - - - - Editor providing map editing. - - - - - - - If you need a special creator or wizard for this attribute you can specify it here. - - - - - - - Name (qualifier) of the type's attribute. - - - - - Width of the attribute editor. - - - - - Width of the attribute label - - - - - With maxlength you can restrict the entry length in some text editors (e.g. in stringeditor and textareaeditor) - - - - - If 'true' the label of the attribute will not be shown. - - - - - If 'false' the attribute editor will not be editable despite of any restrictions or other settings, so it works independently from the access rights and the 'writable' state of the attribute itself. - If 'true' (default) nothing will happen. The purpose of this tag is: even if the user has the right to edit the respective attribute and the attribute is writable, he may want to provide a non-editable editor in the hmc. To configure this, you can set the 'editable tag' to 'false'. - - - - - Name of description attribute. - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - The position of this attribute within the editor. - - - - - - - - - A parameter which will be given to the custom chip class. - - - - - - Name (qualifier) of the type's attribute. - - - - - - - - - - - If 'true' the date and time editor will be shown one below the other rather - than next to each other. - - - - - - - DEPRECATED! The width of the time editor field will be calculated - based on the width of the whole datetime editor! - - - - - - - - - - - - - - - Set this to refine the search conditions which will be used when opening - the search for an item which this attribute references. - - - - - - Sets a preset for creating new items using the 'create' button of this list. - - - - - - - If 'true' the image which is represented by the media item will not be shown. - Instead there will only be a text link (consisting of the media's code) to open the media item in its editor. - - - - - - - - - - - - - - The type of this attribute. Must be a subtype of the ComposedType 'Media'. - - - - - - - - - - - - - - The type of this attribute. Must be a subtype of the ComposedType 'Media'. - - - - - - - - - - - - - - Configuration of the attribute editor chip which is to use for the key editor (specified in the classname attribute). - - - - - Configuration of the attribute editor chip which is to use for the value editor (specified in the classname attribute). - - - - - - - If 'true' (default) the 'add' icon will be enabled (if the attribute is editable). - If 'false' the icon will be disabled. - - - - - - - If 'true' (default) the 'delete' icon will be enabled (if the attribute is editable). - If 'false' the icon will be disabled. - - - - - - - Using this attribute you can specify the width of the key editor and thus - overrule the standard behaviour which gives both editors the same width. - The overall width of the map editor will still be set via the width attribute - of the 'attribute' tag. - - - - - - - Using this attribute you can specify the name of the key column. - The name will be used to look up a localized string. - - - - - - - Using this attribute you can specify the name of the value column. - The name will be used to look up a localized string. - - - - - - - - - - - - - The (fully qualified) class name of the custom editor chip. - - - - - - - - - - - - Setting this to 'true' will result in a password editor field. - - - - - - - - - - - - - If 'true' this editor will present a dropdown list to choose a number between min and max value. - - - - - - The minimum value allowed in the editor. - - - - - The maximum value allowed in the editor. - - - - - The default value allowed in the editor. - - - - - - - - - - - - - If 'true' the entries of the selecteditor are used as keys to look up localized strings. - - - - - - - If 'true' the 'open type' icon will be shown. Default is 'false'. - Since 2.20 SP1. - - - - - - - Specifies the localization key whose value will be displayed as null value (no selection) - - - - - - - - - - - - - - - Set this to refine the search conditions which will be used when opening - the search for an item which this attribute references. - - - - - - Sets a preset for creating new items using the 'create' button of this list. - - - - - - - Set this to refine the searchtype which will be used when opening - the search for an item which this attribute references. - - - - - - - If 'true' the search will be immediately performed when the search icon is clicked - and the result will show up (instead of requiring another 'search button' to be clicked). - - - - - - - If 'true' the editor will take the form of an autocomplete component (using ajax requests to show a list of possible hits after the user made an entry). - - - - - - - Specifies the localization key whose value will be displayed as null value (no selection) - - - - - - - - - - - - - The name of the attribute from which to obtain the reference list. - - - - - - - - - - - - The name of the type for which to show all its sub types to choose from. - - - - - - - - - - - - The (fully qualified) name of the class representing the editor. - - - - - A parameter which can be provided to the editor class. - - - - - - - - - - - - Number of rows to use for the textarea. - - - - - Number of columns to use for the textarea. - - - - - If 'true' the textarea will be expanded by default. - - - - - - If 'true' the entries in the textarea will be wrapped at the end of each line. - - - - - - - - - - - - - - Defines the name of the 'true' value. - - - - - - - Defines the name of the 'false' value. - - - - - - - Defines the name of the 'null' value. - - - - - - - If 'true' the options are one below the other. - - - - - - - - - - - - - - WYSIWYG editor configuration string. The specified value will be inserted (as is) into the argument list of the tinyMCE.init function. - Please copy, paste and edit the provided example below. - EXAMPLE: - theme : 'advanced', - convert_urls : false, - plugins : 'table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,searchreplace,print,contextmenu,hybris,safari,charcount', - theme_advanced_buttons1_add : 'fontselect,fontsizeselect', - theme_advanced_buttons2_add : 'separator,insertdate,inserttime,separator,forecolor,backcolor', - theme_advanced_buttons2_add_before: 'cut,copy,paste,separator,search,replace,separator', - theme_advanced_buttons3_add_before : 'tablecontrols,separator', - theme_advanced_buttons3_add : 'emotions,iespell,advhr,separator,medialink,anyitemlink,preview,charcount', - theme_advanced_toolbar_location : 'top', - theme_advanced_toolbar_align : 'left', - plugin_insertdate_dateFormat : '%Y-%m-%d', - plugin_insertdate_timeFormat : '%H:%M:%S', - valid_elements: '+a[id|style|rel|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong[class|style],-b[class|style],-em[class|style],-i[class|style],-strike[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|style],-ul[class|style],-li[class|style],br,img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align],-sub[style|class],-sup[style|class],-blockquote[dir|style],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],-td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[style|class|align],-pre[class|align|style],address[class|align|style],-h1[id|style|dir|class|align],-h2[id|style|dir|class|align],-h3[id|style|dir|class|align],-h4[id|style|dir|class|align],-h5[id|style|dir|class|align],-h6[id|style|dir|class|align],hr[class|style],-font[face|size|style|id|class|dir|color],dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang]', - extended_valid_elements : 'a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style],style[*]', - - - - - - - Name of the css file which should be used for this editor. - - - - - - - - - - - - - - Configuration of the attribute editor chip which is to use for the elements of the collection (specified in the classname attribute). - - - - - - If 'true' the list will contain the appropriate buttons to resort the list. - - - - - - If 'true' the list will contain the appropriate buttons to add and remove entries to/from the list. - - - - - - - Using this attribute you can specify the title of the list. - The title attribute will be used to look up a localized string. - - - - - - - If 'true' (default) the list's entries will be editable (after they have been created). - - - - - - - - - - - - - - - Set this to refine the search conditions which will be used when opening - the search for an item which this attribute references. - - - - - - Sets a preset for creating new items using the 'create' button of this list. - - - - - Configures the attribute display chips to be shown in the list when the list is not editable. - - - - - Configures the attribute editor chips to be shown in the list when the list is editable. - - - - - - - Set this to refine the searchtype which will be used when opening - the search for an item which this attribute references. - - - - - - - If 'true' the search will be immediately performed when the search icon is clicked - and the result will show up (instead of requiring another 'search button' to be clicked). - - - - - - If 'true' the list will contain the appropriate buttons to resort the list. - - - - - - DEPRECATED! Please use 'add' and 'remove' instead! - - - - - - - If 'true' the list will contain the appropriate buttons to add entries to the list. - - - - - - - If 'true' the list will contain the appropriate buttons to remove entries from the list. - - - - - - - If 'true' the list will contain the appropriate button to create entries for the list. - - - - - - - If set to 'false' there will be no new editor window if you click on the create button. - This will only take effect if 'editable' is also set to true! - Instead the new item will be created within the editor as a new, empty entry. - Note that if there are attributes that are non optional and that are not shown in the list editor - the create process will fail! Also if 'externalcreate' is false, the current list element type will - be used for the new item. You will not be able to create a subtype instead! - Default is 'true' (clicking the create button will result in a new editor window). - - - - - - - If set to 'false' there will be no subtype select window if you click on the create button. - Instead the lists element type will be automatically used to create a new item. - Default is 'true' (you can select subtypes if there are any). - - - - - - - Sets the name of the attribute which should be filled with the source item when adding (=creating) a new entry. - - - - - - Sets the maximum number of entries which should be visible in the list. - - - - - - Setting 'autosave' to true will enable the add and/or create buttons even when - the item is not yet created (provided 'add' or 'create' are allowed at all by setting the - appropriate attributes). When pressing the add or create button the item will automatically be saved first. - Default is 'true'. - - - - - - - Setting 'editable' to true will make the list's elements editable, i.e. it will behave similar to - the searchresult list when using its edit view. Default is 'false'. - - - - - - - When using 'typeattribute' you provide the name of an attribute in which a ComposedType - is found that will be used as type of this list's elements (items). - - - - - - - Setting 'showsearcheditor' to 'true' will show an autocomplete editor at bottom of the list. With that editor - you can search for an existing item which will be added to the list automatically when selected. - Default is false. - - - - - - - Setting 'prohibitopening' to 'true' will cause the list editor to not allow you to open any of the - list's entries. I.e. you cannot open an entry by either double-clicking on it or clicking on - the entry's icon. And you can not select any entry and use the context menu to open the entries. - In most cases this option is most useful to prohibit users to change any items unintentionally - or to get them confused by all the possibilities (context menus, opening additional editors etc.). - The best example would be a wizard in which a reference collection editor is shown (e.g. to just - select some items). In such a case you often wouldn't want the user to open a single item from within - the editor. - Default is false. - - - - - - - - - - - - - - This is the vertical size (= number of visible rows) of the selectbox. - - - - - - - The name of an attribute in the current enclosing item containing a collection of items to use for this selection editor. - - - - - - - - - - - - - The (fully qualified) class name of the custom attribute editor chip. - - - - - - - - - - The name of the text chip which will be used as key to find the text in the localization properties. - - - - - Width of the text chip. - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - The position of this text within the columlayout. - - - - - - - - - - - A parameter which will be given to the custom chip class. - - - - - - The (fully qualified) class name of the custom chip. - - - - - - The file name of a jsp that is used to render this chip (this allows you to use - different jsp's to provide different views for the same chip class). - - - - - - - - - The name of the parameter's key. - - - - - The parameter's (string) value. - - - - - - - - - A label! - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - A parameter which will be accessible to the label chip. - - - - - - The name of the label. - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - The (fully qualified) name of the special creator class. - - - - - - - - - Adds a section to the tab. - - - - - - Adds a default section to the tab. 'Default' means that every attribute which is not explicitly - described elsewhere in this editor will be displayed in this section. - - - - - - - The name of this tab. The name will be used as a key to look up a localized string. - - - - - - Assigns an ID to this tab. This is necessary if you want to re-use this tab in other - editors using the 'tabref' element. - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - The position of this tab within the editor. - - - - - - - - - - Configure the layout of the type's attributes using a table layout. This layout mimics - the html table element, so you can use a few well known features of that element. - - - - - - Configure the layout of the type's attributes using a list layout. - - - - - - Configure the layout of the type's attributes using a column layout. - A column layout is just a convenient way to configure a table with only two columns. - So each row inside a columnlayout may only contain up to 2 elements. - - - - - - - The name of the section which will be used as a key to look up a localized string. - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - The position of this section within the tab. - - - - - - - - - - Attribute which should be excluded from this default section. - Thus you are able to exclude single attributes completely from an editor if you do not configure it anywhere else. - - - - - - - The name of the default section which will be used as a key to look up a localized string. - - - - - - If 'true' this section should be preferred over possible other default - sections within this editor. - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - - The (fully qualified) name of the custom tab class. - - - - - - - - - - The id of the tab which should be used here. - - - - - - - - - - - Describes an attribute editor. - - - - - Describes a custom attribute editor chip. - - - - - - Configures a custom attribute editor which is not necessarily an attribute chip - This way you could provide you own class (with own parameters) and/or your own jsp. - - - - - - Describes a (nested) table layout of the type's attributes. - - - - - Describes a (nested) list layout of the type's attributes. - - - - - - Adds a so called inlineshortcut. This is a (short) result list of a search for this item (or one - of its attributes) within other types/items. - - - - - - - A so called shortcut (a button) to the search or creation of other items which contain - this item or one of its attributes. - - - - - - Adds an item action to this type's editor. - - - - - Describes an attribute editor. - - - - - - Just like in an html table this configures the column spanning of a td element. - - - - - Just like in an html table this configures the row spanning of a td element. - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - - - - - Describes one row of a columnlayout. A row can contain up to 2 elements (a columnlayout is a table containing only 2 columns). - - - - - - Explicitly set the width of the left column. - - - - - Explicitly set the width of the right column. - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - - - - - Describes an attribute editor. - - - - - Describes a custom attribute editor chip. - - - - - - Configures a custom attribute editor which is not necessarily an attribute chip - This way you could provide you own class (with own parameters) and/or your own jsp. - - - - - - - Adds a so called inlineshortcut. This is a (short) result list of a search for this item (or one - of its attributes) within other types/items. - - - - - - - A so called shortcut (a button) to the search or creation of other items which contain - this item or one of its attributes. - - - - - - Adds an item action to this type's editor. - - - - - Describes an attribute editor. - - - - - Describes a void element. - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - The position of this row within the columlayout. - - - - - - - - - - - - - - Lists a number of attributes which are shown when items of - this type are referenced in other editors etc. - - - - - - - Defines which attribute is used for reference searches (e.g. in the smartreferenceeditor). - - - - - - Defines which attribute is used to sort search results - (if you sort by the row containing an attribute of the enclosing type). - Since 3.1-u3. - - - - - - - If 'true' empty attributes will be shown in the reference (e.g. like 'xyz - empty - 123') - instead of simply obmitting the appropriate attribute. - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - Specifies the localization key whose value will be displayed as null value (no selection) if 'useselector' option is used for type. - - - - - - - - - - Describes one attribute in this list. - - - - - - - - - - - - - Fallback attribute used if attribute value is 'null' - - - - - - - - - - - Set some presets for the search which is triggered by the shortcut. - - - - - You can provide a custom comparator class to affect result list sorting. - - - - - You can provide a custom restrictor class to affect the result list's content. - - - - - You can provide a custom restrictor class to affect the result list's content. - - - - - - Sets the function of this shortcut (finder, creator, special). - - - - - - The shortcut will trigger a search. - - - - - The shortcut will trigger the creation of a new item. - - - - - The shortcut will trigger some custom operation. - - - - - The shortcut will mimic a url link with the given parameters (key/value pairs). - - - - - - - - The type which should be searched/created. - - - - - - The attribute which contains a collection of valid types which may be created using this shortcut. - This way you can restrict the possible (sub)types to be created. - - - - - - - The name of the shortcut. Will be used as a key to look up a localized string - which in turn will be used as the shortcut's label. - - - - - - - The icon url to use in the button of the shortcut. Is currently only used for shortcuts of type "link". - ("creator" and "finder" use standard icons and the "special" shortcut gets the icon url from the given - class). - - - - - - - If 'true' the search will be immediately performed when the shortcut is clicked - and the result will show up (instead of requiring another 'search button' to be clicked). - - - - - - The (fully qualified) name of the class to be used if this is a 'special' shorcut. - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - Sets the targetattribute, meaning the attribute of the type to search for. - - - - - - Sets the sourceattribute, meaning the attribute of the source type where the search is started - and which should match the content of the targetattribute. - - - - - - - - - The (fully qualified) name of the comparator class. - - - - - - - - - Sets a preset for the search which is done by the shortcut. - - - - - Configures the attributes (columns) of the list. - - - - - - Sets a name for the inlineshortcut. Will be used as a key to lookup a localized label. Default is "". - - - - - The type of the items to search for. Default is Item. - - - - - The maximum number of items to be shown. Default is 5. - - - - - Width of the inlineshortcut list. - - - - - Width of the attribute label - - - - - If 'true' the label of the attribute will not be shown. Default is false. - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - Mode can be one of 'append', 'replace' or 'delete'. Default is 'append'. - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/project.properties b/project.properties index e0c8bf4..234ca85 100644 --- a/project.properties +++ b/project.properties @@ -1,21 +1,21 @@ -# ----------------------------------------------------------------------- -# [y] hybris Platform -# -# Copyright (c) 2000-2012 hybris AG -# All rights reserved. -# -# This software is the confidential and proprietary information of hybris -# ("Confidential Information"). You shall not disclose such Confidential -# Information and shall use it only in accordance with the terms of the -# license agreement you entered into with hybris. -# -# -# ----------------------------------------------------------------------- - -# you can put key/value pairs here. -# Use Config.getParameter(..) to retrieve the values during runtime. - -firefly.key=value - -# Specifies the location of the spring context file putted automatically to the global platform application context. +# ----------------------------------------------------------------------- +# [y] hybris Platform +# +# Copyright (c) 2000-2012 hybris AG +# All rights reserved. +# +# This software is the confidential and proprietary information of hybris +# ("Confidential Information"). You shall not disclose such Confidential +# Information and shall use it only in accordance with the terms of the +# license agreement you entered into with hybris. +# +# +# ----------------------------------------------------------------------- + +# you can put key/value pairs here. +# Use Config.getParameter(..) to retrieve the values during runtime. + +firefly.key=value + +# Specifies the location of the spring context file putted automatically to the global platform application context. firefly.application-context=firefly-spring.xml \ No newline at end of file diff --git a/resources/firefly-spring.xml b/resources/firefly-spring.xml index 7bf6183..962bc82 100644 --- a/resources/firefly-spring.xml +++ b/resources/firefly-spring.xml @@ -1,9 +1,9 @@ - - - - + + + + diff --git a/resources/items.xsd b/resources/items.xsd deleted file mode 100644 index 9d6df7c..0000000 --- a/resources/items.xsd +++ /dev/null @@ -1,1044 +0,0 @@ - - - - - - - - - - - - - - An AtomicType represents a simple java object. (The name 'atomic' just means 'non-composed' objects.) - - - - Corresponding Java class in the hybris Suite; will also be used as the code of the atomic type. - - - - - If 'true', the AtomicType will be created during initialization. - - - - - Deprecated. Has no effect for atomic types. Default is 'true'. - - - - - Defines the class which will be extended. Default is 'java.lang.Object'. - - - - - - - - Defines a list of atomic types. - - - - - - An AtomicType represents a simple java object. (The name 'atomic' just means 'non-composed' objects.) - - - - - - - - A CollectionType defines a collection of typed elements. Attention: If using a collection type for persistent attributes (not jalo) you can not search on that attribute and you are limited in size of collection. Consider to use a relation instead. - - - - The code (that is, qualifier) of the CollectionType. - - - - - The type of elements of this CollectionType. - - - - - If 'true', the CollectionType will be created during initialization. - - - - - Deprecated. Has no effect for collection types. Default is 'true'. - - - - - Configures the type of this collection: 'set', 'list', 'collection'. The getter / setter methods will use corresponding Java collection interfaces. Default is 'collection'. - - - - - - A collection that contains no duplicate elements. - - - - - An ordered collection. - - - - - A collection. - - - - - - - - - - Defines a list of collection types. - - - - - - A CollectionType defines a collection of typed elements. - - - - - - - - A deployment defines how a (generic) item or relation is mapped onto the database. - - - - The mapped database table. Must be globally unique. - - - - - The mapped item type code. Must be globally unique - - - - - The mapped dump property database table to be used for this item. Default is 'props'. - - - - - - - - A RelationType defines a n-m or 1-n relation between types. - - - - - Provides possibility to add meaningfull description phrase for a generated model class. - - - - - Configures deployment information for this relation (table name and typecode). - - - - - Configures the generated attribute at source relation end - - - - - Configures the generated attribute at target relation end - - - - - - The typecode. - - - - - A localized n-m relation can have a link between two items for each language. - - - - - Deprecated, please use separate deployment sub tag. All instances of this type will be stored in a separated database table. The value of this attribute represents a reference to the specified deployment in the corresponding 'advanced-deployment.xml'. Default is empty. - - - - - If 'true', the item will be created during initialization. - - - - - Deprecated. Will have no effect for relations. - - - - - - - - Defines a list of relation types. - - - - - - A RelationType defines a n-m or 1-n relation between types. - - - - - - - - Configures the generated attribute at one relation end. - - - - - Documents this relation attribute. Will be cited at javadoc of generated getters/setters. - - - - - Defines properties for the attribute. - - - - - Allows to configure model generation for this relation attribute used at servicelayer. - - - - - Allows to configure custom properties for the relation attribute. - - - - - - Type of attribute which will be generated at type configured for opposite relation end. - - - - - Qualifier of attribute which will be generated at type configured for opposite relation end. If navigable is not set to false the qualifier is mandatory. Default is empty. - - - - - The (meta)type which describes the attributes type. Must be type extending RelationDescriptor. Default is 'RelationDescriptor'. - - - - - The cardinality of this relation end. Choose 'one' for 'one' part of a 1:n relation or 'many' when part of a n:m relation. A 1:1 relation is not supported. Default is 'many'. - - - - - - The element is the 'one' part of a 1:n relation - - - - - The element is part of a n:m relation - - - - - - - - Is the relation navigable from this side. Can only be disabled for one side of many to many relation. If disabled, no qualifier as well as modifiers can be defined. Default is 'true'. - - - - - Configures the type of this collection if element has cardinality 'many'. Related attribute getter / setter will use corresponding java collection interfaces. Default is 'Collection'. - - - - - - A collection that contains no duplicate elements. - - - - - An ordered collection. - - - - - A collection. - - - - - - - - If 'true' an additional ordering attribute will be generated for maintaining ordering. Default is 'false'. - - - - - - - An EnumerationType defines fixed value types. (The typesystem provides item enumeration only) - - - - - Provides possibility to add meaningfull description phrase for a generated model class. - - - - - Configures one value of this Enumeration. - - - - - - The unique code of this Enumeration. - - - - - If 'true', the item will be created during initialization. - - - - - If 'false' no constants will be generated at constant class of extension as well as at corresponding servicelayer enum class. Default is 'true'. - - - - - Specifies the name of the associated jalo class. The specified class must extend de.hybris.platform.jalo.enumeration.EnumerationValue and will not be generated. By specifying a jalo class you can change the implementation to use for the values of this enumeration. By default EnumerationValue class is used. - - - - - Whether it is possible to add new values by runtime. Also results in different types of enums: 'true' results in 'classic' hybris enums, 'false' results in Java enums. Default is false. Both kinds of enums are API compatible, and switching between enum types is possible by running a system update. - - - - - - - Defines a list of enumeration types. - - - - - - An EnumerationType defines fixed value types. (The typesystem provides item enumeration only) - - - - - - - - Configures a database index for enclosing type. - - - - - Configures a single index key. - - - - - - The name prefix of the index. - - - - - If 'true' this index will be ommitted while in initialization process even if there were precendent declarations.This attribute has effect only if replace = true. - - - - - If 'true' this index is a replacement/redeclaration for already existing index. - - - - - If 'true', the value of this attribute has to be unique within all instances of this index. Attributes with persistence type set to 'jalo' can not be unique. Default is 'false'. - - - - - - - Configures a single index key. - - - - Type attribute to be indexed. - - - - - Elements will be indexed case-insensitive. Default is 'false'. - - - - - - - Defines an attribute of a type. - - - - - Configures a default value for this attribute used if no value is provided. The default value is calculated by initialization and will not be re-calculated by runtime. - - - - - Gives a description for this attribute only used for the javadoc of generated attribute methods. - - - - - Defines how the values of the attribute will be stored. Possible values: 'cmp' (deprecated), 'jalo' (not persistent, deprecated), 'property' (persistent), 'dynamic' (not persisted). - - - - - Configures advanced settings for this attribute definition. - - - - - Allows to configure custom properties for this attribute. - - - - - Allows to configure model generation settings for this attribute. Models are used by the hybris ServiceLayer. - - - - - - Lets you re-define the attribute definition from an inherited type. In essence, you can use a different type of attribute as well as different modifier combinations than on the supertype. Default is 'false'. - - - - - Qualifier of this attribute. Attribute qualifiers must be unique across a single type. - - - - - The type of the attribute, such as 'Product', 'int' or 'java.lang.String'. Primitive java types will be mapped to the corresponding atomic type. For example: 'int' will be mapped to the atomic type 'java.lang.Integer' with implicit default value. - - - - - Advanced setting. Specifies the metatype for the attributes definition. Must be a type extending AttributeDescriptor. Default is 'AttributeDescriptor'. - - - - - If 'true', the attribute descriptor will be created during initialization. Default is 'true'. - - - - - If 'true', getter and setter methods for this attribute will be generated during a hybris Suite build. Default is 'true'. - - - - - References an attribute of the same type. Only values of the referenced attribute can be selected as values for this attribute. Typical example: the default delivery address of a customer must be one of the addresses set for the customer. Default is 'false'. - - - - - - - Allows to configure model generation for this attribute used at servicelayer. - - - - - - Allows to configure alternative getter methods at generated model. - - - - - - - Allows to configure alternative setter methods at generated model. - - - - - - - Whether getter and setter methods for the model representation of the attribute will be generated. Default is 'true'. - - - - - - - Allows to configure model generation for this item used at servicelayer. - - - - - - Allows to configure model constructor signatures. - - - - - - - Whether a model for the type and models for subtypes will be generated. Default is 'true'. - - - - - - - Allows to configure model constructor signatures. - - - - Add here, as comma separated list, the attribute qualifiers for the constructor signature in the model. - - - - - - - Allows to configure alternative methods at generated model. - - - - - Name of the alternative getter method. - - - - - - - Will the method be marked deprecated? Default is - false. - - - - - - Will this method be the default method and replace the original one instead of adding it additional? Default is false. - - - - - - - Defines custom properties. - - - - - Defines a custom property. - - - - - - - - Defines a custom property. - - - - - The value of the custom property. - - - - - - The name of the custom property. - - - - - - - Configures a list of attributes. - - - - - Defines a single attribute. - - - - - - - - Configures a list of indexes. - - - - - Configures a single index. - - - - - - - - Specifies a specific ComposedType. - - - - - Provides possibility to add meaningfull description phrase for a generated model class. - - - - - A deployment defines how a (generic) item or relation is mapped onto the database. - - - - - Defines a list of custom properties for this type. - - - - - Defines the list of item attributes. - - - - - Defines the database indexes for this type. - - - - - Allows to configure model generation for this item used at servicelayer. - - - - - - The unique code of this type. - - - - - Defines the class, which will be extended. Default is 'GenericItem'. - - - - - Specifies the name of the associated jalo class. Default is [extension-root-package].jalo.[type-code] which will be generated if not existent. - - - - - Deprecated, please use separate deployment sub tag. All instances of this type will be stored in a separated database table. The value of this attribute represents a reference to the specified deployment in the corresponding 'advanced-deployment.xml'. Default is empty. - - - - - If 'true', type gets marked as singleton which will be evaluated by some modules like hmc or impex, with that allowing only one instance per system. Default is 'false'. - - - - - DEPRECATED. Use 'implements JaloOnlyItem' in your bean. If 'true', the item will only exists in the jalo layer and isn't backed by an entity bean. Default is 'false'. - - - - - If 'true', the item will be created during initialization. Default is 'true'. - - - - - If 'true', the sourcecode for this item will be created. Default is 'true'. - - - - - Marks type and jalo class as abstract. If 'true', the type can not be instantiated. Default is 'false'. - - - - - The (meta)type which describes the assigned type. Must be a type extensing ComposedType. Default is 'ComposedType'. - - - - - - - Defines a grouping of item types. - - - - - Specifies a specific ComposedType. - - - - - Specifies a group of ComposedTypes to allow better structuring within the items.xml file. - - - - - - - - - - Specifies a specific ComposedType. - - - - - - Defines the name of this group. Only for structural purpose, will have no effect on runtime. Default is empty. - - - - - - - Defines the types of your extension. - - - - - - Defines the list of AtomicType's for your extension. - - - - - Defines the list of CollectionType's for your extension. - - - - - Defines the list of EnumerationType's for your extension. - - - - - Defines the list of MapType's for your extension. - - - - - Defines the list of RelationType's for your extension. - - - - - Defines the list of ComposedType's for your extension. - - - - - - - - - Like the java collection framework, a type, which defines map objects. Attention: When used as type for an attribute, the attribute will not be searchable and the access performance is not effective. Consider to use a relation. - - - - The unique code of the map. - - - - - The type of the key attributes. - - - - - The type of the value attributes. - - - - - If 'true', the item will be created during initialization. Default is 'true'. - - - - - Deprecated. Has no effect for map types. Default is 'true'. - - - - - Deprecated. Has no effect for map types. Default is 'false'. - - - - - - - Specifies a list of map types. - - - - - Like the java collection framework, a type, which defines map objects. Attention: When used as type for an attribute, the attribute will not be searchable and the access performance is not effective. Consider to use a relation. - - - - - - - - Specifies further properties of an attribute which can be redeclared at other extensions. - - - - Defines if this attribute is readable (that is, if a getter method will be generated). Default is 'true'. The visibility of the getter depends on the value of the private attribute. - - - - - Defines if this attribute is writable (that is, if a setter method will be generated). Default is 'true'. The visibility of the setter depends on the value of the private attribute. - - - - - Defines if this attribute is searchable by a FlexibleSearch. Default is 'true'. Attributes with persistence type set to 'jalo' can not be searchable. - - - - - Defines if this attribute is mandatory or optional. Default is 'true' for optional. Set to 'false' for mandatory. - - - - - Defines the Java visibility of the generated getter and setter methods for this attribute. If 'true', the visibility modifier of generated methods is set to 'protected'; if 'false', the visibility modifier is 'public'. Default is 'false' for 'public' generated methods. Also, you will have no generated methods in the ServiceLayer if 'true'. - - - - - If 'true', the attribute will only be writable during the item creation. Setting this to 'true' is only useful in combination with write='false'. Default is 'false'. - - - - - Defines if this attribute is removable. Default is 'true'. - - - - - Defines if the assigned attribute value only belongs to the current instance of this type. Default is 'false'. - - - - - If 'true', the value of this attribute has to be unique within all instances of this type. If there are multiple attributes marked as unique, then their combined values must be unique. Will not be evaluated at jalo layer, if you want to manage the attribute directly using jalo layer you have to ensure uniqueness manually. Default is 'false'. - - - - - If 'true' the attribute value will be stored in the 'global' property table, otherwise a separate column (inside the table of the associated type)will be created for storing its values. Default is 'false'. - - - - - If 'true', the attribute value will be stored in an encrypted way. Default is 'false'. - - - - - - - Defines how the values of the attribute will be stored. Possible values: 'cmp' (deprecated), 'jalo' (not persistent), and 'property' (persistent). - - - - - Configures a persistence definition for a specific database used at create statement. - - - - - - Defines how the values of the attribute will be stored. Possible values: 'cmp' (deprecated), 'jalo' (not persistent, deprecated), 'property' (persistent), 'dynamic' (not persisted). - - - - - - Attribte will be stored persistent. - - - - - Attribte will be stored non-persistent (deprecated, please use dynamic instead). - - - - - Deprecated. - - - - - Defines that attribute dynamic. - - - - - - - - Deprecated. Only usable in relation with 'cmp' and 'property'(compatibility reasons) persistence type. Default is empty. - - - - - Spring bean id that handles dynamic attributes implementation. - - - - - - - Configures a persistence definition for a specific database. - - - - - The attribute type used in the create statement of the database table, such as 'varchar2(4000)'. - - - - - - - - - The database the given definition will be used for. One of 'oracle', 'mysql', 'sqlserver' or 'hsql'. Default is empty which configures fallback for non specified databases. - - - - - - - Defines a default value text. - - - - - - - Configures a single element. - - - - The unique code of this element. - - - - - - - Configures a single enum value. - - - - - Provides possibility to add meaningfull description phrase for a generated model class. - - - - - - The unique code of this element. - - - - - - - Configures the code of an enumeration value element. Must start with a letter or underscore. - - - - - - - - - Configures the code of an element. - - - - - - - Deprecated. Defines a reference to a deployment definition. - - - - - - - Configures the class to use for enclosing element. - - - - diff --git a/src/de/neuland/firefly/EventDistributor.java b/src/de/neuland/firefly/EventDistributor.java index 0701243..77e03f1 100644 --- a/src/de/neuland/firefly/EventDistributor.java +++ b/src/de/neuland/firefly/EventDistributor.java @@ -1,7 +1,9 @@ package de.neuland.firefly; +import de.hybris.platform.servicelayer.cluster.ClusterService; import de.hybris.platform.servicelayer.event.events.AbstractEvent; import de.hybris.platform.servicelayer.event.impl.AbstractEventListener; +import de.hybris.platform.servicelayer.tenant.TenantService; import de.hybris.platform.util.WeakHashSet; import java.util.HashMap; @@ -14,6 +16,12 @@ public abstract class EventDistributor extends AbstractEventListener { private HashMap> registeredListener = new HashMap<>(); + public EventDistributor(ClusterService clusterService, + TenantService tenantService) { + setClusterService(clusterService); + setTenantService(tenantService); + } + public void registerListener(String tenantId, L listener) { hasText(tenantId); notNull(listener); @@ -49,4 +57,16 @@ protected boolean hasListenersForTenant(String tenantId) { protected Set getListenersForTenant(String tenantId) { return registeredListener.get(tenantId); } + + // overridden to neutralize @Required annotation of method id super class + @Override + public void setClusterService(ClusterService clusterService) { + super.setClusterService(clusterService); + } + + // overridden to neutralize @Required annotation of method id super class + @Override + public void setTenantService(TenantService tenantService) { + super.setTenantService(tenantService); + } } diff --git a/src/de/neuland/firefly/HybrisAdapter.java b/src/de/neuland/firefly/HybrisAdapter.java index a3ba731..09594de 100644 --- a/src/de/neuland/firefly/HybrisAdapter.java +++ b/src/de/neuland/firefly/HybrisAdapter.java @@ -35,14 +35,23 @@ private void doInitialize(boolean update) throws Exception { try { MockHttpServletRequest request = new MockHttpServletRequest(); if (update) { + // up to version 5 request.addParameter("initmethod", "update"); request.addParameter("essential", "true"); + // version 6 + request.addParameter("initMethod", "UPDATE"); + request.addParameter("createEssentialData", "true"); } request.addParameter("init", "true"); request.addParameter("default", "false"); + request.addParameter("ALL_EXTENSIONS", "true"); + // up to version 5 request.addParameter("localizetypes", "true"); request.addParameter("clearhmc", "true"); - request.addParameter("ALL_EXTENSIONS", "true"); + // version 6 + request.addParameter("localizeTypes", "true"); + request.addParameter("clearHMC", "true"); + JspContext jspContext = new JspContext(jspWriter, request, new MockHttpServletResponse()); Initialization.doInitialize(jspContext); } finally { diff --git a/src/de/neuland/firefly/MigrationOnStartupListener.java b/src/de/neuland/firefly/MigrationOnStartupListener.java index 4883177..0c59005 100644 --- a/src/de/neuland/firefly/MigrationOnStartupListener.java +++ b/src/de/neuland/firefly/MigrationOnStartupListener.java @@ -1,17 +1,19 @@ package de.neuland.firefly; -import de.hybris.platform.servicelayer.event.impl.AbstractEventListener; import de.neuland.firefly.web.ApplicationStartupEvent; import org.apache.log4j.Logger; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Scope; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Component; @Component -@Scope("singleton") -public class MigrationOnStartupListener extends AbstractEventListener { +public class MigrationOnStartupListener implements ApplicationListener, ApplicationContextAware, InitializingBean { private static final Logger LOG = Logger.getLogger(MigrationOnStartupListener.class); private FireflyService fireflyService; private boolean automaticMigration = false; @@ -23,8 +25,8 @@ public MigrationOnStartupListener(FireflyService fireflyService, this.automaticMigration = automaticMigration; } - @Override protected void onEvent(ApplicationStartupEvent event) { - //TODO get a list of tenants and the fireflyService-bean for this scope + @Override + public void onApplicationEvent(ApplicationStartupEvent applicationStartupEvent) { if (automaticMigration) { LOG.debug("Starting automatic migration after startup."); fireflyService.migrate(); @@ -33,4 +35,14 @@ public MigrationOnStartupListener(FireflyService fireflyService, fireflyService.simulate(); } } + + @Override + public void afterPropertiesSet() throws Exception { + // do nothing + } + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + // do nothing + } } diff --git a/src/de/neuland/firefly/changes/ChangeExecutedEventListener.java b/src/de/neuland/firefly/changes/ChangeExecutedEventListener.java index 8c599c8..031b027 100644 --- a/src/de/neuland/firefly/changes/ChangeExecutedEventListener.java +++ b/src/de/neuland/firefly/changes/ChangeExecutedEventListener.java @@ -13,9 +13,15 @@ @Component @Scope("singleton") public class ChangeExecutedEventListener extends EventDistributor { - @Autowired private TenantService tenantService; - @Autowired private ClusterService clusterService; - @Autowired private ApplicationContext applicationContext; + + @Autowired + public ChangeExecutedEventListener(ClusterService clusterService, + TenantService tenantService, + ApplicationContext applicationContext) { + super(clusterService, tenantService); + + super.setApplicationContext(applicationContext); + } @Override protected void onEvent(ChangeExecutedEvent event) { if (!hasListenersForTenant(event.getTenantId())) { @@ -32,11 +38,4 @@ public class ChangeExecutedEventListener extends EventDistributor { + + @Autowired + public HmcResetEventListener(ClusterService clusterService, + TenantService tenantService) { + super(clusterService, tenantService); + } + @Override protected void onEvent(HybrisAdapter.HmcResetEvent event) { if (!hasListenersForTenant(event.getTenantId())) { return; diff --git a/src/de/neuland/firefly/extensionfinder/SystemUpdateEventListener.java b/src/de/neuland/firefly/extensionfinder/SystemUpdateEventListener.java index 2d62ce7..b7d4ea9 100644 --- a/src/de/neuland/firefly/extensionfinder/SystemUpdateEventListener.java +++ b/src/de/neuland/firefly/extensionfinder/SystemUpdateEventListener.java @@ -1,7 +1,10 @@ package de.neuland.firefly.extensionfinder; +import de.hybris.platform.servicelayer.cluster.ClusterService; +import de.hybris.platform.servicelayer.tenant.TenantService; import de.neuland.firefly.EventDistributor; import de.neuland.firefly.HybrisAdapter; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; @@ -9,6 +12,13 @@ @Component @Scope("singleton") public class SystemUpdateEventListener extends EventDistributor { + + @Autowired + public SystemUpdateEventListener(ClusterService clusterService, + TenantService tenantService) { + super(clusterService, tenantService); + } + @Override protected void onEvent(HybrisAdapter.SystemUpdatedEvent event) { if (!hasListenersForTenant(event.getTenantId())) { return; diff --git a/testsrc/de/neuland/firefly/EventDistributorTest.java b/testsrc/de/neuland/firefly/EventDistributorTest.java index 18ebdcf..9c43492 100644 --- a/testsrc/de/neuland/firefly/EventDistributorTest.java +++ b/testsrc/de/neuland/firefly/EventDistributorTest.java @@ -1,6 +1,8 @@ package de.neuland.firefly; +import de.hybris.platform.servicelayer.cluster.ClusterService; import de.hybris.platform.servicelayer.event.events.AbstractEvent; +import de.hybris.platform.servicelayer.tenant.TenantService; import de.neuland.firefly.extensionfinder.FireflyExtension; import org.junit.Test; import org.junit.runner.RunWith; @@ -16,7 +18,11 @@ @RunWith(MockitoJUnitRunner.class) public class EventDistributorTest { private static final String TENANT_ID = "myTestTenant"; - private EventDistributor listener = new EventDistributor() { + + @Mock private ClusterService clusterService; + @Mock private TenantService tenantService; + + private EventDistributor listener = new EventDistributor(clusterService, tenantService) { @Override protected void onEvent(AbstractEvent event) { // NO OP } diff --git a/testsrc/de/neuland/firefly/MigrationOnStartupListenerTest.java b/testsrc/de/neuland/firefly/MigrationOnStartupListenerTest.java index d390ed7..28e22ee 100644 --- a/testsrc/de/neuland/firefly/MigrationOnStartupListenerTest.java +++ b/testsrc/de/neuland/firefly/MigrationOnStartupListenerTest.java @@ -1,5 +1,7 @@ package de.neuland.firefly; +import de.hybris.platform.servicelayer.cluster.ClusterService; +import de.hybris.platform.servicelayer.tenant.TenantService; import de.neuland.firefly.web.ApplicationStartupEvent; import org.junit.Test; import org.junit.runner.RunWith; @@ -11,24 +13,29 @@ @RunWith(MockitoJUnitRunner.class) public class MigrationOnStartupListenerTest { - @Mock FireflyService fireflyService; + @Mock private FireflyService fireflyService; @Test - public void shouldStartAutomaticMigration() throws Exception { + public void shouldStartAutomaticMigration() { // given - MigrationOnStartupListener listener = new MigrationOnStartupListener(fireflyService, true); + MigrationOnStartupListener listener = new MigrationOnStartupListener( + fireflyService, + true); // when - listener.onEvent(new ApplicationStartupEvent()); + listener.onApplicationEvent(new ApplicationStartupEvent()); // then verify(fireflyService).migrate(); } @Test - public void shouldRunSimulation() throws Exception { + public void shouldRunSimulation() { // given - MigrationOnStartupListener listener = new MigrationOnStartupListener(fireflyService, false); + MigrationOnStartupListener listener = new MigrationOnStartupListener( + fireflyService, + false + ); // when - listener.onEvent(new ApplicationStartupEvent()); + listener.onApplicationEvent(new ApplicationStartupEvent()); // then verify(fireflyService).simulate(); } diff --git a/testsrc/de/neuland/firefly/changes/ChangeExecutedEventListenerTest.java b/testsrc/de/neuland/firefly/changes/ChangeExecutedEventListenerTest.java index a095872..e62a59e 100644 --- a/testsrc/de/neuland/firefly/changes/ChangeExecutedEventListenerTest.java +++ b/testsrc/de/neuland/firefly/changes/ChangeExecutedEventListenerTest.java @@ -1,11 +1,14 @@ package de.neuland.firefly.changes; import de.hybris.platform.core.PK; +import de.hybris.platform.servicelayer.cluster.ClusterService; +import de.hybris.platform.servicelayer.tenant.TenantService; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; +import org.springframework.context.ApplicationContext; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.mock; @@ -20,10 +23,17 @@ public class ChangeExecutedEventListenerTest { private ChangeExecutedEventListener listener; @Mock private Change change; @Mock private ChangeExecutedEvent changeExecutedEvent; + @Mock private ClusterService clusterService; + @Mock private TenantService tenantService; + @Mock private ApplicationContext applicationContext; @Before public void setUp() throws Exception { - listener = new ChangeExecutedEventListener(); + listener = new ChangeExecutedEventListener( + clusterService, + tenantService, + applicationContext + ); given(changeExecutedEvent.getTenantId()).willReturn(TENANT_ID); given(changeExecutedEvent.getMigration()).willReturn(MIGRATION); given(changeExecutedEvent.getChange()).willReturn(change); diff --git a/testsrc/de/neuland/firefly/extensionfinder/HmcResetEventListenerTest.java b/testsrc/de/neuland/firefly/extensionfinder/HmcResetEventListenerTest.java index 01494d5..dc096c5 100644 --- a/testsrc/de/neuland/firefly/extensionfinder/HmcResetEventListenerTest.java +++ b/testsrc/de/neuland/firefly/extensionfinder/HmcResetEventListenerTest.java @@ -1,6 +1,8 @@ package de.neuland.firefly.extensionfinder; import de.hybris.platform.core.PK; +import de.hybris.platform.servicelayer.cluster.ClusterService; +import de.hybris.platform.servicelayer.tenant.TenantService; import de.neuland.firefly.HybrisAdapter; import org.junit.Before; import org.junit.Test; @@ -20,10 +22,12 @@ public class HmcResetEventListenerTest { private HmcResetEventListener listener; @Mock private FireflyExtension extension; @Mock private HybrisAdapter.HmcResetEvent hmcResetEvent; + @Mock private ClusterService clusterService; + @Mock private TenantService tenantService; @Before public void setUp() throws Exception { - listener = new HmcResetEventListener(); + listener = new HmcResetEventListener(clusterService, tenantService); given(hmcResetEvent.getTenantId()).willReturn(TENANT_ID); } diff --git a/testsrc/de/neuland/firefly/extensionfinder/SystemUpdateEventListenerTest.java b/testsrc/de/neuland/firefly/extensionfinder/SystemUpdateEventListenerTest.java index b462f82..7813712 100644 --- a/testsrc/de/neuland/firefly/extensionfinder/SystemUpdateEventListenerTest.java +++ b/testsrc/de/neuland/firefly/extensionfinder/SystemUpdateEventListenerTest.java @@ -1,6 +1,8 @@ package de.neuland.firefly.extensionfinder; import de.hybris.platform.core.PK; +import de.hybris.platform.servicelayer.cluster.ClusterService; +import de.hybris.platform.servicelayer.tenant.TenantService; import de.neuland.firefly.HybrisAdapter; import org.junit.Before; import org.junit.Test; @@ -21,10 +23,12 @@ public class SystemUpdateEventListenerTest { private SystemUpdateEventListener listener; @Mock private FireflyExtension extension; @Mock private HybrisAdapter.SystemUpdatedEvent systemUpdatedEvent; + @Mock private ClusterService clusterService; + @Mock private TenantService tenantService; @Before public void setUp() throws Exception { - listener = new SystemUpdateEventListener(); + listener = new SystemUpdateEventListener(clusterService, tenantService); given(systemUpdatedEvent.getTenantId()).willReturn(TENANT_ID); given(systemUpdatedEvent.getMigration()).willReturn(MIGRATION); } diff --git a/web/webroot/WEB-INF/ibm-web-ext.xmi b/web/webroot/WEB-INF/ibm-web-ext.xmi index 3d3bf9e..e0516e8 100644 --- a/web/webroot/WEB-INF/ibm-web-ext.xmi +++ b/web/webroot/WEB-INF/ibm-web-ext.xmi @@ -1,10 +1,10 @@ - - - - - + + + + + diff --git a/web/webroot/img/logo-bg.svg b/web/webroot/img/logo-bg.svg index a3eb5f7..72d640b 100644 --- a/web/webroot/img/logo-bg.svg +++ b/web/webroot/img/logo-bg.svg @@ -1,50 +1,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/webroot/img/logo.svg b/web/webroot/img/logo.svg index 241dc94..9cb2f72 100644 --- a/web/webroot/img/logo.svg +++ b/web/webroot/img/logo.svg @@ -1,51 +1,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/webroot/index.jsp b/web/webroot/index.jsp index 57a71c7..ad1d30e 100644 --- a/web/webroot/index.jsp +++ b/web/webroot/index.jsp @@ -1,7 +1,7 @@ - - -

firefly

- Welcome to my extension. - - - + + +

firefly

+ Welcome to my extension. + + + From ec9fb102b9ad7ee4e424f1c1f4d583d84371e9f4 Mon Sep 17 00:00:00 2001 From: Christian Stuht Date: Tue, 2 Apr 2019 16:01:24 +0200 Subject: [PATCH 2/3] Update build number --- resources/firefly.build.number | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/firefly.build.number b/resources/firefly.build.number index 7b332cd..3f5acbf 100644 --- a/resources/firefly.build.number +++ b/resources/firefly.build.number @@ -1,3 +1,3 @@ -version=1.0.4 -releasedate=20181211 1315 +version=1.1.0 +releasedate=20190402 1600 description=https://github.com/neuland/firefly From 52e35687364623f3a93f6cfee8fa5fe35558e8e8 Mon Sep 17 00:00:00 2001 From: Christian Stuht Date: Tue, 2 Apr 2019 16:06:35 +0200 Subject: [PATCH 3/3] Remove generated build.xml --- .gitignore | 1 + build.xml | 186 ----------------------------------------------------- 2 files changed, 1 insertion(+), 186 deletions(-) delete mode 100644 build.xml diff --git a/.gitignore b/.gitignore index 5384e5c..e4e03d9 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ hmc/resources/hmc.xsd generated-firefly-web-spring.xml platformhome.properties +build.xml ruleset.xml .ruleset *testclasses.xml diff --git a/build.xml b/build.xml deleted file mode 100644 index b2fbe5c..0000000 --- a/build.xml +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -