Re: [Architecture] [Dev] [Vote] Release of WSO2 API Microgateway 3.2.0 RC2

2020-08-24 Thread Amila Maha Arachchi
Hi Menaka,

I think what you have explained should be the migration guide for 3.2.0. I
think we need to get it added to the docs. Even if there are zero steps to
be followed, that itself should be mentioned in the docs under migration
because otherwise the users will be in doubt.

Regards,
Amila.

On Mon, Aug 24, 2020 at 12:54 PM Menaka Jayawardena  wrote:

> Hi Nadee,
>
> By default, Microgateway does not require any migration process. You can
> build the mgw project using the Microgateway 3.2.0 toolkit and run with the
> Microgateway 3.2.0 runtime with the old configurations. (Ex. build 3.1.0
> project with 3.2.0 toolkit and run with 3.2.0 runtime with the 3.1.0
> configs)
> All most all of the configurations are backwards compatible and there are
> only few config level changes which will be updated in the docs. (related
> to authentication and subscription validation).
>
> Migration would only be required if you have any customizations written in
> ballerina.
>
> Thanks and Regards,
> Menaka
>
> On Mon, Aug 24, 2020 at 11:37 AM Nadee Poornima  wrote:
>
>> Hi Menaka,
>>
>> Analysed the Micro GW documents[1], however, didn't see any document
>> relating the migration process (upgrade process) from Micro GW 3.1.0 to
>> Micro GW 3.2.0.
>> Is there any specific process to migrate Micro GW product? How we can do
>> that?
>>
>> Appreciate your valuable thought here.
>>
>> [1]. https://mg.docs.wso2.com/en/latest/#
>>
>> Cheers,
>> Nadee
>>
>> On Sat, Aug 22, 2020 at 4:10 PM Menaka Jayawardena 
>> wrote:
>>
>>> Hi All,
>>>
>>> WSO2 Api Manager team is pleased to announce the second release
>>> candidate of WSO2 API Microgateway 3.2.0.
>>>
>>> The WSO2 API Microgateway is a lightweight, gateway distribution which
>>> can be used to expose single or multiple APIs.
>>>
>>> Please find the improvements and fixes related to this release in Fixed
>>> issues
>>> 
>>>
>>> Download the product from here
>>> 
>>>
>>> The Tag to be voted upon is
>>> https://github.com/wso2/product-microgateway/tree/v3.2.0-rc2
>>>
>>> *Documentation*: https://mg.docs.wso2.com/en/latest/
>>>
>>> Please download, test the product and vote.
>>>
>>> *[+] Stable* - Go ahead and release
>>>
>>> *[-] Broken* - Do not release (explain why)
>>>
>>>
>>> Best Regards,
>>> WSO2 API Manager Team
>>>
>>>
>>> --
>>> *Menaka Jayawardena*
>>> Senior Software Engineer *|* *WSO2* *Inc*.
>>> +94 71 350 5470 | men...@wso2.com
>>>
>>> 
>>>
>>>
>>
>> --
>> *Nadee Poornima*
>> Software Engineer | WSO2
>>
>> Email : nad...@wso2.com
>> Mobile : +94713441341
>> MyBlog: https://medium.com/nadees-tech-stories
>>
>> 
>>
>
>
> --
> *Menaka Jayawardena*
> Senior Software Engineer *|* *WSO2* *Inc*.
> +94 71 350 5470 | men...@wso2.com
>
> 
>
> ___
> Dev mailing list
> d...@wso2.org
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>


-- 
*Amila Mahaarachchi*
VP of Engineering, Integration
WSO2, Inc.; http://wso2.com
Mobile: +94719371446


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


Re: [Architecture] Migration approach for APIM 2.6.0 to 3.0.0

2018-09-20 Thread Amila Maha Arachchi
Dushan has a very good point (but I think Dushan has or expressed it
wrong). It seems that it has been decided to go with Approach 1. i.e.
adding the migration capabilities to the existing REST apis of 2.6.0. This
means, people using other versions such as 2.1.0, 2.5.0 wont be able to
migrate to 3.0 without coming to 2.6.0.

If we had a separate API which can export from any version (lets say from
any version from 2.1.0 upwards) and import to 3.0, that is the ideal
solution. It is easy to fix issues as well. It is true that this tool will
be thrown away after sometime. But, we shouldn't expect all the code we
write to be used forever.

For me, writing a separate API is easier for us and the users both.

On Fri, Sep 21, 2018 at 3:05 AM Dushan Abeyruwan  wrote:

> Hi Samitha,
>   Are we proceeding with the approach-2? if so, how does such migration
> approach benefited for someone who is trying to migrate from 2.5.0 or
> before? will there be any intermittent steps or this tool would take care
> of such intermittent steps?
>
> The other question is; its better CLI tool having a verbose option to be
> implemented.  maybe through (-v) which prints all the necessary details
> around the migration state rather someone to enable that via log4j
> separately.
>
> Cheers,
> Dushan
>
> On Wed, Sep 19, 2018 at 9:50 PM, Samitha Chathuranga 
> wrote:
>
>> Hi all,
>>
>> Following is an update on the current progress of this task.
>>
>> Tasks done upto:
>>
>> 1. 2.6.0 REST API and implementation changes.
>>
>>- Change GET applications REST API to enable get all apps of a given
>>tenant too, instead of all tenants
>>- Support cross tenant APIs GET for migration only for super admin
>>- Return application keys too (conditionally) to use for migration
>>- Support cross tenant application export for migration for super
>>admin
>>
>> 2. Export APIs as a bulk with export-apis command with import-export tool
>>
>>- All the APIs are exported by single command but implementation is
>>as iterative api export, set by set separately (export sets of APIs
>>separately, instead of exporting all at once)
>>- API export resume capability (error handling) with the support of
>>two files migration-apis-export-metadata.yaml and last-succeeded-api.log
>>- *--force* flag with *export-apis* command will forcefully export
>>all the apis from beginning, disregarding the fact that all/some apis were
>>exported successfully by last execution of command.
>>- Able to skip exporting particular APIs (if they were failed once
>>and not needed to export if execute the command next time without --force
>>option)
>>
>> 3. Fixing the gaps, which had blocked functionality in APIM 3.0.0
>> import-export tool related to API import/export process.
>>
>> Slight changes on the design of the approach is updated in the same doc
>> shared previously. [1]
>> Will be updating this thread on the progress and appreciate any concerns.
>>
>> [1]
>> https://docs.google.com/document/d/1N8ZXPf1-dKpYf09w7AZ9M6RHXnsU2Orht37N1yETbnE/edit?usp=sharing
>>
>> Regards,
>> Samitha
>>
>> On Fri, Sep 7, 2018 at 11:12 AM Samitha Chathuranga 
>> wrote:
>>
>>> Hi all,
>>>
>>> This is an update on the up to now state on this task. Had several
>>> discussions, design reviews within team and below doc [1] contains the
>>> overall design of migration process. And each operation executed at API
>>> export/import process (for migration) is detailed under Section 7 (*Using
>>> the Import Export CLI tool for migration - User Steps and Steps executed in
>>> each command*).
>>>
>>> Appreciate any comments and suggestions.
>>>
>>> Meanwhile I have worked on changing required REST APIs for this
>>> migration process and are almost done. API/App export related operations
>>> from CLI tool is done upto an extent allowing to be finalized based on
>>> finalized design.
>>>
>>> [1]
>>> https://docs.google.com/document/d/1N8ZXPf1-dKpYf09w7AZ9M6RHXnsU2Orht37N1yETbnE/edit?usp=sharing
>>>
>>> Regards,
>>> Samitha
>>>
>>> On Wed, Aug 1, 2018 at 10:31 AM Samitha Chathuranga 
>>> wrote:
>>>
 Hi Nuwan,

 One main reason is that, if we follow approach 1, migration story
 cannot be done in single step. Specially two CLI tools will have to be
 used for the two sub steps of exporting and importing.

 And also normal API/Application export flow will change as major
 modifications will be required for certain aspects. i.e.

- bulk export/import
- correlate the difference in the format of archives supported by
2.6 vs 3.0
- exporting and importing additional artifacts such as throttle
policies, access tokens, user role permissions

 Importing the 2.6 format API/Applications to 3.0 would require
 completely new effort too. So anyway we will have to change the 3.0 import
 tool highly.

 And my perception is that normal import export and migration oriented

Re: [Architecture] [Analytics] Allowing analytics data to be published to super tenant space

2016-06-23 Thread Amila Maha Arachchi
On Thu, Jun 23, 2016 at 4:22 PM, Dunith Dhanushka <dun...@wso2.com> wrote:

>
>
> On Thu, Jun 23, 2016 at 3:46 PM, Anjana Fernando <anj...@wso2.com> wrote:
>
>> Hi Amila,
>>
>> On Thu, Jun 23, 2016 at 11:52 AM, Amila Maha Arachchi <ami...@wso2.com>
>> wrote:
>>
>>> All,
>>>
>>> 1. We should allow to decide whether to publish data in super tenant
>>> mode or tenant mode
>>>
>>
>> This is possible, but the problem is, it complicates the ESB analytics
>> solution, where we will have to maintain two different versions which would
>> implement the two scenarios. So IMO, it would be better to follow a single
>> approach which would be overall best flexibility, which we discussed
>> earlier, where we publish and manage data in tenants, but execute the Spark
>> scripts in the super tenant.
>>
>>
>>> 2. If its the ST mode, we deploy the car in ST space.
>>> 3. Data gets published and stored in one table. i.e. no table per tenant
>>>
>>
>> The current connectors, e.g. RDBMS / HBase etc.. use the mechanism of
>> creating a table per analytics table/tenant. In those connectors, this
>> behavior cannot be changed, where mainly there are technical difficulties
>> in doing so also, when filtering out different tenant's data and all.
>> Anyways, usually in database systems, there is no limit in the number of
>> physical tables created and all. And also, you will not access these tables
>> directly, but will communicate via the REST APIs if required.
>>
>>
>>> 4. Spark runs against that table
>>>
>>
>> With the new improvements, we anyway get similar type of an interface
>> where the Spark script will automatically read data from all the tenants
>> and process the data in one go.
>>
>>
>>> 5. Dashboard should be a SaaS app which filters data from the analyzed
>>> table.
>>>
>>
>> I guess that maybe possible, but that will need some changes in the
>> current dashboards. @Dunith, can you comment on this please. Also, is there
>> any issue in deploying a dashboard per tenant?, which is the current
>> situation.
>>
>
>  Hi Anjana,
> Currently dashboards and other related artifacts are stored in tenant
> aware manner.
>
> Dashboard definitions are stored in the logged in user's tenant registry
> so that it'll be isolated only to that tenant. Gadget's read data through
> analytics.jag which in turn filters data by looking at logged in user's
> tenant domain.
>
> So I believe current implementation statisfies the requirements of a SaaS
> app.
>

Can you add this to the roadmap for the next release please :). I see this
will end up with another migration though :(

>
>> Cheers,
>> Anjana.
>>
>>
>>>
>>> Can above be facilitated?
>>>
>>> Regards,
>>> Amila.
>>>
>>> --
>>> *Amila Maharachchi*
>>> Senior Technical Lead
>>> WSO2, Inc.; http://wso2.com
>>>
>>> Blog: http://maharachchi.blogspot.com
>>> Mobile: +94719371446
>>>
>>>
>>
>>
>> --
>> *Anjana Fernando*
>> Senior Technical Lead
>> WSO2 Inc. | http://wso2.com
>> lean . enterprise . middleware
>>
>
>
>
> --
> Regards,
>
> Dunith Dhanushka,
> Associate Technical Lead
> WSO2 Inc,
>
> Mobile - +94 71 8615744
> Blog - *https://medium.com/@dunithd <https://medium.com/@dunithd>*
> Twitter - @dunithd <http://twitter.com/dunithd>
>



-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [Analytics] Allowing analytics data to be published to super tenant space

2016-06-23 Thread Amila Maha Arachchi
On Thu, Jun 23, 2016 at 12:02 PM, Sumedha Rubasinghe <sume...@wso2.com>
wrote:

> Amila,
> It does not sound correct for a multi tenant system right?
>

IMO, it depends on what freedom you are allowing to your tenants. If we
take API Cloud, tenants have lot of freedom related to API lifecycle, but
not in statistics.

>
> I think the solution should be making car deployment automatic @ the
> tenant creation level.
>

For the moment thats what we are going to do. We can live with it. But, the
amount of effort we will have to put during an upgrade or if we have to
patch a car file,  is huge. What I see as wrong is, we are deploying
something in tenants space by ourselves. But we are the ones who decide
what that artifacts does. So, time to time we will have to go and change
it.

>
>
> On Thu, Jun 23, 2016 at 11:52 AM, Amila Maha Arachchi <ami...@wso2.com>
> wrote:
>
>> All,
>>
>> Recently I learned following in a discussion about ESB-analytics.
>>
>> 1. We have to publish the data with tenant credentials (we also need the
>> analytics car deployed in all the tenants)
>> 2. A table per tenant is created
>> 3. There is one spark script which runs across all such tables and doing
>> the summarizing
>> 4. We have to take the user to a separate dashboard to present the stats
>>
>> Above looks fine when the tenant is supposed to have more control such as
>> running their own queries against the published data.
>>
>> But, when it comes to the cloud, we face issues with facilitating the
>> above. i.e. we need to deploy the car to all tenants. Since we dont need
>> the tenant credentials, we have to think of workarounds when publishing
>> data. Asking the tenant to configure them is not a option.
>>
>> Therefore, I would like to request the following flexibility.
>>
>> 1. We should allow to decide whether to publish data in super tenant mode
>> or tenant mode
>> 2. If its the ST mode, we deploy the car in ST space.
>> 3. Data gets published and stored in one table. i.e. no table per tenant
>> 4. Spark runs against that table
>> 5. Dashboard should be a SaaS app which filters data from the analyzed
>> table.
>>
>> Can above be facilitated?
>>
>> Regards,
>> Amila.
>>
>> --
>> *Amila Maharachchi*
>> Senior Technical Lead
>> WSO2, Inc.; http://wso2.com
>>
>> Blog: http://maharachchi.blogspot.com
>> Mobile: +94719371446
>>
>>
>> ___
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> /sumedha
> m: +94 773017743
> b :  bit.ly/sumedha
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] [Analytics] Allowing analytics data to be published to super tenant space

2016-06-23 Thread Amila Maha Arachchi
All,

Recently I learned following in a discussion about ESB-analytics.

1. We have to publish the data with tenant credentials (we also need the
analytics car deployed in all the tenants)
2. A table per tenant is created
3. There is one spark script which runs across all such tables and doing
the summarizing
4. We have to take the user to a separate dashboard to present the stats

Above looks fine when the tenant is supposed to have more control such as
running their own queries against the published data.

But, when it comes to the cloud, we face issues with facilitating the
above. i.e. we need to deploy the car to all tenants. Since we dont need
the tenant credentials, we have to think of workarounds when publishing
data. Asking the tenant to configure them is not a option.

Therefore, I would like to request the following flexibility.

1. We should allow to decide whether to publish data in super tenant mode
or tenant mode
2. If its the ST mode, we deploy the car in ST space.
3. Data gets published and stored in one table. i.e. no table per tenant
4. Spark runs against that table
5. Dashboard should be a SaaS app which filters data from the analyzed
table.

Can above be facilitated?

Regards,
Amila.

-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [ESB] Deprecated features in ESB 4.10

2015-12-17 Thread Amila Maha Arachchi
Have you seen *Enqueue* and *RMSequence* mediators being used when
implementing mediation logics?

On Wed, Dec 9, 2015 at 12:11 PM, Kasun Indrasiri  wrote:

> Shall we deprecate following mediators in 4.10 release.
>
> *- Callout mediator :*
>  All the callout functionality is supported with 'call' mediator with
> blocking=true. Having two similar mediators will be create a bit of a
> confusion.
>
> *- DBReport/DBLookup mediator*
> These mediators offer very limited functionality and we always recommend
> to integrate with databases with the use of DSS (using a separate DSS or
> using DSS features inside ESB)
>
> *- Bean, POJOCommand, Spring* : Rarely used mediators and no active
> development happens on these.
> *- Router* : Same as filter mediator, so no use of having this.
> *- In, Out * : Rarely used and often not required with the new
> call/respond mediator approach.
>
> Any comments  on these or any other features that we should deprecate from
> 4.10 release?
>
> Thanks,
> Kasun.
>
> --
> Kasun Indrasiri
> Software Architect
> WSO2, Inc.; http://wso2.com
> lean.enterprise.middleware
>
> cell: +94 77 556 5206
> Blog : http://kasunpanorama.blogspot.com/
>
> ___
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] Exposing API Manager stats via an API

2015-11-26 Thread Amila Maha Arachchi
APIM Team,

Are there any plans of $Subject? Since many users are interested in using
these stats for different purposes, I think this would be very useful.

WDYT?

Regards,
Amila.

-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [AF] Integrating Greg with App Factory

2015-08-10 Thread Amila Maha Arachchi
On Wed, Aug 5, 2015 at 9:07 PM, Amalka Subasinghe ama...@wso2.com wrote:


 Hi,

 I'm going to work on $subject. Currently, AF manage registry resources
 (external apis, properties, api keys) using Stratos managers, generally it
 is not a responsibility of SM, and with the docker support in next release
 we will have 1 Stratos instance, so we are integrating Greg to manage
 resources in AF.

 Right now, We have 3 Stratos Managers for Dev, Test, Prod environments and
 we have mounted App Server registries to SMs and then all 3 registries to
 App Factory as shown in the Diagram 1. With this configuration, to save
 registry resources, we do remote call to SM and we read resources directly
 from AF registry (which improves the performance of page loading in Runtime
 Config page).


 *Diagram 1*



 *We are planning to:*

 1. Add 3 Greg instances to manage registry resources for each environment
 and mount App Server registries.

 2. With the improvement, we have discussed here [Architecture] [AF]
 Removing Registry Mounts for the Dev, Test, Prod Registries, there will
 not be registry mounts with AF, which improves performance of loading
 tenant, tenant registry and artifact, etc
 When saving registry resources, we do remote call to Greg as earlier, and
 keep only the name and description of each resource in afdb.AF_RESOURCE
 table.


Whats the authentication mechanism you are going to use when doing remote
calls to G-Reg servers?


 When loading the Runtime Config page we get data from afdb and display to
 the user.
 To see more details of the resource, there's a button in front of each
 resource to load all resource information from Greg and display.

 3. Save registry resources in config registry to give more security.
 (Currently, we save registry resources in governance registry, so it's
 accessible to any carbon server (AS, ESB, etc...))
 ​
 Diagram 2 shows how AF will be with the above improvements.


 *Diagram 2*



 Thanks
 Amalka


 ​
 ​




 ​​

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] IS Workflow Implementation - Issues in Listing Users

2015-07-29 Thread Amila Maha Arachchi
Just thinking...

What if you display a link saying Show pending users somewhere in the
user list page, and when it is clicked, get data from the workflow DBs and
show. When you are in a position to do this properly via listeners, you
will simply have to remove that link. This will simplify the logic and keep
it as it is AFAIU.

On Tue, Jul 28, 2015 at 12:35 PM, Chamila Wijayarathna cham...@wso2.com
wrote:

 Hi all,

 Currently we are in the process of implementing Workflow support for user
 operations in IS 5.1.0. One of the requirements we came up with is, when
 addUser or deleteUser operations are attached to workflows, when listing
 users, users with pending states in workflows should also be listed, but
 show them in a manner where those users can be distinguished from others.
 AddUser and deleteUser operations are implemented as we discussed in [1].

 In the current workflow implementation, when adding a User, user will only
 added to the userstore when workflow is approved and when deleting a user,
 user will be removed from user store once corresponding workflow in
 approved. Reasons for using this model has also discussed at [1].

 Currently we have came up with following issue when listing users. The
 most ideal way to address the requirement would be to read users in
 userStore from doListUsers methods and refer workflow related DB tables by
 a pre or post listener and get the complete result returned from
 UserStoremanager.listUsers. But applying these changes to listeners will
 cause API changes in carbon4-kernel and hence this will not be possible to
 do for IS 5.1.0 release.

 So currently we are planning to get user list from UserStoreManager in the
 same way it does by now and then modify the list referring to workflow
 related tables at places which uses the UserStoremanager.listUsers method
 (eg-: at components such as user-mgt, scim, etc.). There are few drawbacks
 of using this method, we’ll have to duplicate the same logic in few places
 and also if a new component uses listUser method, when implementing that
 this logic will have to include there as well.

 Thank You!


 1. [Architecture] IS Workflow Implementation - Issues in AddUser Workflow

 --
 *Chamila Dilshan Wijayarathna,*
 Software Engineer
 Mobile:(+94)788193620
 WSO2 Inc., http://wso2.com/

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Why metrics datasource not picked from master datasource

2015-07-23 Thread Amila Maha Arachchi
I think Isuru has valid reasons to maintain it as a separate datasource
file (it will help the feature to be installed without issues).

Even from a product perspective, IMO its ok to have a product specific
datasource file. For example, AFAIR, BAM has a bam-datasources.xml in it.

