Hi Dulitha,

Apart from the way things are stored in XML, is there any other concerns
WRT this? I didn't understand the benefit of having CSVs.

Thanks,
Senaka.


On Wed, Aug 7, 2013 at 9:22 AM, Dulitha Wijewantha <[email protected]> wrote:

> Hi guys,
> I am using the artifact.js module provided by jaggery core to insert JSON
> based javascript objects to the registry. Internally it converts them to
> xml before using the GenericArtifactManager to insert them to Greg.
> We are passing all the attributes to a method that converts them to xml -
> Below is the array -
>
>         var screenshot1 = files['screenshot1File'];
>
>       screenshot1 = saveFile(screenshot1);
>
>       var screenshot2 = files['screenshot2File'];
>
>       screenshot2 = saveFile(screenshot2);
>
>       var screenshot3 = files['screenshot3File'];
>
>       screenshot3 = saveFile(screenshot3);
>
>       var screenshots = [screenshot1, screenshot2, screenshot3];
>
> Link <https://gist.github.com/dulichan/6171023#file-gistfile2-js>
>
>
> Below is the method that creates the artifact (from json to xml in
> artifact.js)
>
> var createArtifact = function (manager, options) {
>
>         var name, attribute, i, length, lc,
>
>             artifact = manager.newGovernanceArtifact(new QName(options.name)),
>
>             attributes = options.attributes;
>         for (name in attributes) {
>             if (attributes.hasOwnProperty(name)) {
>                 attribute = attributes[name];
>                 if (attribute instanceof Array) {
>
>                     /*length = attribute.length;
>                      for (i = 0; i < length; i++) {
>
>                      artifact.addAttribute(name, attribute[i]);
>                      }*/
>                     artifact.setAttributes(name, attribute);
>
>                 } else {
>                     artifact.setAttribute(name, attribute);
>
>                 }
>             }
>         }
>         if (options.id) {
>             artifact.id = options.id;
>         }
>         if (options.content) {
>                           if (options.content instanceof Stream) {
>
>                               
> artifact.setContent(IOUtils.toByteArray(options.content.getStream()));
>
>                           } else {
>                               artifact.setContent(new 
> java.lang.String(options.content).getBytes());
>
>                           }
>                       }
>
>         lc = options.lifecycles;
>
>         if (lc) {
>             length = lc.length;
>
>             for (i = 0; i < length; i++) {
>
>                 artifact.attachLifecycle(lc[i]);
>             }
>         }
>         return artifact;
>     };
> Link  <https://gist.github.com/dulichan/6171023#file-gistfile1-js>
>
>
> The culprit method here is the setAttributes - it saves the xml as
>
> <screenshots>one</screenshots>
> <screenshots>two</screenshots>
>
> <screenshots>three</screenshots>
> Link <https://gist.github.com/dulichan/6171023#file-gistfile3-xml>
>
>
> Temporarily I concatenated the array with commas -
>   var screenshots = screenshot1+","+screenshot2+","+screenshot3;
>
> And convert them to an array with a utility method from my side. This
> should ideally be handled in the artifact.js module. WTDY?
>
> Thanks.
> --
> Chan (Dulitha Wijewantha)
> Software Engineer - Mobile Development
> WSO2Mobile
> Lean.Enterprise.Mobileware
>  * ~Email       [email protected] <[email protected]>*
> *  ~Mobile     +94712112165*
> *  ~Website   dulithawijewantha.com
> *
> *  ~Blog         blog.dulithawijewantha.com<http://dulichan.github.io/chan/>
> *
> *  ~Twitter     @dulitharw <https://twitter.com/dulitharw>*
>



-- 
* <http://us13.wso2con.com/>
*
*
*
*Senaka Fernando*
Senior Technical Lead; WSO2 Inc.; http://wso2.com*
Member; Apache Software Foundation; http://apache.org

E-mail: senaka AT wso2.com
**P: +1 408 754 7388; ext: 51736*; *M: +94 77 322 1818
Linked-In: http://linkedin.com/in/senakafernando

*Lean . Enterprise . Middleware
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to