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