On Thu, Jul 23, 2015 at 12:31 PM, Isuru Perera isu...@wso2.com wrote:

 Hi,

 WSO2 Carbon Metrics [1] is an independent feature and it not part of the
 Carbon Kernel. I wanted to keep metrics configurations separate and
 therefore when products install the Metrics Feature, the metrics components
 will work without any manual changes. This fact was not discussed before
 and I just wanted metrics to be a self-contained feature.

 Since the Carbon supports loading data sources from
 $CARBON_HOME/repository/conf/datasources/*-datasources.xml files, I don't
 see any issue with keeping the metrics datasource in a separate file.

 However, from a product's perspective, I can understand that it's good to
 have datasource configurations in one file. So, for products like MB, we
 can stop copying metrics-datasources.xml file from Maven assembly and
 maintain metrics datasource in product's master-datasources.xml file.

 [1] https://github.com/wso2/carbon-metrics

 On Fri, Jul 17, 2015 at 8:38 PM, Subash Chaturanga sub...@wso2.com
 wrote:

 Hi,
 In MB 3.0 alpha pack I can see that there is a new file called
 metrics-datasources.xml.  All kernel and carbon component level data
 sources are defined in masterdatasource.xml. On top of that, any valid
 reason for this to move to a separate file. If this fact already raised in
 an old conversation and made justification, can someone please link me to
 the discussion.




 --
 Isuru Perera
 Associate Technical Lead | WSO2, Inc. | http://wso2.com/
 Lean . Enterprise . Middleware

 about.me/chrishantha
 Contact: +IsuruPereraWSO2 https://www.google.com/+IsuruPereraWSO2/about

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [IS] Service Provider/Identity Provider file base configuration in clustered environment

2015-07-21 Thread Amila Maha Arachchi
Adding SPs and IDPs via config files is very useful when managing
deployments. What if we provide a config file to add SPs and IDPs. At
server start, relevant component reads it and stores the config in
registry. So, other members in the cluster can get that info from the
registry. This will only be usable for super tenant mode. These configured
SPs and IDPs should be shown in the UI. If edited from UI, it should change
the registry config. But if that change is not in the config file, in the
next restart, it will get overwritten by the file. i.e. config file has
precedence over ui.

For tenants, this has to be allowed via the UI. When a SP or IDP is added
from UI, it should be stored in registry.

There is following option as well. That is to write a deployer for this as
IS has done in multiple userstore scenario. Then we will need dep-sync to
sync the config file across the cluster.

IMO, first approach will cause less problems. But the second approach looks
clean.

On Tue, Jul 21, 2015 at 8:16 AM, Harsha Thirimanna hars...@wso2.com wrote:

 Hi Prabath,

 Registry based dep-sync is not used and it is not supported anymore.
 Yes we are not going to implement any of this in this release. Only
 concern was without giving different solution for different places , wanted
 to get some generic solution for at least next release.
 I will create a public jira as an improvement for this and will concern
 next release.

 Thanks
 On Jul 20, 2015 7:31 PM, Prabath Siriwardena prab...@wso2.com wrote:

 I think one common problem we need to address is to deploy service
 providers/ identity providers across tenants...

 If we use a file based approach - we should only use that. Do we have the
 registry-based dep-sync working now..?

 Also -1 to do any of the changes to 5.1.0 - its already months late..

 Thanks  regards,
 -Prabath


 On Mon, Jul 20, 2015 at 2:12 AM, Harsha Thirimanna hars...@wso2.com
 wrote:

 Hi All,
 Since we support file base deployment for SP/IDP, we should have
 consistent mechanism to deploy it in clustered environment.

 *How it works now*
 We can create SP and IDP from UI and it is stored in data base, for both
 super tenant and multi-tenant mode.
 In file base, we can only create super tenant SP/IDP. It is also not
 show in the UI.

 *Problems*
 When we create IDP or SP in file, we update the database and retrieve
 from database when it wants. Every time when restart the node, we
  re-deploy all the idp configs. In cluster mode, we have to maintain same
 config file in all the node, otherwise wrong file may be updated or some
 other node will delete from database if some files not available in there.
 In claim deployment, we deployed claims from config file only in very
 first start of the server. So after that we can't change the file. We have
 to go to the UI. If we solve that problem to deploy when it change, then
 above pattern can be seen again.

 *Suggesion*
 If we consider these are as deploy-able artifact, then we can move these
 in to the deployment path and allow to dep-synch work. In that case , only
 concern is adding configs to the database or not.
 OR
 We can keep as same now and write simple deployment component base on
 database. We can delete config file  just after update the database from
 file and let user to edit from UI. If user want to change from file only,
 then he can put new config again and it will udpate database again and
 delete file in local. Then we don't want to put any file in to the other
 node in cluster. But  if we put another config file in other node, then it
 will update the database(but not a big issue).
 OR
 As same as second option in above, we can update database from reading
 file and keep the file as it is without deleting from locally. To do that
  we have to create a config to allow , one specific node to do the update
 and others are not. All the config can be seen from the UI and allow to
 edit.

 WDYT ?

 *Harsha Thirimanna*
 Senior Software Engineer; WSO2, Inc.; http://wso2.com
 * http://www.apache.org/*
 *email: **hars...@wso2.com* az...@wso2.com* cell: +94 71 5186770 *
 *twitter: **http://twitter.com/ http://twitter.com/afkham_azeez*
 *harshathirimannlinked-in: **http:
 http://lk.linkedin.com/in/afkhamazeez**//www.linkedin.com/pub/harsha-thirimanna/10/ab8/122
 http://www.linkedin.com/pub/harsha-thirimanna/10/ab8/122*

 *Lean . Enterprise . Middleware*




 --
 Thanks  Regards,
 Prabath

 Twitter : @prabath
 LinkedIn : http://www.linkedin.com/in/prabathsiriwardena

 Mobile : +1 650 625 7950

 http://blog.facilelogin.com
 http://blog.api-security.org


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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org

Re: [Architecture] Custom AS specific WebApp configuration file for web applications

2015-07-13 Thread Amila Maha Arachchi
+1 for the idea.

Can we (or, are we going to) support the existing config files for one more
release after 6.0. i.e. Code should look for this new file, if it is not
there, it should work using the old config files. This way, existing apps
will function smoothly in an AS 6.0 upgrade. I think I saw Kasun has said
that old files are going to be deprecated which means my above assumption
is right?

On Mon, Jul 13, 2015 at 12:05 PM, KasunG Gajasinghe kas...@wso2.com wrote:


 Our next release is AS 5.3.0. AS 6.0 is planned for Q4 this year. So, we
 do not need this for DevS 3.8.

 Thanks.

 On Mon, Jul 13, 2015 at 9:49 AM, Jasintha Dasanayake jasin...@wso2.com
 wrote:

 I am also +1 for having a dedicated config file for AS webApp , BTW may I
 know what is time frame for this (AS 6.0.0) , Do we need to add this
 support for upcoming DevS 3.8.0 ?

 Thanks and Regards
 /Jasintha

 On Fri, Jul 10, 2015 at 7:07 PM, Manuri Perera manu...@wso2.com wrote:

 Hi,

 I have attached the current draft of the schema and a sample XML file
 herewith.
 The file name is yet to be decided.

 Thank you.​​
 ​​​
  wso2-web-1.0.xsd
 https://drive.google.com/a/wso2.com/file/d/0B4nvDnaOipEvdjRBbjZRU2hoYTA/view?usp=drive_web
 ​​
  wso2-web-sample.xml
 https://drive.google.com/a/wso2.com/file/d/0B4nvDnaOipEvSE1LY1VnTmdJMEE/view?usp=drive_web
 ​

 On Fri, Jul 10, 2015 at 10:45 AM, Kasun Gajasinghe kas...@wso2.com
 wrote:

 Hi Susinda,

 We are deprecating the webapp-classloading.xml in favor of this config.
 There are some new configurations as well that needs to be supported in
 devS side.

 The schema is not finalized yet. Manuri will share the current draft,
 and status. Note that this is targeted for AS 6.0.

 Thanks,
 KasunG

 On Jul 10, 2015, at 9:57 AM, Susinda Perera susi...@wso2.com wrote:



 On Thu, Jul 9, 2015 at 12:12 PM, KasunG Gajasinghe kas...@wso2.com
 wrote:


 Adding DevStudio folks so that they can track this change.

 From DevStudio side what we have to give is the wso2as-web.xml file?
 Are we giving a empty xml file or do we decided any template?


 On Mon, Jul 6, 2015 at 2:20 PM, Kishanthan Thangarajah 
 kishant...@wso2.com wrote:

 Hi Sameera,

 We need to show that this file is specific to web-applications
 deployed on AS and/or any other servers with webapp-mgt + CRE features
 right?

 So can we name it as wso2-web.xml ? This way it is generic across
 the platform.

 I agree with RuwanA on the fact that wso2as.xml will be a config file
 for the AS and will not give a sense that it is only used for
 web-applications.

 Examples
 http://geronimo.apache.org/GMOxDOC30/geronimo-webxml.html

 http://docs.oracle.com/cd/E26576_01/doc.312/e24929/dd-files.htm#GSDPG00078
 https://docs.jboss.org/jbossweb/7.0.x/appdev/jbossweb.html

 Thanks,

 On Fri, Jul 3, 2015 at 3:36 PM, Sameera Jayasoma same...@wso2.com
 wrote:

 +1 for this.

 How about wso2as.xml?

 Thanks,
 Sameera.

 On Thu, Jul 2, 2015 at 7:14 PM, KasunG Gajasinghe kas...@wso2.com
 wrote:

 *Overview*

 Currently, there are several AS specific configuration options that
 are available for webapp developers when deploying webapps in AS. A 
 set of
 identified configurations we have are as follows.

 1. Configure the ClassLoader Runtime Environment and Classloading
 for web apps (such as Carbon/CXF/Tomcat/...)
 2. Mark a JAX-RS webapp to be published as a Managed API for
 API-Everywhere story.
 3. Enable Single Sign On support for webapps
 4. Webapp SaaS configurations.
 5. Enable WebApp Statistics publishing to DAS/BAM

 *Why?*

 Right now, we are using different mechanisms to configure these.
 Mostly, we ask webapp developers to put the configuration options as a
 context-param in the web.xml. We also have a custom AS specific
 configuration file called webapp-classloaading.xml to configure
 classloading runtimes.

 Using web.xml for this purpose is not a clean approach since
 web.xml it should only contain configurations that are portable across
 different application servers. For this purpose, Tomcat uses a custom
 context.xml to put Tomcat specific configurations. JBoss has 
 jboss-web.xml.
 WebLogic has weblogic.xml, and so on..

 *How?*

 The idea here is to generalize the current webapp-classloading.xml
 we already have into a configuration file where all the webapp related 
 WSO2
 AS configurations can be put. We could name this file as 
 wso2as-web.xml or
 wso2as-application.xml.

 This is targeted for AS6 for immediate use with API-Everywhere
 feature. The implementation is fairly simple, and may be carried out 
 as a
 fast-track training project.

 WDYT?

 Thanks,
 KasunG

 --

 *Kasun Gajasinghe*Senior Software Engineer, WSO2 Inc.
 email: kasung AT spamfree wso2.com
 linked-in: http://lk.linkedin.com/in/gajasinghe
 blog: http://kasunbg.org






 --
 Sameera Jayasoma,
 Software Architect,

 WSO2, Inc. (http://wso2.com)
 email: same...@wso2.com
 blog: http://blog.sameera.org
 twitter: https://twitter.com/sameerajayasoma
 flickr: 

Re: [Architecture] Configurable Lifecycle Stages for AppFactory

2015-06-25 Thread Amila Maha Arachchi
Question to AF team:
At the moment, there is a runtime associated with each lifecycle stage.
i.e. Dev for Dev, Test for Test etc. This is not going to change, right? My
concern is, when a user adds a new stage, how are we going to provide the
runtime for it? In the public cloud scenario, we have pre-defined
runtimes/stages. When this new UI/Feature rolls out, how is it going to
work in the cloud?

On Mon, Jun 22, 2015 at 3:01 PM, Dimuthu Leelarathne dimut...@wso2.com
wrote:

 Hi,

 IMO, we need to simplify app creation as much as possible to make it user
 friendly.

 thanks,
 dimuthu


 On Mon, Jun 22, 2015 at 9:59 AM, Manjula Rathnayake manju...@wso2.com
 wrote:

 Hi Bimali,

 Regarding the attached flow,
 Instead of adding more stages while creating the application, can we
 enable a page to define life cycle configurations. Then at the time of
 application creation, user can select one of those life cycle
 configurations. The advantage over what you have suggested is that we can
 reuse life cycle configurations for multiple apps and we can govern who can
 define life cycle configurations.

 thank you.


 On Fri, Jun 19, 2015 at 8:29 PM, Bimali Dayananda bim...@wso2.com
 wrote:

 Hi,

 Currently in the AppFactory there are three stages called Development,
 Testing and Production for a life cycle.

 Problem:
 The users who create applications can use only the predefined stages.

 Solution:
 Let the user to decide life cycle stages in  each application or else
 they can use the default life cycle.

 Below attachments are the rough sketches of flow diagram and the
 interface design I have planned for the task.

 Your comments and suggestions are highly valued.

 Thank you.

 --
 Bimali Dayananda
 Intern-Software Engineering
 Mobile : +94(77) 571 6618
 bim...@wso2.com

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




 --
 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




 --
 Dimuthu Leelarathne
 Director  Product Lead of App Factory

 WSO2, Inc. (http://wso2.com)
 email: dimut...@wso2.com
 Mobile : 0773661935

 Lean . Enterprise . Middleware

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [AppFactory] Scalable Jenkins deployment for App Facroty

2015-04-22 Thread Amila Maha Arachchi
+1

This looks clean and easy to scale.

On Wed, Apr 22, 2015 at 1:26 PM, Samith Dassanayake sam...@wso2.com wrote:

 Hi all,
 I have started to working on $subject [1] problem definition as proposed
 solution as below.

 Problem
 Jenkins remains one of App Cloud weakest links: it is not highly
 available, does not scale well, and increasingly fails with OOM. The
 current deployment of Jenkins is not scalable. We give one Jenkins per
 tenant. Therefore we have come with a more scalable model for jenkins in
 App Factory.

 Proposed solution
 Instead of having one jenkins per tenant, we will have jenkins as
 an underlying service. According to the [2] and [3] distributing the jobs
 among multiple jenkins(clusters) is the more scalable way for jenkins. When
 we create a job, the job will be created in the format of
 tenantDomain_appkey_version and each tenant will have a shared maven repo.
 But with growth of number tenants, number of jobs will be increased.
 Therefore we have to come up with a job distributing mechanism with
 Jenkins clusters. If we use a simple job distributing method, based on
 the number of jenkins clusters, when number of clustered has to be
 increased, we have to migrate all jobs according to their new cluster
 values. As a solution for that, after discussing with Srinath, we came up
 with a bucketing mechanism to do the job distribution. Solution would be
 like below.


 [image: Inline image 1]


 We'll have pre-defined number of buckets(large value eg: 256).
 Each bucket will deployed on one of the jenkins clusters and one jenkins
 cluster will have multiple buckets.
 During the job creation, we decide bucket id for the job, based on the
 tenantDomain and number of buckets.(Therefore jobs with same tenantDomain
 will always be stored in same bucket)

 ex: hash(tenantDomain) % number of buckets = bukcetId

 Therefore once the cluster size is increased we only have move the
 relevant buckets, instead of redistributing all the jobs.

 Please let me know any suggestions/feedback.

 [1] https://redmine.wso2.com/issues/3757
 [1]
 https://wiki.jenkins-ci.org/display/JENKINS/Consideration+for+Large+Scale+Jenkins+Deployment
 [2]
 http://www.slideshare.net/andrewbayer/7-habits-of-highly-effective-jenkins-users
 [4]
 http://soldering-iron.blogspot.com/2014/01/jenkins-performance-hints.html

 Thanks,
 Samith

 --
 Best Regards

 Samith Dassanayake
 Software Engineer | Cloud TG
 WSO2, Inc. | http://wso2.com
 lean. enterprise. middleware

 Mobile : +947 76207351




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Tenant deletion ui level intergration

2014-11-20 Thread Amila Maha Arachchi
Hi Shashika,

We have done the necessary changes to Kernel 4.3.0. There are some changes
to be done for tenant.mgt code and the listerners who has implemented the
TenantMgtListener interface. Lets have a chat on how to complete all these
tasks in order to implement a successful tenant deletion.

Please arrange a meeting.

Regards,
Amila.

On Thu, Nov 20, 2014 at 11:36 AM, Shashika Karunatilaka shashi...@wso2.com
wrote:

 Hi all,
 Currently i'm in the process of integrating tenant deletion in UI level in
 App Server

 Approach:

- Created the UI button to delete the tenant as below


- From That UI level call the tenant deletion functionality
implemented recently in TenantMgtAdminService. Detailed description about
recent implementation can found in [1]

 https://docs.google.com/a/wso2.com/document/d/1FOh6MDqD8Qnuhw7I9JguN8SsDBrmVQNGxG_fghFjVNE/edit



 ​

 [1]
 https://docs.google.com/a/wso2.com/document/d/1FOh6MDqD8Qnuhw7I9JguN8SsDBrmVQNGxG_fghFjVNE/edit

 Thank You.


 --
 Shashika Prabath Karunatilaka,
 Software Engineer,
 WSO2, Inc: http://wso2.com/
 mobile : +94 77 7487792




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Deletion of tenant data related to API Manager

2014-09-23 Thread Amila Maha Arachchi
+1 with few suggestions.

Always use meaningful names.

tenantDataTables - tenantDataDeleter.xml
deleteTenantTableData - delete ProductSpecificTenantData

On Wed, Sep 24, 2014 at 12:06 AM, Mahesh Chinthaka mahe...@wso2.com wrote:

 Hi All,
 After several offline discussions we concluded following.

 This deletion of tenant related data in tables scenario is pretty much
 common to several other products as well(eg : IS). Therefore we need to
 implement this in a way that the method is commonly accessible for each and
 every product.
 Then not only the API Manager (which is already in cloud) other future
 products which will enter the cloud, will also be able to delete tenant
 related table data. Following will be our approach.

 1. Each product will have *tenantDataTables.xml* file configured with
 table names(according to deletion order) and data source name


 2. New method called *deleteTenantTableData* will be implemented inside
 *TenantMgtutil* class to run *DELETE* queries for a given table name
  and a given tenant id.


 3. Inside *onPredDelete* method of *each product's TenantMgtListener*(eg:
 APIMgtTenantMgtListener)* , *above method will be called with the table
 names grabbed from xml file of that product

 Any thoughts on this will be much appreciated...

 Thanks

 On Thu, Sep 18, 2014 at 11:53 AM, Lakshman Udayakantha lakshm...@wso2.com
  wrote:

 Hi All,

 We are implementing deletion of tenant data from API Manager. According
 to the offline chat with AmilaD, we have to delete a folder created in
 CARBON_HOME/repository/tenants/$tenantId. After that we have to delete
 database entries from WSO2AM_DB. Here we have to search the tenant data
 from tenant id, and delete them all. But due to some restriction
 constraints(FK,PFK,FAK) data deletion order of tables as we recognised can
 be listed below.


 SP_FEDERATED_IDP
 SP_AUTH_STEP
 SP_CLAIM_MAPPING
 SP_INBOUND_AUTH
 SP_ROLE_MAPPING
 SP_REQ_PATH_AUTHENTICATOR
 SP_PROVISIONING_CONNECTOR
 SP_APP



 IDP_AUTHENTICATOR_PROPERTY
 IDP_AUTHENTICATOR
 IDP_LOCAL_CLAIM
 IDP_CLAIM_MAPPING
 IDP_CLAIM
 IDP_ROLE_MAPPING
 IDP_ROLE
 IDP_PROV_CONFIG_PROPERTY
 IDP_PROVISIONING_ENTITY
 IDP_PROVISIONING_CONFIG
 IDP

















 *AM_APPLICATION_REGISTRATIONAM_APPLICATION_KEY_MAPPINGAM_SUBSCRIPTION_KEY_MAPPINGAM_SUBSCRIPTIONAM_APPLICATIONAM_API_RATINGSAM_API_COMMENTSAM_EXTERNAL_ROLESAM_API_SCOPESIDN_OAUTH2_RESOURCE_SCOPEIDN_OAUTH2_SCOPEAM_API_LC_EVENTAM_APIAM_SUBSCRIBER*









 *IDN_OAUTH2_AUTHORIZATION_CODEIDN_OAUTH1A_REQUEST_TOKENIDN_OAUTH1A_ACCESS_TOKENIDN_OAUTH2_ACCESS_TOKENAM_APP_KEY_DOMAIN_MAPPINGIDN_OAUTH_CONSUMER_APPS*


 Is this approach ok or are there any better approaches to do this? is it
 is ok, please suggest for any improvements.

 Thanks
 Lakshman
 --
 Lakshman Udayakantha
 Software Engineer, WSO2
 Mobile: *0711241005*

 *lakshm...@wso2.com lakshm...@wso2.com*


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




 --
 *Mahesh Chinthaka Vidanagama* | Software Engineer
 WSO2, Inc | lean. enterprise. middleware.
 #20, Palm Grove, Colombo 03, Sri Lanka
 Mobile: +94 71 63 63 083 | Work: +94 112 145 345
 Email: mahe...@wso2.com ar...@wso2.com | Web: www.wso2.com




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] A mechanism to communicate server shutdown to the bundles, just before actual server shutdown

2014-09-13 Thread Amila Maha Arachchi
On Thu, Sep 11, 2014 at 10:47 PM, Jayanga Dissanayake jaya...@wso2.com
wrote:

 Hi,

 There was a requirement to detect the server shutdown from some bundles
 before the OSGi framework begin to shutdown. Because there were situations
 where some bundle have there own  transports. If server shutdown happens
 while there were buffered messages, those should be processes before that
 particular bundle get deactivated.

 As the bundle stopping sequence is not guaranteed in OSGi environments,
 There may be some required bundles/services already being stopped when that
 particular bundle wants to do the finalizing tasks.

 So, as a solution I tried the following,
 Register an OSGi service CarbonServerShutdownPrepareService in the
 shutdownGracefully() before the actual server shutdown is called.  So, just
 before the server shutdown CarbonServerShutdownPrepareService get
 activated.
 Then add some dummy OSGi Declarative Service components, that is waiting
 for  ”CarbonServerShutdownPrepareService”,
 Then start the server and shutdown the server,

 Observations,
 When the server is shutting down,
 1. first it registers the service “CarbonServerShutdownPrepareService”
 2. then all the bundles waiting for that service get activated, (if there
 are listers or trackers, those get notified)
 3. then actual server shutdown happens


AFAIK, OSGi services are registered when the components startup. Here, you
have said that  CarbonServerShutdownPrepareService is registered when the
server is shut down. This is not clear to me.

Did you mean the following approach:
1. Register an OSGi service at the server startup.
2. Add declarative service dependencies to the bundles which needs to be
notified about the shutdown. These bundles should implement a listener or a
tracker.
3. When the server shutdown is called, it notifies the dependents. Is this
sequential?

It seems that I don't understand something here. If it is the case, please
explain it to me. :)

Thanks.


 As the osgi framework's service registration and un-registration happens
 in a single thread, It is guaranteed that registration of
 “CarbonServerShutdownPrepareService” and notification of that registration
 to the other bundles happens in a sequential manner in a single thread.

 So, any bundle can perform there house keeping tasks that has to carry out
 just before the server shutdown.

 Suggestions, improvements and alternatives are welcome

 Thanks,
 *Jayanga Dissanayake*
 Senior Software Engineer
 WSO2 Inc. - http://wso2.com/
 lean . enterprise . middleware
 email: jaya...@wso2.com
 mobile: +94772207259




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Cloud Tenant deletion caching issue

2014-09-09 Thread Amila Maha Arachchi
+1

I remember there were two maps or a bidi-map. i.e. It was tracking both
tenant ID and tenant domain. Make sure both issues are addressed (if my
concern is valid).

On Tue, Sep 9, 2014 at 3:37 AM, Godwin Amila Shrimal god...@wso2.com
wrote:

 Hi.

 We had a discussion about cleaning cache data (delete map entry in
 *JDBCTenantManger*), As per the discussion, we have to use cluster
 message to notify all the nodes in the clustered environment to delete
 the map entry.  Then we have to give a public method in *JDBCTenantManger* to
 delete the entry which is accessible from the *execute* method of the
 cluster message.

 listed below the summary of the implementation.

 1. Create a new public method in *JDBCTenantManger *to delete the map
 entry.
 2. Create a new class which extends ClusteringMessage and implements
 Serializable.
 3. Implement the *execute* method on above class to perform the delete
 map entry method inside the *JDBCTenantManger.*
 4. When execute the deleteTenant method in *TenantMgtAdminService, *create
 a object from new Cluster Message class created in #2 and set the tenantId
 as a property and send to all nodes in the cluster.
 5. Nodes will receive the above message, deserialize it and perform the
 execute method of the cluster message, which will delete the map entry in
 each nodes.


 Please give a feedback on this.


 Thanks
 Godwin















 On Mon, Sep 8, 2014 at 10:07 AM, Godwin Amila Shrimal god...@wso2.com
 wrote:

 Hi All,

 Thanks for the valuable responses, As I understood we have to use cluster
 messages(Which I need to study more) to delete the map entry in each nodes
 in clustered environment.
 @Danushka: Yes we can use the existing deleteTenant method in
 *JDBCTenantManger*.

 Thanks
 Godwin


 On Sun, Sep 7, 2014 at 9:59 PM, Danushka Fernando danush...@wso2.com
 wrote:

 Hi

 On Sun, Sep 7, 2014 at 6:59 PM, Johann Nallathamby joh...@wso2.com
 wrote:




 On Sun, Sep 7, 2014 at 6:29 PM, Danushka Fernando danush...@wso2.com
 wrote:

 Hi
 To the first most problem raised by Goodwin, AFAIU when you call
 tenant deletion you call deleteTenant in TenantManager. So why cant you
 clear the tenant from the map in JDBCTenantManger's deleteTenant method?


 Yes. Should be able to do that. But as Shankar explained we need to
 send cluster messages to do the same in all the nodes.

 Yes I also agree to that point. +1.


 Thanks  Regards
 Danushka Fernando
 Software Engineer
 WSO2 inc. http://wso2.com/
 Mobile : +94716332729


 On Sat, Sep 6, 2014 at 8:20 PM, Nirmal Fernando nir...@wso2.com
 wrote:

 Shouldn't this tenant event listener be triggered in all the nodes in
 the cluster? If not, I think we might need to fix it.


 On Sat, Sep 6, 2014 at 10:00 AM, Selvaratnam Uthaiyashankar 
 shan...@wso2.com wrote:

 Even if we have public method, how will it work in a clustered
 environment? For example, delete request is sent to Node1, (and lets say
 one way or the other we delete the entry from map on Node1), and create
 request is sent to Node 2 (which still has the entry in the map). Are we
 going to use cluster messages to clear the entry from all nodes?


 On Friday, September 5, 2014, Nirmal Fernando nir...@wso2.com
 wrote:

 I think that should be ok. @Johann wdyt?


 On Fri, Sep 5, 2014 at 8:23 PM, Godwin Amila Shrimal 
 god...@wso2.com wrote:

 Hi Nirmal,

 Yes we can do it, But current map doesn't have public access, then
 we need to have a public method inside the *JDBCTenantManager *to
 delete the entry.


 On Fri, Sep 5, 2014 at 8:00 PM, Nirmal Fernando nir...@wso2.com
 wrote:

 Can't we use a tenant event listener and remove the entry from
 the map on a tenant deletion event?


 On Fri, Sep 5, 2014 at 7:50 PM, Godwin Amila Shrimal 
 god...@wso2.com wrote:

 Hi,

 We are working on tenant deletion implementation, once we
 perform the current tenant deletion operation in
 *TenantMgtAdminService* it deletes registry, user store etc.
 data. But it doesn't allow to create a tenant again with the same 
 tenant
 domain name until restart the server.

 Reason for above situation is tenant domain and id is keeping in
 a map(*tenantDomainIdMap*) inside the *JDBCTenantManager*. When
 perform delete operation it check the availability from this map.

 As per the discussion we can see following solutions for this.

 *Solution1*
 Check the tenant availability from database not from memory
 data, but this will be costly if it is a frequently perform 
 operation.

 *Solution2*
 We can give a public access to delete the particular key in the
 map, this will be a security issue which people can pass tenant 
 domain and
 perform deletion.

 *Solution3*
 Run a periodic operation which check the availability of the
 tenant in the database and delete from map which are not exist.


 We are looking for a feedback on this.

 Thanks
 Godwin


 --
 *Godwin Amila Shrimal*
 Senior Software Engineer
 WSO2 Inc.; http://wso2.com
 lean.enterprise.middleware

 mobile: *+94772264165*
 linkedin: 

Re: [Architecture] [Cloud] Tenant deletion

2014-08-25 Thread Amila Maha Arachchi
On Monday, August 25, 2014, Dimuthu Leelarathne dimut...@wso2.com wrote:

 Hi Amila,

 You are only repeating what I have said in my previous mail.


Well... That only contained a solution for a standalone product. To make
this working for both standalone product and a distributed deployment we
had to discuss for two hours and the missing pieces in your mail can be
found in my one.

Intention of my mail was to provide the final summary for others
information.


 thanks,
 dimuthu


 On Mon, Aug 25, 2014 at 7:22 PM, Amila Maha Arachchi ami...@wso2.com
 javascript:_e(%7B%7D,'cvml','ami...@wso2.com'); wrote:

 Following is the finally agreed approach.

 1. TenantMgtListener will have a preDelete() method.
 2. deleteTenant() of TenantMgtAdminService will notify the listeners at
 the beginning.
 3. We need to set a flag whether to completely remove the tenant or not
 (i.e. delete from registry and LDAP). If this flag is set to true,
 deleteTenant() remove the tenant completely. If not, it will just invoke
 the listeners and return.

 With 1,2,3, any standalone product will be able to support tenant
 deletion properly and it will be product teams' responsibility to cleanup
 everything properly by implementing the preDelete() method.

 But, for a distributed deployment such as WSO2 Cloud, we need to
 coordinate with multiple clouds and, iff all the clouds has done the
 cleanup only, we can delete the tenant permanently. For this, we will be
 writing a BPEL which will invoke the deleteTenant() of the available clouds
 (i.e. AF and APIM). Both above products will have the previously mentioned
 flag set to false. For the cloud deployment, we'll have a separate carbon
 server with the flag set to true and once its deleteTenant() is invoked,
 tenant will be deleted completely.

 Azeez, we would like to know your feedback too on this.

 Regards,
 Amila.


 On Sat, Aug 23, 2014 at 8:40 PM, Amila Maha Arachchi ami...@wso2.com
 javascript:_e(%7B%7D,'cvml','ami...@wso2.com'); wrote:




 On Sat, Aug 23, 2014 at 3:12 AM, Dimuthu Leelarathne dimut...@wso2.com
 javascript:_e(%7B%7D,'cvml','dimut...@wso2.com'); wrote:




 On Fri, Aug 22, 2014 at 10:01 PM, Godwin Amila Shrimal god...@wso2.com
 javascript:_e(%7B%7D,'cvml','god...@wso2.com'); wrote:


 Hi Amila,


 As per the discussion we had with Dimuthu and AF team. Listed below
 the decision made to implement this.


 1. Add onDelete() and onPreDelete() methods to TenantMgtListener
 interface


 Add the onPreDelete() method to TenantMgtListener interface and call
 that method from the deleteTenant of the TenantMgtService. I don't see the
 point of adding onDelete method to TenantMgtListenter interface currently.


 I see couple of problems with this approach.

 1. Since this involved an interface change, we are going to get trouble
 when using this with existing products in our setup. We'll have to patch
 their tenant.mgt code and all implementations of the listener.
 2. Even if we add the onPreDelete method, it will only execute the
 implementation classes in that jvm only. So, if I call the deleteTenant
 method in AF, it won't affect other products such as SS, Jenkins AS,
 Stratos Manager.  This will end of tenants' bits and pieces remaining in
 other products even after we delete the tenant.

 Do we have a solution for this?






 2. Implement those methods in AppFactoryTenantMgtListener as we
 discussed.

 3. We don’t use any BPEL implementation and use the existing listeners
 to implement this

 4.  Future Cloud products can implement the onDelete() and
 onPreDelete() methods in TenantMgtListener interface



 thanks,
 dimuthu



  Please share your feedback on this.

 Thanks
 Godwin






 On Fri, Aug 22, 2014 at 6:09 PM, Amila Maha Arachchi ami...@wso2.com
 javascript:_e(%7B%7D,'cvml','ami...@wso2.com'); wrote:

 +1 for preOnDelete method. Actually there is a place which has this
 kind of an implementation. Thats the user.core. So, we can learn from it
 and do this implementation.

 BTW,

 Mahesh, can you post what did you agreed online+offline?


 On Fri, Aug 22, 2014 at 4:51 PM, Mahesh Chinthaka mahe...@wso2.com
 javascript:_e(%7B%7D,'cvml','mahe...@wso2.com'); wrote:

 Thanks Dimuthu, Danushka  Ajanthan  for your feedback.
 We will do this with the approach discussed online+offline.


 On Fri, Aug 22, 2014 at 10:59 AM, Danushka Fernando 
 danush...@wso2.com
 javascript:_e(%7B%7D,'cvml','danush...@wso2.com'); wrote:

 Hi
 +1 for the OnPreDelete concept. But the thing is we don't have this
 Pre and Post events anywhere in platform. I think that's something we
 should consider about. WDYT?

 Thanks  Regards
 Danushka Fernando
 Software Engineer
 WSO2 inc. http://wso2.com/
 Mobile : +94716332729


 On Fri, Aug 22, 2014 at 9:14 AM, Dimuthu Leelarathne 
 dimut...@wso2.com
 javascript:_e(%7B%7D,'cvml','dimut...@wso2.com'); wrote:

 Hi Mahesh all,

 Lets consider Carbon Platform aspect first.

 Before we remove tenant from user core and registry, we have to
 delete

Re: [Architecture] [Cloud] Tenant deletion

2014-08-23 Thread Amila Maha Arachchi
On Sat, Aug 23, 2014 at 3:12 AM, Dimuthu Leelarathne dimut...@wso2.com
wrote:




 On Fri, Aug 22, 2014 at 10:01 PM, Godwin Amila Shrimal god...@wso2.com
 wrote:


 Hi Amila,


 As per the discussion we had with Dimuthu and AF team. Listed below the
 decision made to implement this.


 1. Add onDelete() and onPreDelete() methods to TenantMgtListener interface


 Add the onPreDelete() method to TenantMgtListener interface and call that
 method from the deleteTenant of the TenantMgtService. I don't see the point
 of adding onDelete method to TenantMgtListenter interface currently.


I see couple of problems with this approach.

1. Since this involved an interface change, we are going to get trouble
when using this with existing products in our setup. We'll have to patch
their tenant.mgt code and all implementations of the listener.
2. Even if we add the onPreDelete method, it will only execute the
implementation classes in that jvm only. So, if I call the deleteTenant
method in AF, it won't affect other products such as SS, Jenkins AS,
Stratos Manager.  This will end of tenants' bits and pieces remaining in
other products even after we delete the tenant.

Do we have a solution for this?






 2. Implement those methods in AppFactoryTenantMgtListener as we discussed.

 3. We don’t use any BPEL implementation and use the existing listeners to
 implement this

 4.  Future Cloud products can implement the onDelete() and onPreDelete()
 methods in TenantMgtListener interface



 thanks,
 dimuthu



  Please share your feedback on this.

 Thanks
 Godwin






 On Fri, Aug 22, 2014 at 6:09 PM, Amila Maha Arachchi ami...@wso2.com
 wrote:

 +1 for preOnDelete method. Actually there is a place which has this kind
 of an implementation. Thats the user.core. So, we can learn from it and do
 this implementation.

 BTW,

 Mahesh, can you post what did you agreed online+offline?


 On Fri, Aug 22, 2014 at 4:51 PM, Mahesh Chinthaka mahe...@wso2.com
 wrote:

 Thanks Dimuthu, Danushka  Ajanthan  for your feedback.
 We will do this with the approach discussed online+offline.


 On Fri, Aug 22, 2014 at 10:59 AM, Danushka Fernando danush...@wso2.com
  wrote:

 Hi
 +1 for the OnPreDelete concept. But the thing is we don't have this
 Pre and Post events anywhere in platform. I think that's something we
 should consider about. WDYT?

 Thanks  Regards
 Danushka Fernando
 Software Engineer
 WSO2 inc. http://wso2.com/
 Mobile : +94716332729


 On Fri, Aug 22, 2014 at 9:14 AM, Dimuthu Leelarathne 
 dimut...@wso2.com wrote:

 Hi Mahesh all,

 Lets consider Carbon Platform aspect first.

 Before we remove tenant from user core and registry, we have to
 delete it from all other places. So +1 for the interface that would allow
 different product teams to clean up their cleanup process, but here is 
 what
 I recommend,

 We need a method call onPreDelete() on TenantMgtListener. This is
 to allow all product teams to implement it. So the first rule of thumb 
 is,
 if any product is moving to cloud they must implement this method and 
 prove
 that they clean up the tenant before they move to WSO2Cloud.

 So basically, in tenant.core what you have to do is call all OSGi
 registered TenantMgtListener's onPreDelete(), and after that delete from
 registry and finally user.core.

 That would be the most elegant and extensible fix for platform.

 Now we come to AF as a product/solution. We have to implement
 onPreDelete() method. So we as a product team should decide whether we 
 are
 going to implement it from BPEL or not. So as a product in order to be
 WSO2Cloud friendly we have to implement onPreDelete() method. From what I
 feel, I believe the way to do is code + BPEL.

 thanks,
 dimuthu


 On Fri, Aug 22, 2014 at 7:26 AM, Ajanthan Balachandran 
 ajant...@wso2.com wrote:




 On Fri, Aug 22, 2014 at 5:48 AM, Danushka Fernando 
 danush...@wso2.com wrote:

 Hi Ajanthan
 Problem with OnDelete is it is called after tenant deleted (After
 deleting userstore and registry). But we need to cleanup before that
 otherwise we cannot call admin services since tenant is not there. As 
 per I
 mentioned in the previous thread we need to call this at a OnPreDelete.

 IMO OnDelete method should be called as first step.

 @Mahesh : I think you have missed delete applications step. And
 delete applications step would Issue tracker details as well I guess. @
 Ajanthan : Correct me if I am wrong.

 Looping through each applications and deleting will not be a salable
 solution.

 Thanks  Regards
 Danushka Fernando
 Software Engineer
 WSO2 inc. http://wso2.com/
 Mobile : +94716332729


 On Thu, Aug 21, 2014 at 8:46 PM, Ajanthan Balachandran 
 ajant...@wso2.com wrote:




 On Thu, Aug 21, 2014 at 8:24 PM, Mahesh Chinthaka 
 mahe...@wso2.com wrote:

 Hi Everyone,


 We are working on the Training Project -[Cloud] Tenant deletion
 code/script for cloud - https://redmine.wso2.com/issues/3121.
 Listed below the  workflow of the tenant deletion process in the App

Re: [Architecture] [Cloud] Tenant deletion

2014-08-23 Thread Amila Maha Arachchi
This is definitely going to be available for standalone products :)

At the moment our target is Cloud deployment. i.e. 4.2.0 products. But,
this will definitely added to trunk.


On Sat, Aug 23, 2014 at 9:01 PM, Kasun Gajasinghe kas...@wso2.com wrote:

 Hi,

 Curious to know couple of things..

 Will this be available for stand-alone products as well? tenant-deletion
 is a requirement for stand-alone products as well, so it would be good if
 this is available in stand-alone products as well.

 Where will the development happen? For Carbon trunk, the tenant-mgt code
 can be found here [1] and the tenant-mgt code is no longer available in
 Stratos. Will you also be using the trunk?

 [1]
 https://github.com/wso2/carbon-multitenancy/tree/master/components/tenant-mgt

 Thanks,
 KasunG


 On Sat, Aug 23, 2014 at 8:40 PM, Amila Maha Arachchi ami...@wso2.com
 wrote:




 On Sat, Aug 23, 2014 at 3:12 AM, Dimuthu Leelarathne dimut...@wso2.com
 wrote:




 On Fri, Aug 22, 2014 at 10:01 PM, Godwin Amila Shrimal god...@wso2.com
 wrote:


 Hi Amila,


 As per the discussion we had with Dimuthu and AF team. Listed below the
 decision made to implement this.


 1. Add onDelete() and onPreDelete() methods to TenantMgtListener
 interface


 Add the onPreDelete() method to TenantMgtListener interface and call
 that method from the deleteTenant of the TenantMgtService. I don't see the
 point of adding onDelete method to TenantMgtListenter interface currently.


 I see couple of problems with this approach.

 1. Since this involved an interface change, we are going to get trouble
 when using this with existing products in our setup. We'll have to patch
 their tenant.mgt code and all implementations of the listener.
 2. Even if we add the onPreDelete method, it will only execute the
 implementation classes in that jvm only. So, if I call the deleteTenant
 method in AF, it won't affect other products such as SS, Jenkins AS,
 Stratos Manager.  This will end of tenants' bits and pieces remaining in
 other products even after we delete the tenant.

 Do we have a solution for this?






 2. Implement those methods in AppFactoryTenantMgtListener as we
 discussed.

 3. We don’t use any BPEL implementation and use the existing listeners
 to implement this

 4.  Future Cloud products can implement the onDelete() and
 onPreDelete() methods in TenantMgtListener interface



 thanks,
 dimuthu



  Please share your feedback on this.

 Thanks
 Godwin






 On Fri, Aug 22, 2014 at 6:09 PM, Amila Maha Arachchi ami...@wso2.com
 wrote:

 +1 for preOnDelete method. Actually there is a place which has this
 kind of an implementation. Thats the user.core. So, we can learn from it
 and do this implementation.

 BTW,

 Mahesh, can you post what did you agreed online+offline?


 On Fri, Aug 22, 2014 at 4:51 PM, Mahesh Chinthaka mahe...@wso2.com
 wrote:

 Thanks Dimuthu, Danushka  Ajanthan  for your feedback.
 We will do this with the approach discussed online+offline.


 On Fri, Aug 22, 2014 at 10:59 AM, Danushka Fernando 
 danush...@wso2.com wrote:

 Hi
 +1 for the OnPreDelete concept. But the thing is we don't have this
 Pre and Post events anywhere in platform. I think that's something we
 should consider about. WDYT?

 Thanks  Regards
 Danushka Fernando
 Software Engineer
 WSO2 inc. http://wso2.com/
 Mobile : +94716332729


 On Fri, Aug 22, 2014 at 9:14 AM, Dimuthu Leelarathne 
 dimut...@wso2.com wrote:

 Hi Mahesh all,

 Lets consider Carbon Platform aspect first.

 Before we remove tenant from user core and registry, we have to
 delete it from all other places. So +1 for the interface that would 
 allow
 different product teams to clean up their cleanup process, but here is 
 what
 I recommend,

 We need a method call onPreDelete() on TenantMgtListener. This is
 to allow all product teams to implement it. So the first rule of thumb 
 is,
 if any product is moving to cloud they must implement this method and 
 prove
 that they clean up the tenant before they move to WSO2Cloud.

 So basically, in tenant.core what you have to do is call all OSGi
 registered TenantMgtListener's onPreDelete(), and after that delete 
 from
 registry and finally user.core.

 That would be the most elegant and extensible fix for platform.

 Now we come to AF as a product/solution. We have to implement
 onPreDelete() method. So we as a product team should decide whether we 
 are
 going to implement it from BPEL or not. So as a product in order to be
 WSO2Cloud friendly we have to implement onPreDelete() method. From 
 what I
 feel, I believe the way to do is code + BPEL.

 thanks,
 dimuthu


 On Fri, Aug 22, 2014 at 7:26 AM, Ajanthan Balachandran 
 ajant...@wso2.com wrote:




 On Fri, Aug 22, 2014 at 5:48 AM, Danushka Fernando 
 danush...@wso2.com wrote:

 Hi Ajanthan
 Problem with OnDelete is it is called after tenant deleted (After
 deleting userstore and registry). But we need to cleanup before that
 otherwise we cannot call admin services since tenant

Re: [Architecture] [Cloud] Tenant deletion

2014-08-22 Thread Amila Maha Arachchi
+1 for preOnDelete method. Actually there is a place which has this kind of
an implementation. Thats the user.core. So, we can learn from it and do
this implementation.

BTW,

Mahesh, can you post what did you agreed online+offline?


On Fri, Aug 22, 2014 at 4:51 PM, Mahesh Chinthaka mahe...@wso2.com wrote:

 Thanks Dimuthu, Danushka  Ajanthan  for your feedback.
 We will do this with the approach discussed online+offline.


 On Fri, Aug 22, 2014 at 10:59 AM, Danushka Fernando danush...@wso2.com
 wrote:

 Hi
 +1 for the OnPreDelete concept. But the thing is we don't have this Pre
 and Post events anywhere in platform. I think that's something we should
 consider about. WDYT?

 Thanks  Regards
 Danushka Fernando
 Software Engineer
 WSO2 inc. http://wso2.com/
 Mobile : +94716332729


 On Fri, Aug 22, 2014 at 9:14 AM, Dimuthu Leelarathne dimut...@wso2.com
 wrote:

 Hi Mahesh all,

 Lets consider Carbon Platform aspect first.

 Before we remove tenant from user core and registry, we have to delete
 it from all other places. So +1 for the interface that would allow
 different product teams to clean up their cleanup process, but here is what
 I recommend,

 We need a method call onPreDelete() on TenantMgtListener. This is to
 allow all product teams to implement it. So the first rule of thumb is, if
 any product is moving to cloud they must implement this method and prove
 that they clean up the tenant before they move to WSO2Cloud.

 So basically, in tenant.core what you have to do is call all OSGi
 registered TenantMgtListener's onPreDelete(), and after that delete from
 registry and finally user.core.

 That would be the most elegant and extensible fix for platform.

 Now we come to AF as a product/solution. We have to implement
 onPreDelete() method. So we as a product team should decide whether we are
 going to implement it from BPEL or not. So as a product in order to be
 WSO2Cloud friendly we have to implement onPreDelete() method. From what I
 feel, I believe the way to do is code + BPEL.

 thanks,
 dimuthu


 On Fri, Aug 22, 2014 at 7:26 AM, Ajanthan Balachandran 
 ajant...@wso2.com wrote:




 On Fri, Aug 22, 2014 at 5:48 AM, Danushka Fernando danush...@wso2.com
 wrote:

 Hi Ajanthan
 Problem with OnDelete is it is called after tenant deleted (After
 deleting userstore and registry). But we need to cleanup before that
 otherwise we cannot call admin services since tenant is not there. As per 
 I
 mentioned in the previous thread we need to call this at a OnPreDelete.

 IMO OnDelete method should be called as first step.

 @Mahesh : I think you have missed delete applications step. And delete
 applications step would Issue tracker details as well I guess. @ Ajanthan 
 :
 Correct me if I am wrong.

 Looping through each applications and deleting will not be a salable
 solution.

 Thanks  Regards
 Danushka Fernando
 Software Engineer
 WSO2 inc. http://wso2.com/
 Mobile : +94716332729


 On Thu, Aug 21, 2014 at 8:46 PM, Ajanthan Balachandran 
 ajant...@wso2.com wrote:




 On Thu, Aug 21, 2014 at 8:24 PM, Mahesh Chinthaka mahe...@wso2.com
 wrote:

 Hi Everyone,


 We are working on the Training Project -[Cloud] Tenant deletion
 code/script for cloud - https://redmine.wso2.com/issues/3121.
 Listed below the  workflow of the tenant deletion process in the App 
 Cloud
 as we identified.

 1. Undeploy Jenkins web app from application server

 2. Delete Git repository (use gitblit api to delete repo in Git)

 3. Unsubscribe Stratos using Stratos Rest Services

 4. Check database created by RSSAdmin and delete them

 5. Perform TenantMgtAdminService deleteTenant operation

-

i. Delete Billing data
ii. Delete Tenant Registration Data (Ex. REG_CLUSTER_LOCK,
REG_LOG)
iii. Delete Tenant User management data (Ex. UM_USER_PERMISSION,
UM_USER)
iv. Remove Tenant information from cache
v. Delete UM_TENANT table



 Don't you need to cleanup issue tracker?

 As per the analysis there are two solutions we have identified to
 implement this , such as BPEL and Carbon Component. We thought of going 
 for
 a *carbon component* implementation rather than using a* BPEL* due
 to following reasons.

 1. Plugging a Carbon Component will give more extensibility to
 implement Tenant Deletion operation in future Cloud base products

 2. If we used a BPEL we will have to reconstruct at each time when
 we meet a new requirement (ex: esb cloud integration).


 Proposed Solution

 Why can't you use existing TenantMgtListener and add onDelete
 method.It also has ListenerOrder and every implementation should be
 registered as OSGI service.


 1. Create an abstraction for delete operation

  public interface TenantDeletion{

  public void onDeletion();

 }

 2. Implement TenantDeletion for each operations

 public class JenkinsAppUndeployer implements TenantDeletion{

 public void onDeletion(){

  //Implementation of the JenkinsApp undeploy process

 }

 }

 3. Use a configuration file to maintain the 

Re: [Architecture] [AF] Tenant subscribing to stratos environments - making it fault tolerant

2014-08-18 Thread Amila Maha Arachchi
Any thoughts?


On Fri, Aug 15, 2014 at 10:45 AM, Amila Maha Arachchi ami...@wso2.com
wrote:

 AF team,

 Its needless to say that there are several possible failure points in AF,
 hence in App Cloud. One such place is making the tenants subscribed to the
 dev, test and prod stratos environments. Due to some reason, if this step
 fails, then, thats the end of story for that tenant.

 Proposal:

 Hand over the subscription requests to a queue (doe not need to be JMS
 queue) and let a task do the subscription taking them from the queue. If
 the subscription is successful, remove it from the queue, else put it back,
 which will make the task to retry.

 AFAIK, this subscription step does not need to be synchronous. So, the
 above change has no impact to the tenant creation flow.

 WDYT?

 Regards,
 Amila.

 --
 *Amila Maharachchi*
 Senior Technical Lead
 WSO2, Inc.; http://wso2.com

 Blog: http://maharachchi.blogspot.com
 Mobile: +94719371446




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [AF] Tenant subscribing to stratos environments - making it fault tolerant

2014-08-18 Thread Amila Maha Arachchi
Jira created.

APPFAC-2436 - Make the tenants subscription to stratos environments fault
tolerant https://wso2.org/jira/browse/APPFAC-2436


On Mon, Aug 18, 2014 at 3:35 PM, Danushka Fernando danush...@wso2.com
wrote:

 Hi Amila

 On Fri, Aug 15, 2014 at 10:45 AM, Amila Maha Arachchi ami...@wso2.com
 wrote:

 AF team,

 Its needless to say that there are several possible failure points in AF,
 hence in App Cloud. One such place is making the tenants subscribed to the
 dev, test and prod stratos environments. Due to some reason, if this step
 fails, then, thats the end of story for that tenant.

 Proposal:

 Hand over the subscription requests to a queue (doe not need to be JMS
 queue) and let a task do the subscription taking them from the queue. If
 the subscription is successful, remove it from the queue, else put it back,
 which will make the task to retry.


 +1 for the thought. This was a known point of failure all of us knew and
 we didn't think about a solution before.

 AFAIK, this subscription step does not need to be synchronous. So, the
 above change has no impact to the tenant creation flow.


 AFAIK this is already not synchronous.  The problem is if it fails it
 stays failed. And your solution includes retries which is good.


 WDYT?

 Regards,
 Amila.

 --
 *Amila Maharachchi*
 Senior Technical Lead
 WSO2, Inc.; http://wso2.com

 Blog: http://maharachchi.blogspot.com
 Mobile: +94719371446


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



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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] Common component to read passwords via secure vault

2014-08-12 Thread Amila Maha Arachchi
Hi all,

At the moment we cannot enable secure vault for all of our config files
because all the components do not support reading configs with secure vault.

For example, we cannot enable secure vault for dep-sync password in
carbon.xml because cep-sync component is not written to support it (this
was the case as of August 2013). There are some other such configs in our
products (most of the new config files). So, if we want them to support
secure vault, those components need to be changed.

But, if we have a common component in the kernel which can do this, then we
can make this a standard in our coding. i.e. Any component which needs to
read a password from a config file should do it via this special component.

WDYT?

Regards,
AmilaM.

-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] App type specific RXTs and dynamically generated UI for AppFactory.

2014-08-08 Thread Amila Maha Arachchi
Where are we going to place this jagg file (apptype.jag) ? According to
Samith's mail, AFAIU this can be added by tenant admins.


On Fri, Aug 8, 2014 at 4:31 PM, Dimuthu Leelarathne dimut...@wso2.com
wrote:




 On Fri, Aug 8, 2014 at 3:43 PM, Manuranga Perera m...@wso2.com wrote:

 ES already has a UI generator for RXT. is it possible to reuse it here ?


 If we are doing UI generator I would prefer to reuse it. But I feel with
 all the designing and different fields types (for example pick a
 Certificate file for apk and do valuations) it is far more cleaner and
 extensible from AF to ask the AppType writer to write the create.jag for
 their application.

 WDYT?

 thanks
 dimuthu



 On Thu, Aug 7, 2014 at 5:01 PM, Samith Dassanayake sam...@wso2.com
 wrote:

 Hi all,
 For the dynamically generated UI part, two options have been considered

1. Let tenant admins to add apptype.jagg file which specify the UI
components according to the RXT, when they are adding a app type. When a
user selects a app type, content of the corresponding apptype.jagg will 
 be
loaded on the app creation page.
2. Generate the UI from the RXT content by implementing a generic UI
loader.

 We are planing to move on with first option. WDYT?


 On Thu, Aug 7, 2014 at 12:49 PM, Samith Dassanayake sam...@wso2.com
 wrote:

 Hi,
 I have started working on the $subject[1] and it will be done in two
 phases

 In current implementation since we allow only pre-defined app
 types(Namely  JAX-WS, JAX-RS, WAR, Data Service and Jaggery apps),  we
 have only one generic RXT to capture application related information, for
 all the application types. As a new requirement since BYOAT(such as mobile
 apps, NodeJs etc.. ) came into play, we have decided to extend our model by
 providing the ability to add app type specific RXTs to app factory and
 dynamically generate the UI for applications based on the App type specific
  RXT.

 We are planing to achieve this in three phases.

1. As the first phase we will extend our model to support app type
specific RXTs, such that different app types will have different RXTs. 
 The
media type of the RXT will be based on the app type. When RXT 
 Inheritance
model is available, we are going to use it with a super parent app type 
 RXT
that every app type RXT should inherited from.
2. As the second phase we will focus on dynamically generate UI
based on the app type. We will use the app type specific RXTs to get the
metadata and the fields.
3. As the last phase we will move this concept and implementation
to a unified governance model which will be a thin wrapper across
GenericArtifactManager that can be used by all who needs to get
info about applications.


 [1] https://redmine.wso2.com/issues/2668

 Thank you

 --
 Best Regards

 Samith Dassanayake
 Software Engineer, WSO2 Inc.




 --
 Best Regards

 Samith Dassanayake
 Software Engineer, WSO2 Inc.


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




 --
 With regards,
 *Manu*ranga Perera.

 phone : 071 7 70 20 50
 mail : m...@wso2.com

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




 --
 Dimuthu Leelarathne
 Architect  Product Lead of App Factory

 WSO2, Inc. (http://wso2.com)
 email: dimut...@wso2.com
 Mobile : 0773661935

 Lean . Enterprise . Middleware

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [AF] Capturing BAM events with an objective of understanding user activity

2014-08-08 Thread Amila Maha Arachchi
Hi Dimuthu,

Thanks for the explanation.

With this kind of recording, I see another great advantage. That is to
lineup all the activities done by a user. If we filter out activities of a
user and sort them by time we'll get something like

Clicked Create new application - submitted application creation - clicked
application xyz - clicker open button - clicked repos and builds page etc.


On Fri, Aug 1, 2014 at 11:25 PM, Dimuthu Leelarathne dimut...@wso2.com
wrote:

 Hi Amila,

 This is how you can do it. Let me tell you by example.

 App creation page loads (we record timestamp here). And only one of the
 following happens and pls note we record all timestamps.

 1 - App creation button clicked
 OR
 2 - Page unloads (meaning user browsed away)
 OR
 3 - You see 2 on the same page messages
 OR
 4 - User hit cacle

 What you have to do is write queries to figure out which event occur after
 the app creation page loads - 1,2,3 or 4th. You can also calculate with
 what probability each of these events occur after app creation page occur.
 You can also measure average times.

 thanks,
 dimuthu


 On Fri, Aug 1, 2014 at 7:32 PM, Amila Maha Arachchi ami...@wso2.com
 wrote:

 Hi Dimuthu,

 You have said that we want to know how much time did a user spend on
 completing an action. For this you need to publish an event when a button
 is clicked. And then, how are you going to publish the finished event?


 On Thu, Jul 31, 2014 at 8:12 PM, Dmitry Sotnikov dmi...@wso2.com wrote:

 Looks good. I assume that Timestamp is Date/Time and not just time
 (examples just have time - but I assume this is a typo).

 Dmitry


 On Thu, Jul 31, 2014 at 6:13 PM, Dimuthu Leelarathne dimut...@wso2.com
 wrote:

 Hi,

 In addition let me give you some samples


 Tenant Id | Username(email) | Item | Action  | Timestamp | Context
 (Application) | App Type | Comments
   450 | d...@aha.com | X-Button | Clicked | 12:09:40 | app1 | WAR |
 Additional data (optional)
  780 | d...@man.com | url of home page | loaded | 12:10:50 | none |
 none |  Additional data (optional)
  thanks,
 dimuthu










  On Thu, Jul 31, 2014 at 7:26 PM, Dimuthu Leelarathne 
 dimut...@wso2.com wrote:

 Hi,

 We can capture App Type event as well. So the even stream would be
 updated as follows.

 Tenant Id : Username(email) : Item : Action : Timestamp : Context
 (Application) : App Type : Comments

 thanks,
 dimuthu


 On Thu, Jul 31, 2014 at 4:07 PM, Dmitry Sotnikov dmi...@wso2.com
 wrote:

 Dimuthu,

 Are comments parameters of the action? For example, the type of
 application user chose when creating the new app?

 That would be good to have so administrators know which app types are
 in use in their App Factory deployment.

 Dmitry


 On Thu, Jul 31, 2014 at 1:57 PM, Dimuthu Leelarathne 
 dimut...@wso2.com wrote:

 Hi,


 A sample set of events a user would do,

 User x logged in

 App home loads

 Clicked on “Add New Application” button

 Create application page loads

 Clicked upload/create from scratch

 Clicked “Create Application”

 App home loads

 Clicked on application tile

 Clicked on repo url

 Did a commit === Not by browser but by a Git client

 Set the production URL

 Edit description

 Click on expand icons on current status on home page

 Clicked on “Open URL”

 Clicked on “Open Issues” from home page

 Clicked “Delete Application”

 User home loads

 User x logged out


 *What we need to do*

 Record these user’s events with the objective of understanding user
 interactions with App Factory

 *What we need to understand about user interactions?*

 - How much time user spend to between start action and end action
 (Create application button and completing of that task)

 - What are the most frequent actions a user would perform

 - What are the actions user started but never completed and why?
 Session timeout, Hit Cancel, Or just browse away

 - What is the most frequently loaded page

 - What is the most frequently accessed application of a user?


 *This we are going record*

 Tenant Id : Username(email) : Item : Action : Timestamp : Context
 (Application) : Comments

 *Methodology*

 Each time an event happens we are going to keep it in the JavaScript
 data structure. Then these data will be transferred to backend

 - Periodically (5 minutes) with another action called “on the same
 page after 5 mins”- this is because if a session invalidates we can
 identify it by this action

 - Or each time the page unloads

 When backend receive(Jaggery) the data it will be published to the
 BAM. Then in the Java layer also we'll identify points that user would
 interact for example - commits and publish it to BAM.


 Any thoughts?

 thanks,
 dimuthu

 --
 Dimuthu Leelarathne
 Architect  Product Lead of App Factory

 WSO2, Inc. (http://wso2.com)
 email: dimut...@wso2.com
 Mobile : 0773661935

 Lean . Enterprise . Middleware

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

Re: [Architecture] [AF] Capturing BAM events with an objective of understanding user activity

2014-08-01 Thread Amila Maha Arachchi
Hi Dimuthu,

You have said that we want to know how much time did a user spend on
completing an action. For this you need to publish an event when a button
is clicked. And then, how are you going to publish the finished event?


On Thu, Jul 31, 2014 at 8:12 PM, Dmitry Sotnikov dmi...@wso2.com wrote:

 Looks good. I assume that Timestamp is Date/Time and not just time
 (examples just have time - but I assume this is a typo).

 Dmitry


 On Thu, Jul 31, 2014 at 6:13 PM, Dimuthu Leelarathne dimut...@wso2.com
 wrote:

 Hi,

 In addition let me give you some samples


 Tenant Id | Username(email) | Item | Action  | Timestamp | Context
 (Application) | App Type | Comments
   450 | d...@aha.com | X-Button | Clicked | 12:09:40 | app1 | WAR |
 Additional data (optional)
  780 | d...@man.com | url of home page | loaded | 12:10:50 | none | none
 |  Additional data (optional)
  thanks,
 dimuthu










  On Thu, Jul 31, 2014 at 7:26 PM, Dimuthu Leelarathne dimut...@wso2.com
 wrote:

 Hi,

 We can capture App Type event as well. So the even stream would be
 updated as follows.

 Tenant Id : Username(email) : Item : Action : Timestamp : Context
 (Application) : App Type : Comments

 thanks,
 dimuthu


 On Thu, Jul 31, 2014 at 4:07 PM, Dmitry Sotnikov dmi...@wso2.com
 wrote:

 Dimuthu,

 Are comments parameters of the action? For example, the type of
 application user chose when creating the new app?

 That would be good to have so administrators know which app types are
 in use in their App Factory deployment.

 Dmitry


 On Thu, Jul 31, 2014 at 1:57 PM, Dimuthu Leelarathne dimut...@wso2.com
  wrote:

 Hi,


 A sample set of events a user would do,

 User x logged in

 App home loads

 Clicked on “Add New Application” button

 Create application page loads

 Clicked upload/create from scratch

 Clicked “Create Application”

 App home loads

 Clicked on application tile

 Clicked on repo url

 Did a commit === Not by browser but by a Git client

 Set the production URL

 Edit description

 Click on expand icons on current status on home page

 Clicked on “Open URL”

 Clicked on “Open Issues” from home page

 Clicked “Delete Application”

 User home loads

 User x logged out


 *What we need to do*

 Record these user’s events with the objective of understanding user
 interactions with App Factory

 *What we need to understand about user interactions?*

 - How much time user spend to between start action and end action
 (Create application button and completing of that task)

 - What are the most frequent actions a user would perform

 - What are the actions user started but never completed and why?
 Session timeout, Hit Cancel, Or just browse away

 - What is the most frequently loaded page

 - What is the most frequently accessed application of a user?


 *This we are going record*

 Tenant Id : Username(email) : Item : Action : Timestamp : Context
 (Application) : Comments

 *Methodology*

 Each time an event happens we are going to keep it in the JavaScript
 data structure. Then these data will be transferred to backend

 - Periodically (5 minutes) with another action called “on the same
 page after 5 mins”- this is because if a session invalidates we can
 identify it by this action

 - Or each time the page unloads

 When backend receive(Jaggery) the data it will be published to the
 BAM. Then in the Java layer also we'll identify points that user would
 interact for example - commits and publish it to BAM.


 Any thoughts?

 thanks,
 dimuthu

 --
 Dimuthu Leelarathne
 Architect  Product Lead of App Factory

 WSO2, Inc. (http://wso2.com)
 email: dimut...@wso2.com
 Mobile : 0773661935

 Lean . Enterprise . Middleware

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




 --
 Dmitry Sotnikov
 VP of Cloud; WSO2, Inc.;  http://wso2.com/
 email: dmi...@wso2.com; cell: +1.949.303.9653; Skype: DSotnikov

 Lean . Enterprise . Middleware

  http://wso2.com/events/

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




 --
 Dimuthu Leelarathne
 Architect  Product Lead of App Factory

 WSO2, Inc. (http://wso2.com)
 email: dimut...@wso2.com
 Mobile : 0773661935

 Lean . Enterprise . Middleware




 --
 Dimuthu Leelarathne
 Architect  Product Lead of App Factory

 WSO2, Inc. (http://wso2.com)
 email: dimut...@wso2.com
 Mobile : 0773661935

 Lean . Enterprise . Middleware

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




 --
 Dmitry Sotnikov
 VP of Cloud; WSO2, Inc.;  http://wso2.com/
 email: dmi...@wso2.com; cell: +1.949.303.9653; Skype: DSotnikov
 Lean . Enterprise . Middleware

  http://wso2.com/events/

 ___
 Architecture mailing list
 

Re: [Architecture] [Appfactory][deployment listners] Application life cycle notification architecture for a clustered enviornment

2014-07-22 Thread Amila Maha Arachchi
Danushka,


On Mon, Jul 21, 2014 at 6:13 PM, Danushka Fernando danush...@wso2.com
wrote:

 I think Paul's point is valid. And also in that case we don't have to
 handle the scenario that the web app is deployed in one appserver
 successfully and didn't in second appserver. We can let users know that its
 deployed correctly in this server and another message saying its not
 deployed successfully in this server. But somehow we need to say the server
 name in a abstract way like wso2 appserver 1 and wso2 appserver 2 not in
 this IP and that IP.
 Dimuthu / Anuruddha WDYT?


This is not valid. User does not and should not have any idea about how
many AppServers are there.

BTW, I was just wondering whether we can use the registry to maintain a
flag. So, the listener can check the flag before sending the notification.


 Thanks  Regards
 Danushka Fernando
 Software Engineer
 WSO2 inc. http://wso2.com/
 Mobile : +94716332729


 On Mon, Jul 21, 2014 at 6:02 PM, Paul Fremantle p...@wso2.com wrote:

 Isn't it better to send all the messages and then keep track of who has
 successfully deployed or undeployed? In other words, don't we want all the
 information rather than just getting one server's info?

 Paul


 On 21 July 2014 12:58, Anuruddha Premalal anurud...@wso2.com wrote:

 Hi,

 *Problem:*

 In the current appfactory setup all the application containers (AS)
 notifies on application life cycle events (deployment, undeployment); this
 is because the deployment event listeners directly send messages to
 appfactory . This approach works well for a single node deployment . But it
 will cause unwanted noise (which will ultimately be several copies of the
 same message on the notification wall) in a clustered environment, also
 this will cause unwanted traffic towards appfactory. So it is important to
 limit notifications from the container level.

 *Solution:*

 Requirement is to send notifications only from a single appserver node
 in the cluster.

 For this we have to choose a single candidate from the cluster, and make
 him as the notifier node.

  Candidate selection method:

 This can be achieved using Stratos topology information. Topology(which
 is published every 60secs) have information about currently active cluster
 nodes.

 Application notifiers will subscribe to this topology topic and choose
 to be the notifier based on the following criteria.

 1.)  If the topology contains the IP of the node.
   Note : This is important because there might be cases where IP is
 not in the topology but the instance is active.

 2.)  If the IP is the highest IP in the available topology.


 Related Jira : https://wso2.org/jira/browse/APPFAC-2271


 Regards,

 --
 *Anuruddha Premalal*
 Software Eng. | WSO2 Inc.
 Mobile : +94710461070
 Web site : www.regilandvalley.com

 Advances of technology should not leave behind the developing world

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




 --
 Paul Fremantle
 CTO and Co-Founder, WSO2
 OASIS WS-RX TC Co-chair, Apache Member

 UK: +44 207 096 0336
 US: +1 646 595 7614

 blog: http://pzf.fremantle.org
 twitter.com/pzfreo
 p...@wso2.com

 wso2.com Lean Enterprise Middleware

 Disclaimer: This communication may contain privileged or other
 confidential information and is intended exclusively for the addressee/s.
 If you are not the intended recipient/s, or believe that you may have
 received this communication in error, please reply to the sender indicating
 that fact and delete the copy you received and in addition, you should not
 print, copy, retransmit, disseminate, or otherwise use the information
 contained in this communication. Internet communications cannot be
 guaranteed to be timely, secure, error or virus-free. The sender does not
 accept liability for any errors or omissions.

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



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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [Appfactory][deployment listners] Application life cycle notification architecture for a clustered enviornment

2014-07-21 Thread Amila Maha Arachchi
Hi Anuruddha,

I have a question on this. If there are two application servers running in
an AS cluster, isn't the topology identify both of them as active. If so,
do you go for the highest IP?


On Mon, Jul 21, 2014 at 5:28 PM, Anuruddha Premalal anurud...@wso2.com
wrote:

 Hi,

 *Problem:*

 In the current appfactory setup all the application containers (AS)
 notifies on application life cycle events (deployment, undeployment); this
 is because the deployment event listeners directly send messages to
 appfactory . This approach works well for a single node deployment . But it
 will cause unwanted noise (which will ultimately be several copies of the
 same message on the notification wall) in a clustered environment, also
 this will cause unwanted traffic towards appfactory. So it is important to
 limit notifications from the container level.

 *Solution:*

 Requirement is to send notifications only from a single appserver node in
 the cluster.

 For this we have to choose a single candidate from the cluster, and make
 him as the notifier node.

  Candidate selection method:

 This can be achieved using Stratos topology information. Topology(which is
 published every 60secs) have information about currently active cluster
 nodes.

 Application notifiers will subscribe to this topology topic and choose to
 be the notifier based on the following criteria.

 1.)  If the topology contains the IP of the node.
   Note : This is important because there might be cases where IP is
 not in the topology but the instance is active.

 2.)  If the IP is the highest IP in the available topology.


 Related Jira : https://wso2.org/jira/browse/APPFAC-2271


 Regards,

 --
 *Anuruddha Premalal*
 Software Eng. | WSO2 Inc.
 Mobile : +94710461070
 Web site : www.regilandvalley.com

 Advances of technology should not leave behind the developing world

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] WSO2 Con back-end application move to WSO2 cloud

2014-05-04 Thread Amila Maha Arachchi
SumedhaS,

Can you deploy the above mentioned jaggery modules to dev,test and prod AS
instances in cloud preview and reply to this thread.


On Sat, May 3, 2014 at 8:51 AM, Amila Maha Arachchi ami...@wso2.com wrote:

 AFAIR we have some of the mentioned modules in the AS at the moment. We'll
 check what is missing and add them. Thanks for letting us know about this.


 On Saturday, May 3, 2014, Indika Sampath indi...@wso2.com wrote:

 Hi Amila,

 I created my own tenant and deploy the con_api jaggery app in the App
 Cloud. Build and Deployment succeeded but I got an issue when I going to
 test it. The reason was this application used number of modules. Those are
 as below.

- caramel
- markdown
- handlebars
- pipe

 Above modules must reside in the *modules* folder of the WSO2
 Application Server (wso2as-5.2.0/modules) or any other WSO2 server which
 support artifact deployment. Is there a way to add this external modules to
 the App cloud ? I think Application server has to be restarted once we add
 these modules.

 Cheers!



 On Fri, May 2, 2014 at 12:31 PM, Amila Maha Arachchi ami...@wso2.comwrote:

 Hi Indika,

 You can deploy the con_api, wso2_con_api (DB) and con_front in the app
 cloud (try with your own tenant). Then I believe you need to go the API
 Cloud and create and publish the API.




 On Fri, May 2, 2014 at 12:18 PM, Indika Sampath indi...@wso2.com wrote:

 Hi All,

 We are planing to move the WSO2 Con application back-end application to
 the WSO2 cloud as we had a discussion with Sanjiva. Following are the
 artifacts which needs to moved to the WSO2 cloud.

- con_api - Jaggery application written using Jaggery pipe
- wso2_con_api - MySQL database to store the con related data
- con_front - Static HTML application which provide admin console to
feed data


 The current deployment done in the WSO2 API-M. Also MySQL database
 installed in the same server. Herewith I have attached the high level
 diagram of the current deployment. Sajiva showed us number of issues in
 this deployment and suggested to move everything to the WSO2 cloud.

 Following are the facts we need to consider when move to the WSO2 cloud.

- Currently All GET endpoints are not secured. POST/PUT/DELETE
endpoints are secured with OAuth. We need to secure all the endpoints
regardless of the GET/POST/PUT/DELETE.
- The two mobile apps (android and iOS) are consume GET endpoints.
After we secured the all endpoints there will be refactoring to the both
mobile application.
- In the same way con_front application has to do the modification in
the GET endpoints.
- We are currently use the password grant type for generate the token.


 We appreciate if there is any suggestions.

 Cheers!


 --
 Indika Sampath
 Software Engineer
 WSO2 Inc.
 http://wso2.com

 Phone: +94 716 424 744
 Blog: http://indikasampath.blogspot.com/




 --
 *Amila Maharachchi*
 Senior Technical Lead
 WSO2, Inc.; http://wso2.com

 Blog: http://maharachchi.blogspot.com
 Mobile: +94719371446




 --
 Indika Sampath
 Software Engineer
 WSO2 Inc.
 http://wso2.com

 Phone: +94 716 424 744
 Blog: http://indikasampath.blogspot.com/



 --
 *Amila Maharachchi*
 Senior Technical Lead
 WSO2, Inc.; http://wso2.com

 Blog: http://maharachchi.blogspot.com
 Mobile: +94719371446





-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] WSO2 Con back-end application move to WSO2 cloud

2014-05-02 Thread Amila Maha Arachchi
Hi Indika,

You can deploy the con_api, wso2_con_api (DB) and con_front in the app
cloud (try with your own tenant). Then I believe you need to go the API
Cloud and create and publish the API.




On Fri, May 2, 2014 at 12:18 PM, Indika Sampath indi...@wso2.com wrote:

 Hi All,

 We are planing to move the WSO2 Con application back-end application to
 the WSO2 cloud as we had a discussion with Sanjiva. Following are the
 artifacts which needs to moved to the WSO2 cloud.

- con_api - Jaggery application written using Jaggery pipe
- wso2_con_api - MySQL database to store the con related data
- con_front - Static HTML application which provide admin console to
feed data


 The current deployment done in the WSO2 API-M. Also MySQL database
 installed in the same server. Herewith I have attached the high level
 diagram of the current deployment. Sajiva showed us number of issues in
 this deployment and suggested to move everything to the WSO2 cloud.

 Following are the facts we need to consider when move to the WSO2 cloud.

- Currently All GET endpoints are not secured. POST/PUT/DELETE
endpoints are secured with OAuth. We need to secure all the endpoints
regardless of the GET/POST/PUT/DELETE.
- The two mobile apps (android and iOS) are consume GET endpoints.
After we secured the all endpoints there will be refactoring to the both
mobile application.
- In the same way con_front application has to do the modification in
the GET endpoints.
- We are currently use the password grant type for generate the token.


 We appreciate if there is any suggestions.

 Cheers!


 --
 Indika Sampath
 Software Engineer
 WSO2 Inc.
 http://wso2.com

 Phone: +94 716 424 744
 Blog: http://indikasampath.blogspot.com/




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] WSO2 Con back-end application move to WSO2 cloud

2014-05-02 Thread Amila Maha Arachchi
AFAIR we have some of the mentioned modules in the AS at the moment. We'll
check what is missing and add them. Thanks for letting us know about this.

On Saturday, May 3, 2014, Indika Sampath indi...@wso2.com wrote:

 Hi Amila,

 I created my own tenant and deploy the con_api jaggery app in the App
 Cloud. Build and Deployment succeeded but I got an issue when I going to
 test it. The reason was this application used number of modules. Those are
 as below.

- caramel
- markdown
- handlebars
- pipe

 Above modules must reside in the *modules* folder of the WSO2 Application
 Server (wso2as-5.2.0/modules) or any other WSO2 server which support
 artifact deployment. Is there a way to add this external modules to the App
 cloud ? I think Application server has to be restarted once we add these
 modules.

 Cheers!



 On Fri, May 2, 2014 at 12:31 PM, Amila Maha Arachchi ami...@wso2.comwrote:

 Hi Indika,

 You can deploy the con_api, wso2_con_api (DB) and con_front in the app
 cloud (try with your own tenant). Then I believe you need to go the API
 Cloud and create and publish the API.




 On Fri, May 2, 2014 at 12:18 PM, Indika Sampath indi...@wso2.com wrote:

 Hi All,

 We are planing to move the WSO2 Con application back-end application to
 the WSO2 cloud as we had a discussion with Sanjiva. Following are the
 artifacts which needs to moved to the WSO2 cloud.

- con_api - Jaggery application written using Jaggery pipe
- wso2_con_api - MySQL database to store the con related data
- con_front - Static HTML application which provide admin console to
feed data


 The current deployment done in the WSO2 API-M. Also MySQL database
 installed in the same server. Herewith I have attached the high level
 diagram of the current deployment. Sajiva showed us number of issues in
 this deployment and suggested to move everything to the WSO2 cloud.

 Following are the facts we need to consider when move to the WSO2 cloud.

- Currently All GET endpoints are not secured. POST/PUT/DELETE
endpoints are secured with OAuth. We need to secure all the endpoints
regardless of the GET/POST/PUT/DELETE.
- The two mobile apps (android and iOS) are consume GET endpoints.
After we secured the all endpoints there will be refactoring to the both
mobile application.
- In the same way con_front application has to do the modification in
the GET endpoints.
- We are currently use the password grant type for generate the token.


 We appreciate if there is any suggestions.

 Cheers!


 --
 Indika Sampath
 Software Engineer
 WSO2 Inc.
 http://wso2.com

 Phone: +94 716 424 744
 Blog: http://indikasampath.blogspot.com/




 --
 *Amila Maharachchi*
 Senior Technical Lead
 WSO2, Inc.; http://wso2.com

 Blog: http://maharachchi.blogspot.com
 Mobile: +94719371446




 --
 Indika Sampath
 Software Engineer
 WSO2 Inc.
 http://wso2.com

 Phone: +94 716 424 744
 Blog: http://indikasampath.blogspot.com/



-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Setting DNS for URLs to be mapped in AF URL Mapper story

2014-04-30 Thread Amila Maha Arachchi
Hi Punnadi,

You don't need to add any DNS entries for the ELB. That will be done at the
deployment time. You only need to add a CNAME record [1].

[1] http://en.wikipedia.org/wiki/CNAME_record


On Wed, Apr 30, 2014 at 10:51 AM, Punnadi Gunarathna punn...@wso2.comwrote:

 Hi Amila,

 So the AF listener has to implement a logic in such a way that DNS entries
 need to be added to each mapped url via AWS R53 service as follows. Are the
 given below entries correct?

 192.168.10.11 lb.dev.stratos.com

This is not needed.

 lb.dev.stratos.com 
 myapp1-1.0.0-dev.wso2apps.comhttp://myapp-1.0.0-dev.wso2apps.com
 lb.dev.stratos.commyapp2-1.0.0-dev.wso2apps.comhttp://myapp-1.0.0-dev.wso2apps.com


This is correct and this needs to be added via the API. In the
documentation, I don't see a sample for adding a CNAME, but it will be
similar to what is there in the sample of the AWS documentation.



 192.168.10.12 lb.test.stratos.com
 lb.test.stratos.com 
 myapp1-1.0.0-test.wso2apps.comhttp://myapp-1.0.0-dev.wso2apps.com
 lb.test.stratos.com 
 myapp2-1.0.0-test.wso2apps.comhttp://myapp-1.0.0-dev.wso2apps.com

 192.168.10.13 lb.prod.stratos.com
 lb.prod.stratos.com 
 myapp1-1.0.0-prod.wso2apps.comhttp://myapp-1.0.0-dev.wso2apps.com
 lb.prod.stratos.com 
 myapp2-1.0.0-prod.wso2apps.comhttp://myapp-1.0.0-dev.wso2apps.com



 On Wed, Apr 30, 2014 at 3:17 AM, Dmitry Sotnikov dmi...@wso2.com wrote:

 I'd say that for public App Cloud it makes sense to use AWS functionality
 to avoid the extra steps.

 Also, I would have URLs that put the app name first - and not version
 first - like:
 myapp-1.0.0-dev.wso2apps.com

 This would get them mentally grouped by app which makes sense.

 Dmitry




 On Tue, Apr 29, 2014 at 5:43 AM, Amila Maha Arachchi ami...@wso2.comwrote:

 Hi all,

 At the moment AF team is working on implementing the URL mapping
 feature. Following are some examples of URLs to be mapped.

 1.0.0-dev-myapp.cloudapps.com - DNS should get resolved to stratos dev
 ELB
 2.1.0-test-myapp.cloudapps.com - DNS should get resolved to stratos
 test ELB
 1.1.0-prod-myapp.cloudapps.com - DNS should get resolved to stratos
 prod ELB

 To add the DNS entries, most clean way seems to be using the AWS R53
 service. With this, when you create a URL to be mapped, you will have to
 call the AWS api [1] and add a DNS entry (add a CName to ELB's host name).

 An alternative options is to use an Nginx in from of dev,test,prod ELBs
 and route requests based on the url pattern. But, this will introduce an
 additional hop.

 If we agree to use the AWS R53 api, Af code will have to be implemented
 in a way that this does not cause any issues in a non-EC2 infrastructure.
 i.e. a listener implementation is needed.

 If there are no objections, AF team, please note this.

 BTW, are there any arguments on whether this needs to be done by AF or
 Stratos? My understanding is, this needs to be done by AF when creating the
 nice url.

 [1]
 http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/RRSchanges_API.html

 Regards,
 AmilaM.

 --
 *Amila Maharachchi*
 Senior Technical Lead
 WSO2, Inc.; http://wso2.com

 Blog: http://maharachchi.blogspot.com
 Mobile: +94719371446




 --
 Dmitry Sotnikov
 VP of Cloud; WSO2, Inc.;  http://wso2.com/
 email: dmi...@wso2.com; cell: +1.949.303.9653; Skype: DSotnikov
 Lean . Enterprise . Middleware

  http://wso2.com/events/




 --
 Thanks and Regards,

 Punnadi Gunarathna
 Senior Software Engineer,
 WSO2, Inc.; http://wso2.com http://wso2
 Blog: http://hi-my-world.blogspot.com/
 Tel : 94 11 214 5345
 Fax :94 11 2145300



  http://lalajisureshika.blogspot.com/




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Setting DNS for URLs to be mapped in AF URL Mapper story

2014-04-30 Thread Amila Maha Arachchi
On Wed, Apr 30, 2014 at 11:46 AM, Shiroshica Kulatilake sh...@wso2.comwrote:




 On Wed, Apr 30, 2014 at 11:37 AM, Amila Maha Arachchi ami...@wso2.comwrote:

 Hi Punnadi,

 You don't need to add any DNS entries for the ELB. That will be done at
 the deployment time. You only need to add a CNAME record [1].

 [1] http://en.wikipedia.org/wiki/CNAME_record


 On Wed, Apr 30, 2014 at 10:51 AM, Punnadi Gunarathna punn...@wso2.comwrote:

 Hi Amila,

 So the AF listener has to implement a logic in such a way that DNS
 entries need to be added to each mapped url via AWS R53 service as follows.
 Are the given below entries correct?

 192.168.10.11 lb.dev.stratos.com

 This is not needed.

 lb.dev.stratos.com 
 myapp1-1.0.0-dev.wso2apps.comhttp://myapp-1.0.0-dev.wso2apps.com
 lb.dev.stratos.commyapp2-1.0.0-dev.wso2apps.comhttp://myapp-1.0.0-dev.wso2apps.com


 This is correct and this needs to be added via the API. In the
 documentation, I don't see a sample for adding a CNAME, but it will be
 similar to what is there in the sample of the AWS documentation.



 192.168.10.12 lb.test.stratos.com
 lb.test.stratos.com 
 myapp1-1.0.0-test.wso2apps.comhttp://myapp-1.0.0-dev.wso2apps.com
 lb.test.stratos.com 
 myapp2-1.0.0-test.wso2apps.comhttp://myapp-1.0.0-dev.wso2apps.com

 192.168.10.13 lb.prod.stratos.com
 lb.prod.stratos.com 
 myapp1-1.0.0-prod.wso2apps.comhttp://myapp-1.0.0-dev.wso2apps.com
 lb.prod.stratos.com 
 myapp2-1.0.0-prod.wso2apps.comhttp://myapp-1.0.0-dev.wso2apps.com



 On Wed, Apr 30, 2014 at 3:17 AM, Dmitry Sotnikov dmi...@wso2.comwrote:

 I'd say that for public App Cloud it makes sense to use AWS
 functionality to avoid the extra steps.


 Though this is done within AppFactory we need to write it in such a way
 that it is not AWS specific since AF should not be tightly coupled to AWS.


AF needs to define an interface (with methods such as domainMappingAdded,
domainMappingRemoved, etc.) for listeners to notify domain mapping. Then we
can implement this as a separate jar and use only in a AWS deployment. So,
AF will notify the listeners. If there are no listeners, it will just move
on. For another IaaS, we can use another implementation. This way, the impl
will not get bound to AWS.


 Thank you,
 Shiro





 Also, I would have URLs that put the app name first - and not version
 first - like:
 myapp-1.0.0-dev.wso2apps.com

 This would get them mentally grouped by app which makes sense.

 Dmitry




 On Tue, Apr 29, 2014 at 5:43 AM, Amila Maha Arachchi 
 ami...@wso2.comwrote:

 Hi all,

 At the moment AF team is working on implementing the URL mapping
 feature. Following are some examples of URLs to be mapped.

 1.0.0-dev-myapp.cloudapps.com - DNS should get resolved to stratos
 dev ELB
 2.1.0-test-myapp.cloudapps.com - DNS should get resolved to stratos
 test ELB
 1.1.0-prod-myapp.cloudapps.com - DNS should get resolved to stratos
 prod ELB

 To add the DNS entries, most clean way seems to be using the AWS R53
 service. With this, when you create a URL to be mapped, you will have to
 call the AWS api [1] and add a DNS entry (add a CName to ELB's host name).

 An alternative options is to use an Nginx in from of dev,test,prod
 ELBs and route requests based on the url pattern. But, this will introduce
 an additional hop.

 If we agree to use the AWS R53 api, Af code will have to be
 implemented in a way that this does not cause any issues in a non-EC2
 infrastructure. i.e. a listener implementation is needed.

 If there are no objections, AF team, please note this.

 BTW, are there any arguments on whether this needs to be done by AF or
 Stratos? My understanding is, this needs to be done by AF when creating 
 the
 nice url.

 [1]
 http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/RRSchanges_API.html

 Regards,
 AmilaM.

 --
 *Amila Maharachchi*
 Senior Technical Lead
 WSO2, Inc.; http://wso2.com

 Blog: http://maharachchi.blogspot.com
 Mobile: +94719371446




 --
 Dmitry Sotnikov
 VP of Cloud; WSO2, Inc.;  http://wso2.com/
 email: dmi...@wso2.com; cell: +1.949.303.9653; Skype: DSotnikov
 Lean . Enterprise . Middleware

  http://wso2.com/events/




 --
 Thanks and Regards,

 Punnadi Gunarathna
 Senior Software Engineer,
 WSO2, Inc.; http://wso2.com http://wso2
 Blog: http://hi-my-world.blogspot.com/
 Tel : 94 11 214 5345
 Fax :94 11 2145300



  http://lalajisureshika.blogspot.com/




 --
 *Amila Maharachchi*
 Senior Technical Lead
 WSO2, Inc.; http://wso2.com

 Blog: http://maharachchi.blogspot.com
 Mobile: +94719371446


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




 --
 Shiroshica Kulatilake

 Architect,
 WSO2, Inc. http://wso2.com/
 Phone: +94 776523867

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc

[Architecture] Setting DNS for URLs to be mapped in AF URL Mapper story

2014-04-29 Thread Amila Maha Arachchi
Hi all,

At the moment AF team is working on implementing the URL mapping feature.
Following are some examples of URLs to be mapped.

1.0.0-dev-myapp.cloudapps.com - DNS should get resolved to stratos dev ELB
2.1.0-test-myapp.cloudapps.com - DNS should get resolved to stratos test ELB
1.1.0-prod-myapp.cloudapps.com - DNS should get resolved to stratos prod ELB

To add the DNS entries, most clean way seems to be using the AWS R53
service. With this, when you create a URL to be mapped, you will have to
call the AWS api [1] and add a DNS entry (add a CName to ELB's host name).

An alternative options is to use an Nginx in from of dev,test,prod ELBs and
route requests based on the url pattern. But, this will introduce an
additional hop.

If we agree to use the AWS R53 api, Af code will have to be implemented in
a way that this does not cause any issues in a non-EC2 infrastructure. i.e.
a listener implementation is needed.

If there are no objections, AF team, please note this.

BTW, are there any arguments on whether this needs to be done by AF or
Stratos? My understanding is, this needs to be done by AF when creating the
nice url.

[1]
http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/RRSchanges_API.html

Regards,
AmilaM.

-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [App Factory] Provide custom URL for Production deployed application via the URL mapper

2014-04-25 Thread Amila Maha Arachchi
On Fri, Apr 25, 2014 at 3:16 PM, Punnadi Gunarathna punn...@wso2.comwrote:

 hi All,

 In Dimtry's uber stories he came up with URL Mapping requirement for the
 applications deployed  in Production.

 This is how it will be implemented in App Factory front.

 AppOwner only has permissions to domain mapping.

 1. If there are more than one version of the same Application in
 production, the domain mapping is available only for one version and it is
 configuarable in AppHome.
 (That is because in reality there can't be multiple versions of the same
 application in Production. So only one domain mapping would be enough. But
 in App Factory there can be multiple versions of the same application in
 production)
 2. User can only set the subdomian in App Home page. Subdomain will be
 validated for its availability via the API provided in Stratos Manager.
 Based on the available subdomain the Production URL will be created and
 displayed in AppHome as follows:

Don't we keep these mapped domains with AF? If we are keeping them, why do
we need to ask from SM?

  http://subdomain.cloudapps.com


 3.When a particualr app version is promoted to production, the above url,
 cartridge type and the tenant id need to be passed to Stratos Manager via
 the API.
 4. The App version which has domain mapping will be highlighted. When the
 deploy button is hit from Build n Repo page/AppHome page for this App
 version, if AS is fronted by LB then LB will forward the request to correct
 cluster node or else the request will directly hit AS.
 6. Using the Virtual Host concept in AS, the deployed application will be
 available in the browser.


 --
 Thanks and Regards,

 Punnadi Gunarathna
 Senior Software Engineer,
 WSO2, Inc.; http://wso2.com http://wso2
 Blog: http://hi-my-world.blogspot.com/
 Tel : 94 11 214 5345
 Fax :94 11 2145300



  http://lalajisureshika.blogspot.com/




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Clarification on User sign in process of the new Cloud user model

2014-04-18 Thread Amila Maha Arachchi
On Fri, Apr 18, 2014 at 5:54 PM, Chan duli...@wso2.com wrote:

 Hi Sumedha/Dmitry,
 In this scenario - is the user going to authenticate himself first to be
 able to see the organizations? Why I am asking is because in EMM - the
 Android Agent has a user login. We need to know whether there is a security
 issue in showing the user the available organizations as tenants for
 unauthenticated users.


Yes, the user has to be logged in to see the organisations he/she is
associated with (we are doing it that way). Otherwise, it is an issue to
show the available organisations/tenants for users who are not signed in.


 Cheers~


 On Fri, Apr 18, 2014 at 10:09 AM, Sumedha Kodithuwakku 
 sumed...@wso2.comwrote:

 [Adding to Architecture]


 On Fri, Apr 18, 2014 at 12:37 AM, Dmitry Sotnikov dmi...@wso2.comwrote:

 Sumedha,

 +1 on all three cases.

 Dmitry


 On Thu, Apr 17, 2014 at 10:25 AM, Sumedha Kodithuwakku 
 sumed...@wso2.com wrote:

 Hi Dmitry,

 In the new model user can be a member of several organizations.
 Therefore there can be three situations as follows;

 I have assumed the approach we should take in each case. Please clarify
 whether they are correct or or not.

 *Case 1: User is a member of  more than one Organization*

 User Will be given the option of selecting the desired Organization.
 Once he sing in, there will be a Organization management page where user
 can modify/add new Organizations. Therefore in the organization selection
 page there won't be a way to add a new organization.

 *Case 2: User is a member only in one organization*

 User will be sing in directly to that Organization. Once he sign in
 there will be a Organization management page where user can modify/add new
 Organizations.

 *Case 3: User is not a member of any Organization*

 User should be redirected to page where he can add a new organization
 and then sing in the user into that organization. This page can be the same
 as above.


 Thanks
 SumedhaS

 --
 *Sumedha Kodithuwakku*
 Software Engineer
 WSO2 Inc. : wso2.com
 lean . enterprise . middleware

 Email: sumed...@wso2.com;  Mobile: +94 71 808 1124
 Blog: http://sumedhask.blogspot.com/




 --
 Dmitry Sotnikov
 VP of Cloud; WSO2, Inc.;  http://wso2.com/
 email: dmi...@wso2.com; cell: +1.949.303.9653; Skype: DSotnikov
 Lean . Enterprise . Middleware

  http://wso2.com/events/




 --
 *Sumedha Kodithuwakku*
 Software Engineer
 WSO2 Inc. : wso2.com
 lean . enterprise . middleware

 Email: sumed...@wso2.com;  Mobile: +94 71 808 1124
 Blog: http://sumedhask.blogspot.com/


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




 --
 Chan (Dulitha Wijewantha)
 Software Engineer - Mobile Development
  WSO2Mobile
 Lean.Enterprise.Mobileware
  * ~Email   duli...@wso2.com duli...@wso2mobile.com*
 *  ~Mobile +94712112165 %2B94712112165*
 *  ~Website   dulitha.me http://dulitha.me*
 *  ~Twitter @dulitharw https://twitter.com/dulitharw*
   *~Github @dulichan https://github.com/dulichan*
   *~SO @chan http://stackoverflow.com/users/813471/chan*

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Clarification on User sign in process of the new Cloud user model

2014-04-18 Thread Amila Maha Arachchi
On Fri, Apr 18, 2014 at 6:20 PM, Chan duli...@wso2.com wrote:

 On Fri, Apr 18, 2014 at 5:58 PM, Amila Maha Arachchi ami...@wso2.comwrote:




 On Fri, Apr 18, 2014 at 5:54 PM, Chan duli...@wso2.com wrote:

 Hi Sumedha/Dmitry,
 In this scenario - is the user going to authenticate himself first to be
 able to see the organizations? Why I am asking is because in EMM - the
 Android Agent has a user login. We need to know whether there is a security
 issue in showing the user the available organizations as tenants for
 unauthenticated users.


 Yes, the user has to be logged in to see the organisations he/she is
 associated with (we are doing it that way)


 ​How are you guys doing this? Is it by authenticating to all the tenant
 user-store or showing all the available tenants to the user?


We have a flat user base in LDAP. Tenants are created as ou in LDAP. Users
are added to these tenants. Authentication is done against the flat user
base. Then we check which tenants this user is associated with and display
them.

We haven't implemented the scenario where a tenant having a separate
user-store. We were planning to distinguish such users based on the tenant
domain and authenticate against their user store. I cannot further comment
on implementation details coz this is not done yet.

 ​

 . Otherwise, it is an issue to show the available organisations/tenants
 for users who are not signed in.


 Cheers~


 On Fri, Apr 18, 2014 at 10:09 AM, Sumedha Kodithuwakku 
 sumed...@wso2.com wrote:

 [Adding to Architecture]


 On Fri, Apr 18, 2014 at 12:37 AM, Dmitry Sotnikov dmi...@wso2.comwrote:

 Sumedha,

 +1 on all three cases.

 Dmitry


 On Thu, Apr 17, 2014 at 10:25 AM, Sumedha Kodithuwakku 
 sumed...@wso2.com wrote:

 Hi Dmitry,

 In the new model user can be a member of several organizations.
 Therefore there can be three situations as follows;

 I have assumed the approach we should take in each case. Please
 clarify whether they are correct or or not.

 *Case 1: User is a member of  more than one Organization*

 User Will be given the option of selecting the desired Organization.
 Once he sing in, there will be a Organization management page where user
 can modify/add new Organizations. Therefore in the organization selection
 page there won't be a way to add a new organization.

 *Case 2: User is a member only in one organization*

 User will be sing in directly to that Organization. Once he sign in
 there will be a Organization management page where user can modify/add 
 new
 Organizations.

 *Case 3: User is not a member of any Organization*

 User should be redirected to page where he can add a new organization
 and then sing in the user into that organization. This page can be the 
 same
 as above.


 Thanks
 SumedhaS

 --
 *Sumedha Kodithuwakku*
 Software Engineer
 WSO2 Inc. : wso2.com
 lean . enterprise . middleware

 Email: sumed...@wso2.com;  Mobile: +94 71 808 1124
 Blog: http://sumedhask.blogspot.com/




 --
 Dmitry Sotnikov
 VP of Cloud; WSO2, Inc.;  http://wso2.com/
 email: dmi...@wso2.com; cell: +1.949.303.9653; Skype: DSotnikov
 Lean . Enterprise . Middleware

  http://wso2.com/events/




 --
 *Sumedha Kodithuwakku*
 Software Engineer
 WSO2 Inc. : wso2.com
 lean . enterprise . middleware

 Email: sumed...@wso2.com;  Mobile: +94 71 808 1124
 Blog: http://sumedhask.blogspot.com/


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




 --
 Chan (Dulitha Wijewantha)
 Software Engineer - Mobile Development
  WSO2Mobile
 Lean.Enterprise.Mobileware
  * ~Email   duli...@wso2.com duli...@wso2mobile.com*
 *  ~Mobile +94712112165 %2B94712112165*
 *  ~Website   dulitha.me http://dulitha.me*
 *  ~Twitter @dulitharw https://twitter.com/dulitharw*
   *~Github @dulichan https://github.com/dulichan*
   *~SO @chan http://stackoverflow.com/users/813471/chan*

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




 --
 *Amila Maharachchi*
 Senior Technical Lead
 WSO2, Inc.; http://wso2.com

 Blog: http://maharachchi.blogspot.com
 Mobile: +94719371446


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




 --
 Chan (Dulitha Wijewantha)
 Software Engineer - Mobile Development
  WSO2Mobile
 Lean.Enterprise.Mobileware
  * ~Email   duli...@wso2.com duli...@wso2mobile.com*
 *  ~Mobile +94712112165 %2B94712112165*
 *  ~Website   dulitha.me http://dulitha.me*
 *  ~Twitter @dulitharw https://twitter.com/dulitharw*
   *~Github @dulichan https://github.com/dulichan*
   *~SO @chan http://stackoverflow.com/users/813471/chan*




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446

Re: [Architecture] [AppFactory] Incorporating usability improvements

2014-04-16 Thread Amila Maha Arachchi
These text should be i18nable. For example I see a text Welcome to WSO2
App Cloud. But this can be Welcome to WSO2 AppFactory or Welcome to XYZ
App Portal etc. depending on the deployment. So, the text should be
modifiable from one place.


On Fri, Apr 11, 2014 at 11:30 PM, Gayan Dhanushka gay...@wso2.com wrote:

 Hi all,

 Following images depicts the final outcomes after incorporating the
 usability improvements to the user home, application creation and
 application home pages.

 Following is a list of improvements that have been done.


- Remove repository type from application home and application
creation pages since we only have it at the moment.
- Remove repository accessibility since we support per developer
repositories by default.
- Have War executable and Jaggery executable upload as another
application type and show the browse file and upload file option based on
it.
- Introduce icons for application types and show an icon for
application type on the application home page.
- Introducing ability to edit the application icon.(not shown in the
images)
- Remove the second row in the application home page and move
important information like application owner and production url to the
first row. (can be seen by comparing the current cloudpreview vs the
attached image)
- Change name of the test button dynamically depending on the
application type to Test or Launch.
- Introducing a new field to specify the ultimate production url of
the application. Showing this on the application home page and making it
editable.
- Introducing help messages which is done in accordance with i18n.
Externalized tool tips which is also in accordance with i18n.
- Improving the UIs by fixing some UI related improvements.

 Following are the screenshots of the new UIs after improvements. Please
 note that the icons used here are sample icons.(A new set of icons will be
 incorporated next week.)

 User Home


  
 userhome.pnghttps://docs.google.com/a/wso2.com/file/d/0B5OmHe7M-ZSHYXBZRXZqSkxoOVU/edit?usp=drive_web

 Application Creation


  
 appcreation.pnghttps://docs.google.com/a/wso2.com/file/d/0B5OmHe7M-ZSHNFNYaVNqWWpmWFE/edit?usp=drive_web

 Application Home


  
 apphome.pnghttps://docs.google.com/a/wso2.com/file/d/0B5OmHe7M-ZSHcklUT045Ukc3d1U/edit?usp=drive_web

 Please share your thoughts.

 Thanks

 GayanD


 Gayan Dhanuska
 Software Engineer
 http://wso2.com/
 Lean Enterprise Middleware

 Mobile
 071 666 2327

 Office
 Tel   : 94 11 214 5345
 Fax  : 94 11 214 5300

 Twitter : https://twitter.com/gayanlggd

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Issues when using email address as the userName in Appfactory

2014-04-10 Thread Amila Maha Arachchi
There should be only one place where the code should refer to get the
username, tenant domain etc.. If there is no such method available in app
mgt code, whoever going to fix this, first need to add that method. Then
when we come across places where we need to change the code, we should
point to that method.


On Thu, Apr 10, 2014 at 4:30 AM, Dimuthu Leelarathne dimut...@wso2.comwrote:

 Hi Amani,

 Feel free to go ahead and commit the fix in this place and other places
 that you ran into. If you want us to do a end-to-end test with email as
 username, we will need a little more time as all of the AF team is
 sprinting towards the milestone today.

 thanks,
 dimuthu



 On Wed, Apr 9, 2014 at 8:58 PM, Amani Soysa am...@wso2.com wrote:

 Hi Dilshan

 What I meant is the following

 tenantDomain = userName.substring(userName.lastIndexOf('@') + 1);

 Since we are sure that domain name cannot contain @ taking lastIndexOf
 is enough and safe rather than writing a regular expression to get the
 tenant domain .. Is there any reason why you suggested regular expression?





 On Wed, Apr 9, 2014 at 4:13 PM, Dilshan Edirisuriya dils...@wso2.comwrote:

 Although the lastIndexOf will work properly I suggest you add an regular
 expression so that it will work in any instance to get the domain name out
 of it.


 On Wed, Apr 9, 2014 at 3:55 PM, Amani Soysa am...@wso2.com wrote:

  Hi All,

 We are changing the current tenant model with a flat hierarchy in the
 cloud, where we keep the email address as the user name.
 In this model, the logged in user will be am...@wso2.com@abc.com,
 where my domain name will be abc.com and user name will be
 am...@wso2.com

 This introduce couple of issues in app management app as in the app
 management we assume that there will be only one @ sign and we are
 spiting from @ sign to get the user name and domain separately.

 For example [1]

 var getAllAppsOfUser = function(userName){
 // jagg.module(permission).checkUserAuthenticated();
  try {
  var result;
  result = getAllApps(userName.split('@')[0]);




 [1] -
 https://svn.wso2.org/repos/wso2/scratch/appfactorycc/products/appfactory/1.1.0/modules/jaggery-apps/appmgt/src/modules/application/get/list.jag

 There are several places like this in app management, how should we
 handle it? Is it possible to change the app_mgt code to break the user from
 lastIndexOf('@') instead of using split? and also shall we introduce a new
 module to get the userName and tenantDomain in a central location so we
 don't have to do this same logic in several jaggery pages.


 Regards,
 Amani

 --
 Amani Soysa
 Senior Software Engineer
 Mobile: +94772325528
 WSO2, Inc. | http://wso2.com/
 Lean . Enterprise . Middleware

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




 --
 Dilshan Edirisuriya
 Senior Software Engineer - WSO2
 Mob: + 94 777878905
 http://wso2.com/

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




 --
 Amani Soysa
 Senior Software Engineer
 Mobile: +94772325528
 WSO2, Inc. | http://wso2.com/
 Lean . Enterprise . Middleware

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




 --
 Dimuthu Leelarathne
 Architect  Product Lead of App Factory

 WSO2, Inc. (http://wso2.com)
 email: dimut...@wso2.com
 Mobile : 0773661935

 Lean . Enterprise . Middleware

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Provide support for self signup for tenants' APIStores

2014-04-01 Thread Amila Maha Arachchi
Shariq,

How this will affect the cloud deployment? If this configuration is not
found in the tenant registry what will happen? I think we need to have a
method which we can pass the roles which we want to assign to the signed up
users (then we can use it in the cloud scenario). You will have to add it
to registration service.

Also, can you post the configuration which you are going to add in the
registry? AFAIR, Prabath mentioned about some other facts such as which
user store the tenant wants to add this user, whether the role is internal
or external, etc.


On Tue, Apr 1, 2014 at 6:24 PM, Shariq Muhammed sha...@wso2.com wrote:

 Hi all,

 Had a chat with Prabath, Sumedha and AmilaM regarding this and decided to
 move the SelfSignUp config to tenant's registry so that tenant's could
 specify per tenant default sign up roles. Also, we need to provide a new UI
 so tenant admins can configure the sign up roles for their tenancy.



 On Thu, Jan 23, 2014 at 11:03 AM, Dimuthu Leelarathne 
 dimut...@wso2.comwrote:

 Hi Sumedha,


 On Thu, Jan 23, 2014 at 10:31 AM, Sumedha Rubasinghe sume...@wso2.comwrote:

 For external users this is part of single story. The fact that these
 components are coming from different projects is irrelevant.

 So it needs to happen like how you have mentioned.

 We can make CloudApp the starting point and execute this logic in there.


 Yes. I was proposing to do it in CloudApp. And one step further - do it
 in CloudApp only. That is how we plan to handle user-mgt and etc .. forAF. 
 So when AF is deployed in
 a MT scenario, it goes with the CloudApp.

 thanks,
 dimuthu




 On Thu, Jan 23, 2014 at 9:49 AM, Dimuthu Leelarathne 
 dimut...@wso2.comwrote:

 Hi all,

 If terms of WSO2 Cloud then I think we have to think in terms of the
 CloudApp as well. For example. Firstly tenants sign up to the cloud. And
 are they again suppose to sign up to the API Store?

 In the CloudMgt App we have three selections

 - Integration Cloud
 - App Cloud
 - API Cloud

 So if a person ticks API cloud all of these things should happen.

 thanks,
 dimuthu





 On Thu, Jan 23, 2014 at 12:36 AM, Lalaji Sureshika lal...@wso2.comwrote:

 Hi,


 On Wed, Jan 22, 2014 at 10:34 PM, Chamath Gunawardana 
 chama...@wso2.com wrote:




 On Wed, Jan 22, 2014 at 7:29 PM, Lalaji Sureshika lal...@wso2.comwrote:

 Hi,


 On Wed, Jan 22, 2014 at 5:36 PM, Prabath Siriwardena 
 prab...@wso2.com wrote:

 If this is per tenant - you cannot do it via a configuration in the
 identity.xml...

 Ideally the tenant admin should have an option in the UI to
 enable/disable SelfSignUp and if it is enabled he should be able to 
 specify
 the default role or the role list.


If I understood correctly,with current approach  SelfSignUp
 function through UserSelfRegistrationService, is enabled for each
 tenant and it picks same custom defined role in identity.xml for each
 tenant. If we are going to support the use-case of ability to configure
 self signup and its assigning custom roles per tenant basis,we have
 to move the self-signup config from identity.xml used in 
 UserSelfRegistrationService to a registry config.

 In IS next release (4.7.0) we are planning to save configuration
 (email templates) tenant wise. Actually it will be the contents of
 email-admin-config.xml will be saved tenant wise and provide an view in
 management console for editing. So I think you can extend it to save the
 identity.xml based on tenants in the registry as well.



If going to make identity.xml  as tenant awared,it will be
 relatively big change as it uses by different IS components.What I meant
 was,only the SelfSignUp config to move for registry as a separate
 file..And one more point I forgot from my previous comment is that we have
 to have ability of defining custom permissions for the created custom role
 from this SelfSignup config as well..Reason for that is,previously we do
 create the custom role from APIM during server startup and tenant
 initialization with our custom permissions,before a user trigger
 signup function from APIStore. But since we are going to move this
 selfsignup dynamically configurable via registry,we don't have the
 control to explicitly create changing roles dynamically from a separate
 code,before trigger signup function.

 Thanks;





 Then the tenant admin can change that config file accordingly from
 management console which is similar to the tiers.xml usage in APIM.
 Is there any other better approach of doing this? Else shall we
 proceed with above change in IS self-signup related code?

  Thanks;


 Thanks  regards,
 -Prabath


 On Wed, Jan 22, 2014 at 5:30 PM, Asela Pathberiya 
 as...@wso2.comwrote:




 On Wed, Jan 22, 2014 at 4:51 PM, Lalaji Sureshika lal...@wso2.com
  wrote:

 Hi,

 I checked the code and found below configuration need to be added
 to identity.xml,in-order to configure the self signup user's
 assigning role.

 SelfSignUp
 SignUpRole
 Nametest/Name
 Externaltrue/External
 

Re: [Architecture] WSO2 Products Tenant Creation Process calls the Reset Password

2014-03-10 Thread Amila Maha Arachchi
What are the issues of having this?


On Thu, Mar 6, 2014 at 9:08 AM, Danushka Fernando danush...@wso2.comwrote:

 Hi all
 I found that our tenant creation process is calling reset password call
 inside tenant creation process.
 When we call tenant creation it goes through *persistTenant* call in
 *TenantPersistor* class. And it calls *persistTenantInUserStore*. In the
 end of this call it calls for *updateTenantAdminPassword*.

 By the time Tenant Manager is created the tenant admin and have added the
 password to the LDAP.

 So is there a particular reason that we should do this?

 I cant see any reason that we call the update/reset password at this
 moment. So IMO we should remove this if no such reason. WDYT?


 Thanks  Regards
 Danushka Fernando
 Software Engineer
 WSO2 inc. http://wso2.com/
 Mobile : +94716332729




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] Dynamically load data sources defined on master-datasources.xml on startup

2014-02-20 Thread Amila Maha Arachchi
On Friday, February 21, 2014, Kasun Gajasinghe
kas...@wso2.comjavascript:_e(%7B%7D,'cvml','kas...@wso2.com');
wrote:


 I believe the issue here is that the JNDi context won't be available for a
 carbon component/bundle until the org.wso2.carbon.ndatasource.core bundle
 is activated during server startup. Any bundle that gets activated before
 this bundle won't see the JNDi contexts. I think Manoj is facing that issue
 here.


 AFAIK, there isn't a way to specify the bundle order. So, one option is to
 write a o.w.c.core.ServerStartupHandler which will get invoked after the
 server starts up successfully. By that time, the JNDi contexts etc. will be
 available. Is there any other option?


You can delay the bundle activation by using a osgi service dependency to
ndatasource core (if it has registered one). Then the bundle won't get
activated until ndatasource core is active.


 Regards,
 KasunG



 On Fri, Feb 21, 2014 at 1:19 AM, Anjana Fernando anj...@wso2.com wrote:

 Hi guys,

 Yeah, the existing data source component does exactly that. When you
 mention a data source in a *-datasources.xml file, you can make it
 available as JNDI resource, that is what the following section of a data
 source configuration does:

 jndiConfig
 name{RES_NAME}/name
 !-- optional properties --
 environment
 property name=java.naming.factory.initial{ICS}/property
 property name=java.naming.provider.url{PROVIDER_URL}/property
 /environment
 /jndiConfig

 And as Senaka mentioned, this is how registry and user-manager looks up
 its data sources when the server is starting up. Hope this is what Manoj is
 looking for.

 Cheers,
 Anjana.


 On Fri, Feb 21, 2014 at 1:00 AM, Senaka Fernando sen...@wso2.com wrote:

 Hi Manoj,

 Please find the responses inline.

 On Thu, Feb 20, 2014 at 8:25 PM, Manoj Fernando man...@wso2.com wrote:

 Hi Senaka,

 What I meant was the scenario of me as an outside developer wanting to add
 a new datasource for my own carbon component.  Right now, just adding the
 datasource into the xml doesn't make it available as a JNDI resource.  You
 need to do that extra step of reading the XML and attaching that onto the
 InitialContext (AFAIK).  It would be much nicer IMO to have those
 datasources added into the initialcontext during bootstrap so that whatever
 component needing to use any of them can simply use the JNDI key to
 reference.


 IINM, you should not be doing this. The JNDI referencing should work from
 any component, webapp etc. We have done nothing special @ the registry
 kernel for instance and if the JNDI referencing works in there it should
 work elsewhere too. Copied Anjana to get this clarified.


 The convenience on system properties would be similar.  We can have a
 config file under repository conf that will get automatically loaded as
 system properties for any component that might need them.  Yes I know we
 can pass them as startup parameters, but it was basically a suggestion for
 sysadmin/developer convenience.  Nothing major... but just for convenience.


 IMHO, it can be a convinience with regards to some use-cases and an
 inconvinience with regards to some others. I think we need to consider the
 pros and cons. There are things like clustering, environment-separation,
 which overrides what (i.e. JAVA_OPTS vs this file) etc that we need to
 think about. Will add some points later.

 Thanks,
 Senaka.


 Regards,
 Manoj


 On Thu, Feb 20, 2014 at 11:14 PM, Senaka Fernando sen...@wso2.com wrote:

 Hi Manoj,

 Datasources can be referenced by JNDI key even now. This is how it works
 in Registry Kernel and UM. Is it done in some other way in carbon
 components?

 And, for system properties, you can pass these through the
 wso2server.sh/bat. I see no benefit of having a separate component to do
 just that. Am I missing something here?

 Thanks,
 Senaka.


 On Thu, Feb 20, 2014 at 6:37 PM, Manoj Fernando

 *Kasun Gajasinghe*
 Software Engineer;
 WSO2 Inc.; http://wso2.com


  ,
 *email: *
 *kasung AT spamfree wso2.com http://wso2.com   ** cell: **+94 (77)
 678-0813*
 *linked-in: *http://lk.linkedin.com/in/gajasinghe



 *blog: **http://kasunbg.org* http://kasunbg.org



 *twitter: **http://twitter.com/kasunbg* http://twitter.com/kasunbg





-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] Any plans of providing app deletion feature to the AppFactory users?

2014-02-10 Thread Amila Maha Arachchi
Hi AF team,

$Subject?

If not, why? I know you have the backend capability.

Regards,
AmilaM.

-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Any plans of providing app deletion feature to the AppFactory users?

2014-02-10 Thread Amila Maha Arachchi
If you are planning to include this by the time of 1.1.0 release, that
would be enough. Just wanted to know whether you have plans on making this
available for the end user.


On Mon, Feb 10, 2014 at 6:26 PM, Ashansa Perera asha...@wso2.com wrote:

 Hi Amila,

 I think we have implemented most of the required functionality for this in
 the process of making the application creation resilient and I hope we
 can add this feature in an upcoming milestone considering the other
 priorities as well.


 On Mon, Feb 10, 2014 at 2:55 PM, Amila Maha Arachchi ami...@wso2.comwrote:

 Hi AF team,

 $Subject?

 If not, why? I know you have the backend capability.

 Regards,
 AmilaM.

 --
 *Amila Maharachchi*
 Senior Technical Lead
 WSO2, Inc.; http://wso2.com

 Blog: http://maharachchi.blogspot.com
 Mobile: +94719371446


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




 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [AppFactory] Need to rethink about log viewer

2014-01-03 Thread Amila Maha Arachchi
Hi AF team,

Have you done any improvements to the log viewer? I am asking this because
I want to get this included in AF before the release.

Regards,
AmilaM.


On Thu, Oct 31, 2013 at 6:25 PM, Amila Maha Arachchi ami...@wso2.comwrote:

 Hi all,

 This is not the correct time to discuss this topic since many of you are
 in the WSO2Con and might miss the mail. But I thought of bringing this up
 before I forget this.

 At the moment, AF has a log viewing feature. What it does is, talk to AS,
 get the logs via the LogViewer service and present it as a downloadable
 file. This is same for archived logs and real-time logs. But it is a pain
 to download a file to view the real-time logs. Ideally what should happen
 is, get the real-time logs periodically and display them in the a console
 kind of a thing. When new logs are available, we can push the exisitng ones
 down and display the new logs. With this way, we can improve the user
 experience to a great extent.

 Regards,
 AmilaM.

 --
 *Amila Maharachchi*
 Senior Technical Lead
 WSO2, Inc.; http://wso2.com

 Blog: http://maharachchi.blogspot.com
 Mobile: +94719371446




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] Allow ESB to put and update registry properties

2014-01-02 Thread Amila Maha Arachchi
Hi,

At the moment, ESB can only get the registry properties. But it seems
useful to put and update properties to the registry too.

This can be used when coordinating a scheduled task between multiple ESB
nodes. If we have multiple ESB nodes and theres a scheduled task, we dont
have a way to control them running in a single node. We have the pinned
server concept. But it does not have a failover mechanism. So, if we can
use a flag in the registry and if ESB can update it when starting the task
(similar to a lock we use in programming), it can be used to coordinate.

For the above requirement, ESB needs to support putting and updating
properties to the registry. I think it wont be difficult since get is
already there.

Regards,
AmilaM.

-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Allow ESB to put and update registry properties

2014-01-02 Thread Amila Maha Arachchi
On Thu, Jan 2, 2014 at 5:10 PM, Kasun Indrasiri ka...@wso2.com wrote:

 Hi,

 We may have couple of use case to add registry resources from a mediation
 flow (similar to a DBReport behavior). So we might need a similar mediator
 which can add content in to the registry. This should use the
 org.apache.synapse.registry.Registry api and  we should not write any
 carbon specific code in it.

 But this is not a good approach to achieve coordinations between tasks. We
 are planning to have a new scheduled task implementation on top of
 Hazelcast which can cater all such requirements.


Agreed. If we have a better approach, then its great. This is something I
faced recently and that was the workaround I could think of at that time.
If you see there are other reasonable usecases, I have added this to ESB
roadmap.



 On Thu, Jan 2, 2014 at 4:05 PM, Amila Maha Arachchi ami...@wso2.comwrote:

 Hi,

 At the moment, ESB can only get the registry properties. But it seems
 useful to put and update properties to the registry too.

 This can be used when coordinating a scheduled task between multiple ESB
 nodes. If we have multiple ESB nodes and theres a scheduled task, we dont
 have a way to control them running in a single node. We have the pinned
 server concept. But it does not have a failover mechanism. So, if we can
 use a flag in the registry and if ESB can update it when starting the task
 (similar to a lock we use in programming), it can be used to coordinate.

 For the above requirement, ESB needs to support putting and updating
 properties to the registry. I think it wont be difficult since get is
 already there.

 Regards,
 AmilaM.

 --
 *Amila Maharachchi*
 Senior Technical Lead
 WSO2, Inc.; http://wso2.com

 Blog: http://maharachchi.blogspot.com
 Mobile: +94719371446


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




 --
 Kasun Indrasiri
 Software Architect
 WSO2, Inc.; http://wso2.com
 lean.enterprise.middleware

 cell: +94 77 556 5206
 Blog : http://kasunpanorama.blogspot.com/

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [AF]A system to ensure that all the other external apps and servers are up and running before we create an app in App Factory?

2013-12-04 Thread Amila Maha Arachchi
On Thu, Dec 5, 2013 at 11:21 AM, Ramith Jayasinghe ram...@wso2.com wrote:


 So lets take some examples:

  #1) Suppose user goes and creates version for an existing application.
 and at that time the connection between Issue tracking server was lost.
 therefore, the version is not created in Issue tracker.
  Eventually system recovered (or person responsible for maintain the
 system fixed the problem).  However, the relevant version is not created in
 Issue tracker, therefore users can't report the issues against that
 application version.

  #2) Suppose in a similar situation ( user creates an application version)
 connectivity between build server was lost. which means there won't be a
 build job created for the this application version. Hence user won't be
 able to build/deploy the application ( -- a blocker from users
 prospective). Even if the connectivity is restored momentarily that will
 not help the users since he can't build his application.

 #3) Application Creation : AF does lots of taks (creating repos , build
 jobs etc) behinds the scenes. if something goes heywire what would be the
 mechanism to correct it. ( in this particular scenario it might make sense
 to roll back ... which again could fail in middle.).

 #4) Tenant creation: same as above.


 In my opinion its not realistic for someone, to go and correct these, in
 the back end specially in a large deployment. ( Further, would tenants
 agree/ feel comfortable having parties who are maintaining the deployment
 accessing their data directly from backend ?).

 What I think we need is a way to repair/diagnose situations such as above
 without having to go to backend. it could be something like a service desk.


If we maintain a service desk, we can fix such issues when we receive a
complain from the user. Thats one option. I agree we need to have such a
thing (set of tools for the administrator).

But, when an app is created, if the issue tracker is down, if the code can
store the job in a queue and re try periodically, then, when the issue
tracker is up, that app will be added to it. (self healing). Thats what I
meant by fail-proof coding + deployment.



 Thoughts ?




 On Wed, Dec 4, 2013 at 5:22 PM, Amila Maha Arachchi ami...@wso2.comwrote:

 Distributed systems are bound with failures in components. What needs to
 be done is fail-proof (resilient) coding. A monitoring tool can alert us
 with the failures and it will take time to fix them.

 Both deployment and code needs to be fail-proof.


 On Wed, Dec 4, 2013 at 5:05 PM, Ramith Jayasinghe ram...@wso2.comwrote:

 Basically what we need is some kind of a monitoring system to figure out
 if everything is running smoothly.
 And possibly have ways to correct inconsistencies/errors that occur. In
 my view its might not be realistic to log in to servers directly and do
 modifications when the deployment becomes large.



 On Wed, Dec 4, 2013 at 4:56 PM, Ushani Balasooriya ush...@wso2.comwrote:

 Hi,

 Can we have the $subject.  During the Automation demo, Internal issue
 tracker was down. But when I proceeded with the flow, meantime could get it
 up.

 Then when I tried to select the project from the drop down list of the
 Issue tracker, the app was not visible since the issue tracker was down
 during the app creation. So all the other actions taken was a waste.

 If there is a system to ensure all the other apps needed to this flow
 is available, I think we can get rid of these type of issues.


 Thanks and Regards,
 --
 *Ushani Balasooriya*
 Software Engineer - QA;
 WSO2 Inc; http://www.wso2.com/.
 Mobile; +94772636796




 --
 Ramith Jayasinghe
 Technical Lead
 WSO2 Inc., http://wso2.com
 lean.enterprise.middleware

 E: ram...@wso2.com
 P: +94 776715671


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




 --
 *Amila Maharachchi*
 Senior Technical Lead
 WSO2, Inc.; http://wso2.com

 Blog: http://maharachchi.blogspot.com
 Mobile: +94719371446


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




 --
 Ramith Jayasinghe
 Technical Lead
 WSO2 Inc., http://wso2.com
 lean.enterprise.middleware

 E: ram...@wso2.com
 P: +94 776715671




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Separating 'My Identity' functionality from management console

2013-11-26 Thread Amila Maha Arachchi
We are using the TenantManager normally to get the tenant domain by
providing the tenant id. But, AFAIK, this is not accessible via the
existing admin services.



On Tue, Nov 26, 2013 at 4:00 PM, Venura Kahawala ven...@wso2.com wrote:

 Hi,

 Is there a web service method to get the tenant domain by providing the
 user name?

 The scenario is the  jaggery application might be deployed within a
 separate carbon container rather than the IS as described in above mails.
 Therefore calling the
 PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain()
 will not provide the correct answer.

 Regards,
 Venura


 On Thu, Oct 10, 2013 at 2:38 PM, Dulanja Liyanage dula...@wso2.comwrote:

 Hi Venura,

 Yes you are correct. I've had a misunderstanding. Thanks.

 Regards
 Dulanja.


 On Thu, Oct 10, 2013 at 12:36 PM, Venura Kahawala ven...@wso2.comwrote:

 Hi Dulanja,

 AFAIK if we use TLS, message will be encrypted and only the server will
 be able to decrypt the message since TLS key is shared between only the
 client (browser) and server. This is because at the time of symmetric key
 exchange, client encrypt the key with the server's public key and send that
 to the server . Anyway we are not going to use request redirection but a
 POST request.


 Regards,
 Venura


 On Thu, Oct 10, 2013 at 11:56 AM, Dulanja Liyanage dula...@wso2.comwrote:

 Ah, but i guess the jaggery app and the Authentication Framework would
 be in the same machine, then this won't be a prob if we use LAN address for
 the POST


 On Thu, Oct 10, 2013 at 11:51 AM, Dulanja Liyanage dula...@wso2.comwrote:

 The problem of sending a POST outside of the internal network is
 anyone can grab the credentials during wire transfer (if not secured with
 HTTPS) or at transits (even if secured with HTTPS). Then we need to
 consider about encryption.


 On Wed, Oct 9, 2013 at 10:09 PM, Johann Nallathamby 
 joh...@wso2.comwrote:

 Hi Venura,

 This should be done using the application authentication framework we
 have. As we will be migrating our carbon authenticators also to this it 
 is
 best to use this framework.

 All you need to do is get the username and password of the user (if
 you are using Basic Authentication) and do a POST to the commonauth
 servlet. This way the authentication mechanism is independent from your
 webapp. Only thing is currently we don't have an authenticator that calls
 the IS webservice APIs for authentication. This could be easily done by
 writing a new authenticator. Curently we have a Basic Auth authenticator
 which authenticates with the underlying user store and a SAML SSO
 authenticator for doing Single-Sign-On.


 On Wed, Oct 9, 2013 at 7:32 PM, Venura Kahawala ven...@wso2.comwrote:

 Hi,

 I'm now implementing the log in functionality for the My-Identity
 app. As per my understanding current user management functionality
 implemented within jaggery uses OSGI services. This is correct if the
 mentioned application is only deployed within the IS server and 
 therefore
 my-identity app is connected to the same user store as the IS. But if we
 deploy the application within an AS, the scenario might be different.

 This is also acceptable if the AS and IS both connects to the same
 user store. But in some scenarios  these two server might not be 
 connected
 to the same user store.
 For example, IS and user store is located within the internal
 network while AS is located outside the internal network and AS is not
 connected to the internal user store. But still we need to deploy the
 my-identity app within the AS since this application is exposed to the 
 end
 users.

 If we need our application to cater above requirement we need to
 implement the log in functionality using web services.

 Please correct me if I'm wrong.

 Regards,
 Venura



 On Tue, Sep 24, 2013 at 11:39 AM, Venura Kahawala 
 ven...@wso2.comwrote:

 Hi,

 We are in the process of moving the below UI features out from the
 IS management console.

 1. My Profiles
 2. Account Recovery
 3. My Authorized apps
 4. OpenID
 5. My SCIM Providers
 6. Multifactor Authentication
 7. Sign-up


 A jaggery application will be implemented with the above mentioned
 features and deployed within IS server. This application can be 
 accessed
 via a different port. High level architecture diagram can be seen here 
 [1].

 Jaggery application will be implemented ad-hearing to the caramel
 framework.

 [1]
 https://docs.google.com/a/wso2.com/drawings/d/1jQsKbSVnH3cHCKkNjaLqr9cBARk0pD04RLPGgid4R7M/edit?usp=sharing

 Please share your thoughts.

 Regards,
 Venura

 --
 Senior Software Engineer

 Mobile: +94 71 82 300 20




 --
 Senior Software Engineer

 Mobile: +94 71 82 300 20




 --
 Thanks  Regards,

 *Johann Dilantha Nallathamby*
 Senior Software Engineer
 Integration Technologies Team
  WSO2, Inc.
 lean.enterprise.middleware

 Mobile - *+9476950*
 Blog - *http://nallaa.wordpress.com http://nallaa.wordpress.com*




 --
 Dulanja Liyanage
 Senior Software 

Re: [Architecture] one more (small) requirement for C5

2013-11-25 Thread Amila Maha Arachchi
If this is addressed, it can solve the problem of deploying custom
mediators via CAR files.


On Tue, Nov 26, 2013 at 8:28 AM, Sanjiva Weerawarana sanj...@wso2.comwrote:

 Hot update of features/bundles .. basically to be able to keep a Carbon5
 based server running continuously forever.

 :-).

 Sanjiva.
 --
 Sanjiva Weerawarana, Ph.D.
 Founder, Chairman  CEO; WSO2, Inc.;  http://wso2.com/
 email: sanj...@wso2.com; office: +1 650 745 4499 x5700; cell: +94 77 787
 6880 | +1 650 265 8311
 blog: http://sanjiva.weerawarana.org/
 Lean . Enterprise . Middleware

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] [AppFactory] Need to rethink about log viewer

2013-10-31 Thread Amila Maha Arachchi
Hi all,

This is not the correct time to discuss this topic since many of you are in
the WSO2Con and might miss the mail. But I thought of bringing this up
before I forget this.

At the moment, AF has a log viewing feature. What it does is, talk to AS,
get the logs via the LogViewer service and present it as a downloadable
file. This is same for archived logs and real-time logs. But it is a pain
to download a file to view the real-time logs. Ideally what should happen
is, get the real-time logs periodically and display them in the a console
kind of a thing. When new logs are available, we can push the exisitng ones
down and display the new logs. With this way, we can improve the user
experience to a great extent.

Regards,
AmilaM.

-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [Cloud] Filtering applications based on subscription

2013-10-09 Thread Amila Maha Arachchi
Hi Ashansa,


On Wed, Oct 9, 2013 at 5:09 PM, Ashansa Perera asha...@wso2.com wrote:

 Hi all,

 For cloud we have subscriptions for aPaaS and iPaaS and both would be
 powered by AppFactory.

 So the user story for application creation would be
 - If the tenant is subscribed only to aPaaS (or iPaaS), when he logs
 in only the application types related to aPaaS ( iPaas) would be listed in
 create application

 - If the tenant is subscribed to both aPaaS and iPaaS, when the tenant
 logs in application types related to both aPaaS and iPaaS would be listed
 in application creation


Even in this case, we need a separation of app cloud (aPaaS) and
integration cloud (iPaaS). When the user login in, we need to track his
selection (whether he is signing in to app cloud or integration cloud).
Based on that we need to hide the irrelevant types.

And, this should be valid to application listing page (home page) as well.
If the user is logged in to app cloud, only the apps of that type should be
shown IMO.



 As a result a user logged in under a particular tenant can only create
 applications related to his subscriptions.

 Suggestions are welcome

 --
 Thanks  Regards,

 Ashansa Perera
 Software Engineer
 WSO2, Inc

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Next steps to aPaaS Application version support and rest of the integration points from AS side

2013-09-04 Thread Amila Maha Arachchi
Hi Supun,

Lets have this this week. Friday would be fine. Can you arrange a meeting
please?

AmilaM.


On Wed, Sep 4, 2013 at 2:37 PM, Supun Malinga sup...@wso2.com wrote:

 Hi Dimuthu/ All,

 As you may know AS  5.2.0 is released now with the support to have
 application versions and set default version. So now we would need to see
 how we can integrate this to aPaaS usage. If there are any improvements
 needed from AS side we need to decide on the early on. Shall we have a
 meeting/ session sometime to see how this fits into aPaaS story?.
 Also  this would be helpful in deciding next AS release action items..

 thanks,
 --
 Supun Malinga,

 Senior Software Engineer,
 WSO2 Inc.
 http://wso2.com
 http://wso2.org
 email - sup...@wso2.com sup...@wso2.com
 mobile - 071 56 91 321

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] JMX Agent Discussion Notes

2013-07-18 Thread Amila Maha Arachchi
On Thu, Jul 18, 2013 at 3:17 PM, Maninda Edirisooriya mani...@wso2.comwrote:

 The most useful scenario I guess is alerting. For example, when one node
 consumes more than 90% of CPU or 80% of memory it can notify admins via
 e-mails. This will be possible after integrating CEP in BAM.


+1

Even though we have JMX stats, users do not want to sit and keep an eye on
the stats. They like to be alerted when they should be. I have seen users
requesting this feature.

AmilaM.


 *
 Maninda Edirisooriya*
 Software Engineer
 *WSO2, Inc.
 *lean.enterprise.middleware.

 *Blog* : http://maninda.blogspot.com/
 *Phone* : +94 777603226


 On Thu, Jul 18, 2013 at 8:41 AM, Srinath Perera srin...@wso2.com wrote:

 JConsole like view should give a multi node view when applicable.

  e.g. If it shows CPU use, show all nodes data in a one graph with a line
 for each node etc.

 --Srinath


 On Wed, Jul 17, 2013 at 9:18 PM, Sanjiva Weerawarana sanj...@wso2.comwrote:

 Two minor comments to the notes:

 - The receiving is a JMX Polling Data Receiver .. so its an active
 receiver that polls and pumps in messages
  - For KPIs- for standard MBeans we should have the same level (or
 better) of OOTB analytics and visualizations that say JConsole has.

 Sanjiva.


 On Wed, Jul 17, 2013 at 8:40 PM, Srinath Perera srin...@wso2.comwrote:

  Participants: Sanjiva, BAM Team, Srinath

1. We will write a JMX receiver in BAM, which will pull the JMX
properties periodically from given list of servers.
2. Each JMX MBean property we interested, we provide a name
3. We will have few JMX properties enabled by default, users can
add remove these.
4. Adding a reciver add a Stream definitions

 To use the data, we follow following model

