Re: [Architecture] is it correct to deploy class mediators via a CAR file

2013-05-06 Thread Amila Suriarachchi
On Sun, May 5, 2013 at 11:41 AM, Kishanthan Thangarajah kishant...@wso2.com
 wrote:

 During an offline discussion we (AmilaS, Azeez, Harshana) had on the
 second approach, (using p2 to support server extensions), the following
 points were brought up.

 1. How are we going to handle this in a MT environment as all tenants will
 see those extentions classes at run-time?
 2. bundles.info in what connects p2 and equinox, and it is read only
 once, during start-up by equinox AFAIK. So this is why after installing new
 features, we had
 to restart the server to take effect. This will again be a limitation.
 3. Right now we use Dynamic-Imports to resolve required import packages
 when integrating other 3rd party components with Carbon. So to support this
 properly,
 we need to use proper import packages in all the 3rd party integration.
 4. Updating bundles at run-time requires to refresh the Carbon environment
 and refreshing the environment while server running means refresh happens
 iteratively
 up to the root level and it is similar to Graceful server restart which is
 not a good practice.

 On the first approach (using our own deployer to deploy the server
 extension libs), we could use a CApp deployer like approach. As mentioned
 by Kasun, for synapse artifacts, we can use the synapse library deployer +
 template approach to hot-deploy/update custom/class mediators.


An option we talk about here is to rename CApp archive to Carbon archive.
So that it can contain either application data or extension data.

thanks,
Amila.


 How should we proceed from here?

 Thanks,
 Kishanthan.



 On Tue, Apr 30, 2013 at 3:45 PM, Srinath Perera srin...@wso2.com wrote:

 Please find the notes in the attached doc

 Mainly we discuss using our own server extension vs. using P2 to do
 that. Kishanthan will explore the both options and get back.

 --Srinath


 On Wed, Apr 24, 2013 at 4:52 PM, Harshana Martin harsh...@wso2.comwrote:

 Hi Srinath,


 On Wed, Apr 24, 2013 at 3:24 PM, Srinath Perera srin...@wso2.comwrote:

 Kasun,  where do we stand now?

 1) Are we creating a new extension type? for class mediators, axis2
 modules etc
 2) what do we plan to do far hot deployment?

 lets have a redmine issue unless we are working on this now?


 We already have redmine issues for this [1290] [1291].

 Shall we organize a review meeting Friday 26th or Monday 29th to discuss
 this further?

 If we are to get this fixed for Carbon 4.2.0, we need to decide ASAP.

 Thanks and Regards,
 Harshana






 On Sat, Apr 13, 2013 at 7:07 PM, Kasun Indrasiri ka...@wso2.comwrote:

 @Amila: With Synapse library approach, any custom mediator will get
 hot update as long as they reside in the template which will be deployed
 with the Synapse library. Any other sequence will be basically calling the
 template (call template). However, once a given custom mediator get hot
 deployed, any other sequence can use that custom mediator(without using
 templates), but not subjected to hot update till that particular sequence
 get redeployed. So, the bottom line is that, to support 'hot update' the
 custom mediator should reside in a template.

 On Sat, Apr 13, 2013 at 4:04 PM, Kishanthan Thangarajah 
 kishant...@wso2.com wrote:

 Hi Kasun,


 On Sat, Apr 13, 2013 at 1:54 PM, Kasun Indrasiri ka...@wso2.comwrote:

 This is the progress we made on deploying Synapse extensions - Class
 Mediators and Custom Mediators.

 I've mainly tried following existing method on deploying extensions
 on Synapse trunk.

 - *Synapse Extension Approach - XAR* : We can hot deploy any
 synapse custom mediator as an extension. However, although the xar got 
 hot
 updated, we have to redeploy all the referring sequence and proxy 
 services
 to get the updated changes in to effect.

 - *Synapse Library Deployer* : Synapse library carters hot update
 requirement by keeping the changing artifacts as a template. So, that
 sequences can share and refer a given template and during hot update, 
 its
 only the template get hot updated. So this support both hot
 deployment/update for class mediator. But, this doesn't support adding
 custom mediators (factories and serializers)

 So, then I extend the synapse library functionality such that it
 loads factories and serializers  prior to deploying the library 
 artifacts.

 With that we can hot deploy/update both class mediators and custom
 mediators with out deploying any sequences that are referring those
 mediators. [All artifacts (custom/class mediators along with templates) 
 are
 packed in a synapse-lib zip file.]


 +1, I'm trying compare this approach with the new CApp artifacts
 deployment approach we are working on (thread : Synchronous deployment 
 of
 CApp artifacts).

 Say that we want to hot update both custom/class mediators using the
 above synapse lib functionality and other artifacts (sequences, proxies,
 etc) using the CApp approach.

 So the hot update to take effect, does the order of
 deployment matters here? i.e 

Re: [Architecture] AS J2EE support - JSF

2013-05-06 Thread Piyum Fernando
Hi,

I further went through both of these implementations specially considering
the performance and community.

*Performance with AS:*

Both of them showed almost similar results.
But with the increasing number of threads myFaces performed slightly better
than mojarra.


*Community:*

