Hi all,

Thank you for your inputs.

@ Dakshika :
Based on your input following modifications were made.

*Chart template structure*

└── line-chart
    ├── api.js
    ├── config.json
    ├── chart-libs
    │   └── vendorName_version
    │       └── js_css_images_etc_as_same_as_vendor_ships
    ├── css
    │   └── line-chart.css
    └── js
        └── line-chart.js


*Generated gadget structure*

└── test_gadget
    ├── conf.json
    ├── gadget-controller.jag
    ├── gadget.json
    ├── index.png
    ├── index.xml
    ├── chart-libs
    │   └── vendorName_version
    │       └── js_css_images_etc_as_same_as_vendor_ships
    ├── css
    │   └── line-chart.css
    └── js
        ├── core-js
        │   ├── gadget-core.js
        │   ├── line-chart-api.js
        │   └── provider-api.js
        └── line-chart.js


*Folder structure for storing common libs*

portal
      |── libs

  ├── vendorName_version
  │   ├── <js/css/images and all files as the vendor ships>


*Changes to the existing model*

   - common libs will reside inside portal/libs/

*chart config.json*

"common": {
        "js": ["vendorName_version/common"],
        "css": ["vendorName_version/common"]
    },
"chart": {
        "js": ["vendorName_version/d3.min", "vendorName_version/vega",
"line-chart"],
        "css": ["vendorName_version/graph, line-chart"]
    }

"common" is for libs fetched from /portal/libs
"chart" is for both chart specfic libs inside js folder of chart template
and chart-libs that are coming from vendors.

So with the change suggested by Dakshika we will have to specify the
directory path of chart-libs in the config.json (ex:
 "vendorName_version/d3.min" )
But if it is a chart specific js file (in this example line-chart.js)
specifying the file name is enough.

In the gadget xml of the generated gadget we will be using the relative
path for libs fetched from /portal/libs.

@ Suho : Yes, the gadgets generated via old wizard will still work, I was
worried about the consistency between old gadgets and new gadgets generated
via the wizard. As per the offline chat we had, no obligations from IOT
side.

Thanks,
Tanya

-- 
Tanya Madurapperuma

Senior Software Engineer,
WSO2 Inc. : wso2.com
Mobile : +94718184439
Blog : http://tanyamadurapperuma.blogspot.com

On Tue, Jun 7, 2016 at 3:53 PM, Dakshika Jayathilaka <[email protected]>
wrote:

> Hi All,
>
> IMO it's better if we can maintain third-party libraries as a separate
> entity. Usually, most of the third party libs have their own dependencies
> (ex: some CSS files refer images/ fonts ). If we place them separately it's
> hard to identify relevant dependency at a glance.
>
>  At the same time, I would like to propose to have library version as
> well. This will really useful if someone wants to upgrade third-party lib
> etc.
>
> Regards,
>
> *Dakshika Jayathilaka*
> PMC Member & Committer of Apache Stratos
> Senior Software Engineer
> WSO2, Inc.
> lean.enterprise.middleware
> 0771100911
>
> On Tue, Jun 7, 2016 at 3:11 PM, Tanya Madurapperuma <[email protected]>
> wrote:
>
>> Hi all,
>>
>> During an offline discussion with Jerad following modification were
>> suggested regarding the directory structure of the extension model. All
>> these changes are subjected to js and css file locations.
>>
>> *Chart template structure*
>>
>> |── line-chart
>>   │   ├── css
>>   │   │   └── line-chart.css
>>   │   └── js
>>   │       ├── d3.min.js
>>   │       ├── vega.js
>>   │       └── VizGrammar.min.js
>>    |── config.json
>>   ├── api.js
>>
>>
>> *Changes to the existing model*
>>
>>    - rename index.js to api.js
>>    - rename chart-libs folder to js
>>    - have a css folder in the same level
>>
>>
>> *Generated gadget structure*
>>
>> └── test_gadget
>> │       │       ├── conf.json
>> │       │       ├── css
>> │       │       │   └── line-chart.css
>> │       │       ├── gadget-controller.jag
>> │       │       ├── gadget.json
>> │       │       ├── index.png
>> │       │       ├── index.xml
>> │       │       └── js
>> │       │           ├── core
>> │       │           │   ├── gadget-core.js
>> │       │           │   ├── line-chart-api.js
>> │       │           │   └── provider-api.js
>> │       │           ├── d3.min.js
>> │       │           ├── vega.js
>> │       │           └── VizGrammar.min.js
>>
>>
>> *Changes to the existing model*
>>
>>    - Instead of the *chart-libs* folder inside *js* folder, have a *core
>>    *folder inside *js *folder and place chart specific js files in js
>>    folder
>>
>>
>> *Folder structure for storing common libs*
>>
>> portal
>>       |── gadget-commons
>>
>>    ├── css
>>    │   └── common.css
>>    └── js
>>        └── common.js
>>
>>
>> *Changes to the existing model*
>>
>>    - Now we have common libs inside portal/libs/common-chart-libs/
>>
>> *chart config.json*
>>
>> "common": {
>>         "js": ["common"],
>>         "css": ["common"]
>>     },
>>     "chart": {
>>         "js": ["d3.min", "vega", "VizGrammar.min"],
>>         "css": ["line-chart"]
>>     }
>>
>> *existing config.json*
>>
>> "common-libs" : ["wso2gadgets","chart-utils"],
>> "chart-libs" : ["d3.min","vega","VizGrammar.min"]
>>
>> I think this model is cleaner and intuitive than the exiting model.
>> AFAIK existing wizard is only used for IOT analytics. If there are no
>> concerns from them shall we move to this new model?
>>
>> @ Suho, Dunith : WDYT ? Will this incur lot of changes from IOT side?
>> Appreciate your input.
>>
>> Thanks,
>> Tanya
>>
>> --
>> Tanya Madurapperuma
>>
>> Senior Software Engineer,
>> WSO2 Inc. : wso2.com
>> Mobile : +94718184439
>> Blog : http://tanyamadurapperuma.blogspot.com
>>
>
>


-- 
Tanya Madurapperuma

Senior Software Engineer,
WSO2 Inc. : wso2.com
Mobile : +94718184439
Blog : http://tanyamadurapperuma.blogspot.com
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to