1. Users go and add a new KPI
2. Either through a visual wizard or a input box, we generate or
write a HIVE/CEP queries to calculate the KPIs
3. Users can also define Gadgets presenting the KPI and can add
alerts while defining a KPIs


 Toolboxes define KPIs , some of which available by default and others
 custom written

 --Srinath




 --
 
 Srinath Perera, Ph.D.
http://people.apache.org/~hemapani/
http://srinathsview.blogspot.com/

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




 --
 Sanjiva Weerawarana, Ph.D.
 Founder, Chairman  CEO; WSO2, Inc.;  http://wso2.com/
 email: sanj...@wso2.com; phone: +94 11 763 9614; cell: +94 77 787 6880| +1
 650 265 8311
 blog: http://sanjiva.weerawarana.org/

 Lean . Enterprise . Middleware

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




 --
 
 Srinath Perera, Ph.D.
http://people.apache.org/~hemapani/
http://srinathsview.blogspot.com/

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



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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] Are we going to consider App deletion feature in AppFac?

2013-07-17 Thread Amila Maha Arachchi
Hi AF team,

$Subject. I know you can retire an app. But isn't it good to allow app
deletion as well? Stratos 1.6 had the problem of not allowing tenant
deletion. For the aPaaS also this will be an issue.

Regards,
AmilaM.

-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Are we going to consider App deletion feature in AppFac?

2013-07-17 Thread Amila Maha Arachchi
On Wed, Jul 17, 2013 at 5:21 PM, Samisa Abeysinghe sam...@wso2.com wrote:

 Is it a policy that we will never support tenant deletion?


AFAIK No. We tried to add tenant deletion capability once to Stratos. We
knew what needs to be done when a tenant was deleted, but we needed to
restart other servers to remove the tenant from cache AFAIR (dont remember
which cache). Since this was not acceptable we stopped providing tenant
deletion.

As Shiro said, since an app is not a tenant anymore, we should be able to
provide app deletion in aPaaS.



 On Wed, Jul 17, 2013 at 3:12 PM, Shiroshica Kulatilake sh...@wso2.comwrote:

 Hi,

 Since an App will no longer be a tenant itself in aPaaS this should not
 be a problem anymore right ?
 An organization will be a tenant and apps will be created within that
 organization.

 Thank you,
 Shiro


 On Wed, Jul 17, 2013 at 3:06 PM, Amila Maha Arachchi ami...@wso2.comwrote:

 Hi AF team,

 $Subject. I know you can retire an app. But isn't it good to allow app
 deletion as well? Stratos 1.6 had the problem of not allowing tenant
 deletion. For the aPaaS also this will be an issue.

 Regards,
 AmilaM.

 --
 *Amila Maharachchi*
 Senior Technical Lead
 WSO2, Inc.; http://wso2.com

 Blog: http://maharachchi.blogspot.com
 Mobile: +94719371446


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




 --
 Shiroshica Kulatilake

 Architect,
 WSO2, Inc. http://wso2.com/
 Phone: +94 776523867

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




 --

 Thanks,
 Samisa...

 Samisa Abeysinghe
 VP Engineering
 WSO2 Inc.
 http://wso2.com
 http://wso2.org

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [aPaaS] Capture webapp statistics

2013-07-15 Thread Amila Maha Arachchi
On Mon, Jul 15, 2013 at 4:39 PM, Samisa Abeysinghe sam...@wso2.com wrote:

 So we are making the AS WebApp BAM toolkit tenant aware?


No. Current AS WebApp stat publishing component publishes data to tenant's
keyspace (it is tenant aware). We need to make it possible to publish to
ST's keyspace regardless of whether the tenant wants to publish stats or
not (because the aPaaS vendor can only access his i.e. ST keyspace and we
want all the stats with us). This is what we do in SLive (publishing to
ST's keyspace).





 On Mon, Jul 15, 2013 at 11:47 AM, Shariq Muhammed sha...@wso2.com wrote:

 Hi Samisa,

 On Mon, Jul 15, 2013 at 8:12 AM, Samisa Abeysinghe sam...@wso2.comwrote:

 Are we not re-using what we already have in AS? What are we inventing
 here?


 Yes the plan is to reuse what's been done in AS. However there are some
 changes we need to do to support this in aPaaS space, for example in AS
 tenant's are allowed to publish to an event stream / CF of their choice,
 but in the *live system all stats should be published to a common ST space
 so that we / provider can centrally manage / analyze the statistics etc. So
 we need to incorporate this to the existing component ...




 On Fri, Jul 12, 2013 at 12:27 PM, Geeth Munasinghe ge...@wso2.comwrote:


 On Fri, Jul 12, 2013 at 11:26 AM, Shariq Muhammed sha...@wso2.comwrote:

 Hi folks,

 I was looking into capturing webapp statistics for aPaaS work, and
 came across the webapp.stat.publisher component written by the AS
 team. It uses a tomcat valve [1] and publish a whole heap of stats, the
 list can be found in the class at [2].

 The new stat component captures way more data than the usage
 components we had before, only missing piece as of now is the
 request/response bandwidth. What we've done now is to patch tomcat
 RequestInfo.java class, if we can somehow capture the bandwidth also in 
 the
 valve we can get rid of tomcat.patch, tomcat.fragment.dummy bundles
 and a few classes from tomcat.ext bundle in the kernel.

 By looking into the tomcat code, it seems we can get the coyote.Request
 (object in RequestInfo) within the valve, but the bandwidth values
 returned are 0.

 request.getCoyoteRequest().getBytesRead(); // = 0
 request.getCoyoteRequest().getResponse().getContentWritten() // = 0

 But the correct values are returned in the patched RequestInfo class,
 so I am still trying to figure out what could be the issue. If we can
 capture this value also at the value we can publish all properties from 
 one
 place.

 So first of all I would like to know if it's fine to go ahead with
 this implementation and improve it to cater aPaaS requirements or do
 we need a separate bundle (would be a fork of this one in the end). IMO we
 should use this component and improve it since there is no point having 2
 bundles doing the same thing.

 One concern, the component is designed for per tenant publishing, and
 the tenant chooses whether or not to publish and where to publish. If we
 are to capture stats centrally we need to publish to a ST CF
 regardless of tenant enable or disable statistics, can be done using a
 config option.

 @Geeth - Noticed that even after a tenant enable stat publishing for
 webapps, we need to again enable publishing per webapp. IMO the model
 should be that if a tenant enable publishing, stats for all deployed
 webapps should be published and tenant should be given the option to
 disable stats selectively.


 Currently we are giving two options for user to enable publishing. 
 Usereither can put context param in web.xml to enable statistic or enable 
 from
 ui. What we thought was user should be able to enable stats publishing
 per webapp rather than publishing for all webapps deployed.


 Thoughts ... ?!

 [1] -
 https://svn.wso2.org/repos/wso2/carbon/platform/trunk/components/data-agents/org.wso2.carbon.bam.webapp.stat.publisher/src/main/java/org/wso2/carbon/bam/webapp/stat/publisher/WebAppStatisticPublisherValve.java
 [2] -
 https://svn.wso2.org/repos/wso2/carbon/platform/trunk/components/data-agents/org.wso2.carbon.bam.webapp.stat.publisher/src/main/java/org/wso2/carbon/bam/webapp/stat/publisher/data/WebappStatEventData.java

 --
 Thanks,
 Shariq.
 Phone: +94 777 202 225



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




 --

 Thanks,
 Samisa...

 Samisa Abeysinghe
 VP Engineering
 WSO2 Inc.
 http://wso2.com
 http://wso2.org




 --
 Thanks,
 Shariq.
 Phone: +94 777 202 225




 --

 Thanks,
 Samisa...

 Samisa Abeysinghe
 VP Engineering
 WSO2 Inc.
 http://wso2.com
 http://wso2.org

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




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446

Re: [Architecture] AS Webapp versioning for aPaaS

2013-07-14 Thread Amila Maha Arachchi
On Mon, Jul 15, 2013 at 9:36 AM, Sagara Gunathunga sag...@wso2.com wrote:




 On Mon, Jul 15, 2013 at 8:15 AM, Samisa Abeysinghe sam...@wso2.comwrote:

 So, version means:
 1. version number appears in URL in addition to the name
 2. version number appears in war file name in addition to the name

 That is all?


 From AS core that's all. Handling default version, changing default
 version time to time and mapping incoming messages to current default
 version ( e.g - mapping /app to  /app/CurrentDefaultVersion ) need to
 be done in a layer in front of AS, as we realized to do those logic with AS
 we need  to fork and modify Tomcat code drastically but even we do so we
 have to face number of  performance issues as Tomcat architecture directly
 deal with Java Socket and low level byte processing on incoming streams.
 So that best approach is to have URL-Rewrite component in ELB level.


Yes. AS does not need to worry about routing the traffic. It only needs to
host multiple versions of a webapp and serves requests coming to them (need
to provide distinct URLs for them). This should be handled at ELB level.


 Thanks !




 On Fri, Jul 12, 2013 at 1:01 PM, Sagara Gunathunga sag...@wso2.comwrote:




 On Fri, Jul 12, 2013 at 12:20 PM, Supun Malinga sup...@wso2.com wrote:

 Hi,

 +1 for option 1 (using the tomcat's default support). That's straight
 forward and simple than the other options.

 However we should test it thoroughly to see if we have tomcat's exact
 behavior..


 I did few testing on this, in fact we can reuse schema and some internal
 processing from Tomcat but still we have to do some improvements as I
 suggested in option-1. The reason is we don't use Tomcat deployers instead
 Carbon deployers so we need some logic to handle versioning within Web
 Application deployers otherwise application deploy with /myapp#20 context
 path instead of /myapp/20. With suggested naming schema changes above
 Option-1 can be modified as follows.


 1. Say user upload a webapp called mvcapp.war with version number 2.0
 2. Assume above web app will be copied to webapps directory of AS as
 mvcapp#20.war
 3. During the deployment it detect file name contains # pattern and
 call to handle versioning
 4. Finally deployer deploy above mvcapp#20.war app with /mvcapp/20
 context path.

 5. Now above app can be accessed using following URL

 http://192.168.1.4:9763/mvcapp/20 http://192.168.1.4:9763/mvcapp/v20


 Note - According to the doc when it come dispatching to a version Tomcat
 use following algorithm.

 If no session information is present in the request, use the latest
 version.
 If session information is present in the request, check the session
 manager of each version for a matching session and if one is found, use
 that version.
 If session information is present in the request but no matching
 session can be found, use the latest version.


 But in our case we don't need  always dispatch to the latest version
 instead users need a control to define the default version and change it
 time to time also  other versions of same application should be uniquely
 accessible  too hence I don't think above algorithm  can be used in our
 case so still we need URL -ReWriting component in front  of AS.

 Thanks !


 thanks,


 On Fri, Jul 12, 2013 at 11:56 AM, Sagara Gunathunga sag...@wso2.comwrote:




 On Fri, Jul 12, 2013 at 6:06 AM, Kishanthan Thangarajah 
 kishant...@wso2.com wrote:

 Hi Sagara,


  On Thu, Jul 11, 2013 at 2:43 AM, Sagara Gunathunga 
 sag...@wso2.comwrote:


 I'm working on ${Subject} to come up with an architectural design to
 cater aPaaS requirements. At the moment I came up with following  ideas
 it's better if we can start a discussion here to find best option among
 them or new best approach.

 (a) Option 1 - Use context-postfix ( like  we use context-prefix to
 handle webapps belong to tenants)
 

 1. Say user upload a webapp called mvcapp.war with version number
 2.0

 2. Assume above web app will be copied to webapps directory of AS
 as mvcapp__v20.war   ( For the moment let's forget how we create
 mvcapp__v20.war file, we have full control on this area)

 3. During the deployment it detect file name contains __v pattern
 and call to handle versioning

 4. Finally deployer deploy above mvcapp__v20.war app with
 /mvcapp/v20 context path.

 5. Now above app can be accessed using following URL

 http://192.168.1.4:9763/mvcapp/v20



 For option-1 above, instead of bringing our own way of app
 versioning, can't we use the same approach that tomcat follows [1] ?

 The following table is copied from the tomcat doc page for reference.

 Context Path Context VersionContext Name Base File NameExample File
 Names (.xml, .war  directory) /foo*None* /foofoo foo.xml, foo.war,
 foo/foo/bar *None*/foo/bar foo#barfoo#bar.xml, foo#bar.war, foo#bar 
 *Empty
 String**None* *Empty String*ROOT ROOT.xml, ROOT.war, ROOT/foo 42
 /foo##42 foo##42foo##42.xml, foo##42.war, foo##42 

Re: [Architecture] [aPaaS][AppFactory] POC for Custom URL mapping for applications in App Factory

2013-07-11 Thread Amila Maha Arachchi
Thanks Sumedha for carrying out this POC effort. Now we are clear on the
current domain mapping capabilities and limitations.

Yes, we need to eliminate the /t/tenant-domain/webapps/app-name section
from the URL presented to the user. Lets investigate on a way to achieve
this.

Regards,
AmilaM.


On Thu, Jul 11, 2013 at 4:20 PM, Sumedha Kodithuwakku sumed...@wso2.comwrote:

 Hi All,

 As an initial work for the requirement of a Unique Identifier for apps (in
 aPaaS work), the $subject was done. With this, the user will be able to
 map a custom URL for their applications in AF.

 *The requirement*

 By default the app will have a URL similar to '
 appserver.appfactorypreview.wso2.com/t/mywebapp/webapps/mywebapp' and we
 need to map that to a URL similar to 'mywebapp.wso2apps.com'.

 *The approach followed:*
 *
 *
 In Stratos Controler's ApplicationManagementService, there is a function
 to map domains ( addDomainMapping ). This service was used for the URL
 mapping. When the user creates an application in AF, the application
 subscribes to the available cartridges and while subscribing the mapping
 will be done. The added mapping will be saved in the shared registry
 between SC and ELB. Therefore when we send the request to that particular
 ELB, it will pick the actual host  according to the mapped domain and
 forward the request.

 At the moment, we can map the URL as follows.

 appserver.appfactorypreview.wso2.com/t/mywebapp/webapps/mywebapp
  --   mywebapp.wso2apps.com/t/mywebapp/webapps/mywebapp

 The addDomainMapping service in SC only provides mapping as above (in
 blue). Therefore we need to improve that so  that we can eliminate the 't/
 mywebapp/webapps/mywebapp' part too.

 Any suggestions and feedbacks are welcome.

 Thanks
 SumedhaS

 --
 *Sumedha Kodithuwakku*
 Software Engineer

 WSO2 Inc. : wso2.com
 lean . enterprise . middleware

 Mobile : +94718081124




-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Why BAM does not use dep synch to synchronise the artefacts?

2013-06-16 Thread Amila Maha Arachchi
On Sunday, June 16, 2013, Anjana Fernando wrote:

 Done [1]. I guess BAM is already using dep sync for toolboxes, it is just
 the Hive scripts that are stored in the registry for some reason. Will fix
 if there is anything to be fixed.


BAM 2.1.0 didn't have dep-sync support for any artifact AFAIR. I don't know
whether it is implemented for tbxes now.



 [1] https://wso2.org/jira/browse/BAM-1244


Cheers,
 Anjana.


 On Wed, Jun 12, 2013 at 3:36 PM, Srinath Perera 
 srin...@wso2.comjavascript:_e({}, 'cvml', 'srin...@wso2.com');
  wrote:

 Anjana, we should fix this. Lets create a issue

 --Srinath


 On Sat, Jun 8, 2013 at 4:55 AM, Amila Suriarachchi 
 am...@wso2.comjavascript:_e({}, 'cvml', 'am...@wso2.com');
  wrote:

 hi,

 According to this[1] BAM uses registry mounting to share the analyser
 artefacts among the nodes.

 But with the carbon 4.0.0 based products recommended approach is to use
 the dep synch. So what I would like to suggest is to use the dep sync to
 synchronise the artefacts and deplorer can decide whether to run the
 analysers or not according to the state of the zookeeper Agent.

 And also we need to have the developer studio support for bam tool boxes
 so that it can be deployed as a .car file.

 WDYT?


 [1]
 http://docs.wso2.org/wiki/display/BAM230/Patially-Distributed%2C+High-Availability+BAM+Setup

 --
 *Amila Suriarachchi*

 Software Architect
 WSO2 Inc. ; http://wso2.com
 lean . enterprise . middleware

 phone : +94 71 3082805

 ___
 Architecture mailing list
 Architecture@wso2.org javascript:_e({}, 'cvml',
 'Architecture@wso2.org');
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 
 Srinath Perera, Ph.D.
http://people.apache.org/~hemapani/
http://srinathsview.blogspot.com/

 ___
 Architecture mailing list
 Architecture@wso2.org javascript:_e({}, 'cvml',
 'Architecture@wso2.org');
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --
 *Anjana Fernando*
 Technical Lead
 WSO2 Inc. | http://wso2.com
 lean . enterprise . middleware



-- 
*Amila Maharachchi*
Senior Technical Lead
WSO2, Inc.; http://wso2.com

Blog: http://maharachchi.blogspot.com
Mobile: +94719371446
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Cloud Controller publishes information of nodes it spawns, to BAM

2013-05-15 Thread Amila Maha Arachchi
Hi Nirmal,

I am in the process of trying to add billing capabilities to S2 for
cartridge usage. I am still trying to figure out a way to summarize these
published data using hive scripts. But, not having the tenant id in the
stream is going to cause problems. As you mentioned offline, tenant id
could be inferred using the domain and sub-domain. But it will make the
hive script much complex. Can you please included the tenant id to the
event as well. Which means, you will have to infer the tenant id using the
domain and sub-domain (which you suggested to do in the hive script).

Regards,
AmilaM.


On Sun, Nov 4, 2012 at 11:18 AM, Nirmal Fernando nir...@wso2.com wrote:

 With this functionality, I've introduced 4 top level elements (1
 compulsory and 3 optional) in cloud-controller.xml. Here's a portion of
 cloud-controller.xml :

 cloudController xmlns:svns=http://org.wso2.securevault/configuration;

 svns:secureVault

 provider=org.wso2.securevault.secret.handler.SecretManagerSecretCallbackHandler
 /

 *enableBAMDataPublisherfalse/enableBAMDataPublisher*

 !-- BAM Server Info - default values are 'admin' and 'admin'
  Optional element. --
 *bamServerAdminUserNameadmin/bamServerAdminUserName
 bamServerAdminPassword
 svns:secretAlias=cloud.controller.bam.server.admin.passwordadmin/bamServerAdminPassword
 *

 !-- Default cron expression is '1 * * * * ? *' meaning 'first second
 of every minute'.
  Optional element. --
 *dataPublisherCronExpression1 * * * * ?
 */dataPublisherCronExpression*
 .
 .
 .
 /cloudController



 On Mon, Oct 29, 2012 at 4:58 PM, Nirmal Fernando nir...@wso2.com wrote:



 On Mon, Oct 29, 2012 at 4:54 PM, Shelan Perera she...@wso2.com wrote:

 Hi Nirmal,

 Yes it seems to be a bug. Can you create a JIRA so it can be fixed.


 Sure!


 Thanks


 On Mon, Oct 29, 2012 at 4:41 PM, Nirmal Fernando nir...@wso2.comwrote:

 Hi,

 Herewith attaching a view of new data stream.

 Note: Cassandra explorer shows ***Non displayable value*** since OS
 version returns by Jclouds is an empty string and OS name is not shown by
 the explorer since it is null (Shelan: I wonder whether this is a bug. I
 prefer to see it there in the explorer, as a user.).

 On Fri, Oct 26, 2012 at 9:01 PM, Nirmal Fernando nir...@wso2.comwrote:

 Hi Chris,

 On Fri, Oct 26, 2012 at 2:35 AM, Chris Haddad ch...@wso2.com wrote:

 Nirmal,

 Excellent!   last week, I had a client asking the team about how to
 view worker node cluster information.  Creating a dashboard on top of
 controller and ELB registration events would be extremely beneficial.


 Yes, it's the plan.



 /Chris

 On Thu, Oct 25, 2012 at 12:03 PM, Nirmal Fernando nir...@wso2.comwrote:

 Hi All,

 I've implemented $subject. Basically I wrote a data publisher, which
 is intelligent enough to only publish events related to 'a newly spawned
 instance' or 'a state changed existing instance'.

 I've attached few screen captures of Cassandra Explorer.

 Note: the data currently pushed, can always be expanded.

 Next TODO: Write code to retrieve the stored data (this is needed in
 the case where the Cloud Controller is restarted.)

 --

 Thanks  regards,
 Nirmal

 Software Engineer- Platform Technologies Team, WSO2 Inc.
 Mobile: +94715779733
 Blog: http://nirmalfdo.blogspot.com/

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




 --
 +1.678.431.1656
 mailto:ch...@wso2.com
 twitter @cobiacomm
 http://blog.cobia.net/cobiacomm (blog)



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




 --

 Thanks  regards,
 Nirmal

 Software Engineer- Platform Technologies Team, WSO2 Inc.
 Mobile: +94715779733
 Blog: http://nirmalfdo.blogspot.com/




 --

 Thanks  regards,
 Nirmal

 Software Engineer- Platform Technologies Team, WSO2 Inc.
 Mobile: +94715779733
 Blog: http://nirmalfdo.blogspot.com/




 --
 *Shelan Perera*

 Software Engineer
 **
 *WSO2, Inc. : wso2.com*
 lean.enterprise.middleware.

 *Home Page*  :shelan.org
 *Blog* : blog.shelan.org
 *Linked-i*n  :http://www.linkedin.com/pub/shelan-perera/a/194/465
 *Twitter* :https://twitter.com/#!/shelan

 *Mobile*  : +94 772 604 402





 --

 Thanks  regards,
 Nirmal

 Software Engineer- Platform Technologies Team, WSO2 Inc.
 Mobile: +94715779733
 Blog: http://nirmalfdo.blogspot.com/




 --

 Thanks  regards,
 Nirmal

 Software Engineer- Platform Technologies Team, WSO2 Inc.
 Mobile: +94715779733
 Blog: http://nirmalfdo.blogspot.com/

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




-- 
*Amila Maharachchi*
Technical Lead
Member, Management Committee - Cloud  Platform TG
WSO2, Inc.; http://wso2.com