Also to be added to *Common Mistakes:*

   - The *"name" *attribute and the *"overview_name"* attribute, both needs
   to have the same Value, (Ex: 'RaspberryPi' & 'Raspberry Pi' will not work).
   *"name"* is the Artifact-Name and "*overview_name*" is the value used
   when creating the resource path in the registry.


-------------------------------------
*Shabir Mohamed*
*Software Engineer*
WSO2 Inc.; http://wso2.com
Email: sha...@wso2.com <ayy...@wso2.com>
Mobile: +94 77 3516019 | +94 71 6583393

On Thu, Sep 10, 2015 at 9:10 PM, Shabir Mohamed <sha...@wso2.com> wrote:

> Hi,
>
> I have been trying to do $subject and found no relevant documentation.
> Hence, I backtracked the path as to how the existing sample-artifacts of
> the default asset-types (i.e.: gadget & site) are added when running the
> WSO2 - Enterprise Store 2.0.
>
> *As per my study these are the necessary steps required to do $subject:*
>
> Say the Asset-type for which we want to add a sample artifact has its
> *"RXT"* name as *"device.rxt". **(sample txt attached in the email)*
>
> 1. *The sample artifacts per asset-type are found at path:*
>
>    -
>    
> *<ES_HOME>/repository/deployment/server/jaggeryapps/publisher/samples/assets*
>    - Create a folder by the plural-name of the asset-type(rxt) in this
>    path. In this example we make a folder by the name *"devices"*.
>    - All sample/default artifacts of asset-type *"device" *shall go into
>    this folder.
>
> 2. The parent installation script - *"install.js"* - for all samples is
> found at the above mentioned path. Any *"install.js"* scripts found
> within sub-folders *(ex: devices, gadgets & sites)* of this path will
> over-ride the parent script to perform any specific operations relavant to
> that asset-type.
>
>    - copy the sample asset-specific *"install.js"** (attached with this
>    email)* into the folder created in the previous step.
>    - search and change the following tags appropriately in the copied
>    script:
>
>                   *<ASSET_LIFECYCLE>* : LifeCycle definition to which the
> asset-type *(in this example "device") *needs to be attached to *(ex:
> DeviceLifeCycle)*. Should be one of the lifecycle definitions found
> inside:
> *<ES_HOME>/repository/deployment/server/jaggeryapps/publisher/extensions/lifecycles/*
>                   *<ASSET_RXT_NAME>* : The *"rxt"* name of the asset-type
> for which the samples are to be made *(in this example "device"). *
>
>    - Save and close the *"install.js"* script.
>
> 3. Create a folder by the name of the sample-artifact inside the
> asset-specific-parent-folder created in Step 1. In this example lets call
> our sample artifact of asset-type *"device"* as *"firealarm"*. We can
> continue adding any number of folders *per artifact* of the asset-type *(ex:
> firearm, raspberryPi, arduino & etc)*. Artifact specific details go into
> these folders.
>
> *The folder structure
> at- <ES_HOME>/repository/deployment/server/jaggeryapps/publisher/samples 
> should
> look as follows:*
>
> *.*
>
> *└── samples*
>
> *    └── assets*
>
> *        ├── devices*
>
> *        │   ├── firealarm*
>
> *        │   │   ├── banner.png*
>
> *        │   │   ├── device.json*
>
> *        │   │   └── thumbnail.png*
>
> *        │   └── install.js*
>
> *        └── install.js*
>
>
> 4. Now we have to specify the asset specific attributes to be used when
> creating our sample (firealarm) artifact. These details are provided as a 
> *"json"
> *file with the same name as the asset-type/rxt *(<RXT_NAME>.json)*.
>
>
>    - In our example this is found inside the *"firealarm"* artifact
>    folder as *"device.json"*. For every additional artifact-folder that
>    is declared, there will be a corresponding *"device.json" *file with
>    relevant attribute details. *(The one used for declaring "firealarm"
>    artifact is attached)*
>
>
>    - Additionally, any images used for thumbnail & banner views of the
>    artifact in the store also need to go into the artifact specific folder.
>    The path to these images need to be given appropriately in the 
> *<RXT_NAME>.json
>    *file. (See attached sample for clarity)
>
>
> 5. Make the following additions in the *"publisher-tenant.json"* file
> found at path:
>
> *<ES_HOME>/repository/deployment/server/jaggeryapps/publisher/config*
>
>
>    - Add the asset-type *("device" in this example)* to the *"assets"*
>    unit.
>
>                         *"assets":["gadget","site", "device"],*
>
>    - Add the plural-name *("devices" in this example)* of the asset-type *(by
>    which the folder was made in Step 1)* to the sub-unit *"collections"*
>    nested under the unit - *"accessible".*
>
>                        *"accessible": [{*
> *                                "context": "/_system/governance",*
> *                                "collections": ["gadgets", "sites",
> "ebooks", "devices"],*
> *                                "actions":
> ["http://www.wso2.org/projects/registry/actions/get
> <http://www.wso2.org/projects/registry/actions/get>","http://www.wso2.org/projects/registry/actions/add
> <http://www.wso2.org/projects/registry/actions/add>",
> "http://www.wso2.org/projects/registry/actions/delete
> <http://www.wso2.org/projects/registry/actions/delete>", "authorize"]*
> *                        }],*
>
>    - Add a new "*type"* by the same plural-name of the asset-type for
>    sub-unit *"assetData" *nested under the unit - *"defaultAssets"*.
>
>                       *"defaultAssets": {*
> *                               "root": "/samples/assets",*
> *                               "assetData": [{*
> *                                        "type": "gadgets",*
> *                                        "ignore": ["agricultural-land",
> "intro-gadget-1", "intro-gadget-2", "gadget-template-explorer",
> "gadget-explorer", "co2-emission", "electric-power", "energy-use",
> "greenhouse-gas"]*
> *                                }, {*
> *                                        "type": "ebooks"*
> *                                }, {*
> *                                        "type": "sites"*
> *                                }, {*
> *                                        "type": "devices"*
> *                               }]*
> *                       },*
>
>
> Now, if you restart the server (WSO2-ES), the new sample artifact should
> get created for the specific asset-type. This can be viewed at the
> Publisher-UI. The artifact will be listed under the asset-type in the
> Store-UI according to the lifecycle state mentioned for the
> *"overview_status"* attribute in the *<RXT_NAME>.json* file. In our
> example the artifact will be visible in the Store-UI, since we have set the
> lifecycle status to *"PUBLISHED"*.
>
>
> *Common Mistakes:*
>
>    - Missing lifecycle definition in path:
>    
> *<ES_HOME>/repository/deployment/server/jaggeryapps/publisher/extensions/lifecycles/*
>
>
>    -
> *In-appropiate attribute naming in the Asset-RXT file for the attributes: *
>
>                   *Ex:
>  shortName, singularLabel, pluralLabel, <storagePath>....</storagePath>*
>
>
> Please do inform me of anything that I have missed or included redundantly.
>
> Regards
> -------------------------------------
> *Shabir Mohamed*
> *Software Engineer*
> WSO2 Inc.; http://wso2.com
> Email: sha...@wso2.com <ayy...@wso2.com>
> Mobile: +94 77 3516019 | +94 71 6583393
>
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to