Currently both have active communities and there are number of recent
releases from both.
And again it seems myfaces has bit more active community since the start of
the project.
Mojarra(known as RI) was not much active in early days but now.


IMO it's better to start with Apache myfaces and keep it as our default
implementation.
Later we can provide the support to mojarra(or any other implementation)
according to the user requirements.

Thanks!





On Fri, Apr 26, 2013 at 3:18 PM, Pradeep Fernando prad...@wso2.com wrote:




 On Fri, Apr 26, 2013 at 12:41 PM, Piyum Fernando pi...@wso2.com wrote:

 Hi folks,

 There are two major JSF implementations; Apache myFaces[1] and Oracle
 Mojarra[2]

 I tested both of these implementations with a simple JSF wep app running
 on AS by creating new class loading environments and worked well.

 I went through few J2EE servers and default implementations they use are
 as follows;

 Apache Myfaces -  TomEE, Geronimo
 Oracle Mojarra - Glassfish, Web Logic

 JBoss comes with both by default.

 AFAIK most of the times JSF web apps work fine with any of them.
 But some features may work well only with a particular impl and some may
 depend on the versions too.

 IMO we should provide the support to use any of these implementations and
 versions.
 In this case we can use different class loading environments for each of
 them and allow the user to configure the web app to use the one needed.


 integrating one of these implementations/test/release/resolve user issues
 is the best way to get start with this kind of task. Smooth integration is
 more important than the, number of JSF implementations we support, to begin
 with.
 just a thought.

 --Pradeep



 WDYT?

 [1] http://myfaces.apache.org/
 [2] https://javaserverfaces.java.net/
 --
 Piyum Fernando
 Software Engineer

 Mobile: +94 77 22 93 880
 Home:  +94 31 22 75 715

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 *Pradeep Fernando*
 Member, Management Committee - Platform  Cloud Technologies
 Senior Software Engineer;WSO2 Inc.; http://wso2.com

 blog: http://pradeepfernando.blogspot.com
 m: +94776603662

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 
Piyum Fernando
Software Engineer

Mobile: +94 77 22 93 880
Home:  +94 31 22 75 715
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] [AppFactory] Enabling event notifications in AppFactory jaggery application.

2013-05-06 Thread Manjula Rathnayake
Hi all,

In AppFactory, there are load of events generated that are interested for
different users(App Owners, Developers, QA and DevOps). Currently these
events are not visible to end users. POC is implemented to try out a
scenario as in diagram and provide a better run time view to end users.[image:
Inline image 1]

Here, users access the jaggery application in browser, then web socket is
opened from jaggery server to browser. When any activity is going on AF,
BPS, Jenkins,etc, events are published to different topics. We have a JMS
listener subscribed to these events and notifications are received by JMS
subscribers. JMS subscribers push incoming messages into web socket so that
browser get updated with these messages.

Above scenario is tested and working without ELB. We need to figure out a
way how we can handle this use case in a clustered mode with ELB.

Based on incoming message formats, we need to render the message in
browser. And we need to identify/define hierarchical topics and message
formats based on interested events.

Thoughts are welcome before we integrate this with AF.

thank you.

-- 
Manjula Rathnayaka
Software Engineer
WSO2, Inc.
Mobile:+94 77 743 1987
AF_event_wall.jpg___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [AppFactory] Enabling event notifications in AppFactory jaggery application.

2013-05-06 Thread Manuranga Perera
since IE9 and below and many android browsers doesn't support websocket [1]
we may have to implement a fall back mechanism. we can use a already
existing client-side library such as 'socket.io' [2] but may have to write
a server-side Jaggery module to support that.

[1] http://caniuse.com/websockets
[2] http://socket.io/


On Mon, May 6, 2013 at 4:26 PM, Manjula Rathnayake manju...@wso2.comwrote:

 Hi,


 On Mon, May 6, 2013 at 4:04 PM, Manjula Rathnayake manju...@wso2.comwrote:

 Hi all,

 In AppFactory, there are load of events generated that are interested for
 different users(App Owners, Developers, QA and DevOps). Currently these
 events are not visible to end users. POC is implemented to try out a
 scenario as in diagram and provide a better run time view to end 
 users.[image:
 Inline image 1]

 Here, users access the jaggery application in browser, then web socket is
 opened from jaggery server to browser. When any activity is going on AF,
 BPS, Jenkins,etc, events are published to different topics. We have a JMS
 listener subscribed to these events and notifications are received by JMS
 subscribers. JMS subscribers push incoming messages into web socket so that
 browser get updated with these messages.

 Above scenario is tested and working without ELB. We need to figure out a
 way how we can handle this use case in a clustered mode with ELB.

 The reason to not work with ELB is, web socket transport is WS,WSS and
 that is not supported in ELB.


 Based on incoming message formats, we need to render the message in
 browser. And we need to identify/define hierarchical topics and message
 formats based on interested events.

 Thoughts are welcome before we integrate this with AF.

 thank you.

 --
 Manjula Rathnayaka
 Software Engineer
 WSO2, Inc.
 Mobile:+94 77 743 1987



 thank you.

 --
 Manjula Rathnayaka
 Software Engineer
 WSO2, Inc.
 Mobile:+94 77 743 1987

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


AF_event_wall.jpg___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture