Re: [Architecture] Unified Governance Metadata models and APIs for WSO2 Platform

2014-09-09 Thread Dimuthu Leelarathne
Hi Subash,

Thanks. We will not be taking this up yet.

thanks,
dimuthu


On Thu, Sep 4, 2014 at 6:10 PM, Subash Chaturanga sub...@wso2.com wrote:

 Hi,
 Finished the searching with Solr index. I have tested a sample complete
 client code inside Turing G-Reg 4.6.0 governance component.
 @Dimuthu,
 Now this API should be able to used to re build what you have already with
 gov api. I will work on completing my external TODOs left, like adding unit
 tests etc.


 On Mon, Sep 1, 2014 at 9:14 AM, Subash Chaturanga sub...@wso2.com wrote:

 Hi,
 Moving to @architecture.


 On Fri, Aug 29, 2014 at 3:47 AM, Subash Chaturanga sub...@wso2.com
 wrote:

 Hi all,
 This is to give you a progress update. Now the code is moved to wso2
 -dev repo [1]. And I have completed the implementation except the
 search/findAll which have to implement through indexing. Following is the
 client code I used.


 // You have to set this path ONLY if you are using this api outside a
 carbon server runtime.

 Util.setProviderMapFilePath(path-to-registry.xml);

HTTPServiceVersionV1  bv = new HTTPServiceVersionV1(registry,
 1.0.0);

bv.setProperty(foo, bar);

HTTPServiceV1 http1 = new HTTPServiceV1(registry,
 myservice,bv);

http1.setOwner(serviceOwner);

http1.setProperty(createdDate, 12-12-2012);

HTTPServiceV1.add(registry, http1);

HTTPServiceV1 httpServiceV1 = HTTPServiceV1.get(registry,
 http1.getUUID());

HTTPServiceVersionV1 v2 = httpServiceV1.newVersion(1.2.0);

v2.setProperty(foo, bar);

HTTPServiceVersionV1.add(registry, v2);

for(HTTPServiceVersionV1 v:httpServiceV1.getVersions()){

System.out.println(v.getName());

}

 http1.attachLifecycle(SampleLifeCycle);

 StateMachineLifecycle lc  = http1.getLifecycle();

 StateMachineLifecycle.State s = lc.getCurrentState();

 lc.transfer(Promote);

 StateMachineLifecycle.State s1 = lc.getCurrentState();


 I have attached the screen shot of the G-Reg 4.6.0 mgt console after
 running this client. You can find the associations are created and
 lifecycle has attached and promoted to Test status.

 The API always deals with UUIDs from creating associations to CRUD
 instances. And the code is in wso2-dev git repo and no need to backport on
 turing, hence AF can build it and put it in to dropins.

 Once finish the searching/getAll we can try replacing a AF code with
 this API. Meanwhile we need to  finalize the rest of the meta data
 @Sanjiva's meta data spec 1.0.0 ;-).  Also will arrange a code/API review
 once search is implemented.

 Basic Implementation TODOs;

  - Search
  - Add more class/method comments to improve readability.
  - Create an ant sample.
  - Performance tune


 [1] -
 https://github.com/wso2-dev/carbon-registry/tree/master/components/registry/org.wso2.carbon.registry.metadata



 On Fri, Aug 22, 2014 at 7:35 PM, Senaka Fernando sen...@wso2.com
 wrote:

 Hi all,

 Sanjiva, I added a comment on 2a in FAQ #2, too see whether we can find
 a solution to what Dimuthu mentioned. This is the reason why I actually
 proposed 2a - but that's obviously not the ideal solution too. So, trying
 to understand the best compromise here.

 Subash, I don't think the get/set property business is a good idea at
 all. If this is an end-to-end API, shouldn't we for example do:


 HTTPServiceVersionV1 httpV1 = http1.newVersion(1.0.0);
  EndpointV1 endpoint = new EndpointV1(http://test.rest/stockquote;);
 endpoint.setSecured(true);
 httpV1.addEndpoint(endpoint);
  HTTPServiceVersionV1.add(httpV1);

 My view is that the API needs to be very expressive so that everybody
 who uses that will generally find it to be comprehensive and the property
 option is only if they don't find a way to do what they want.

 Also, a very radical question on services and endpoints. I think
 everybody (G-Reg, AppFac and API-M teams) is clear that the ServiceVersion
 is what has the lifecycle state. But, I wanted to ask a separate question.
 Are we ruling out the possibility of a single service version being in
 multiple environments? If yes, then simply forget this question. If no,
 should we be having a state for the endpoint (i.e. A single service version
 with Dev endpoint a QA endpoint and vice versa). If we think we need the
 above, should we have a concept of primary endpoint, which is what in
 return deduces what state the service is in (ex:- the primary endpoint for
 a service v1 is dev, which means the service is in dev state)?

 Thanks,
 Senaka.


 On Fri, Aug 22, 2014 at 2:15 PM, Sanjiva Weerawarana sanj...@wso2.com
 wrote:

 Dimuthu see FAQ #2 in the document. Please suggest alternatives or
 accept it :-).


 On Fri, Aug 22, 2014 at 3:36 PM, Dimuthu Leelarathne 
 dimut...@wso2.com wrote:

 Hi Subash and all,

 The API look extremely cluttered with V1 appended to all classes. :(

 thanks,

Re: [Architecture] Cloud Tenant deletion caching issue

2014-09-09 Thread Godwin Amila Shrimal
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: *http://lnkd.in/KUum6D http://lnkd.in/KUum6D*
 twitter: https://twitter.com/godwinamila

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




 --

 Thanks  

Re: [Architecture] Process Store for text based process

2014-09-09 Thread Chathura Ekanayake
Hi Manfred,


I like the idea of an (Enterprise)Store for Everything a lot.

 For process assets ... some brainstorming:
 1) The artifact text based process is a non executable process model.
 This process model can be instantiated by creating a text based process
 instance - this feature would like a predefined
 document-type/-structure/-flow in DMS/ECM (like alfresco).


Yes, text based process is a non executable process model. A text based
process model may be instantiated as a manual (i.e. non-automated) process.
However, instances of text based process models cannot be created in
workflow systems.


 2) The artifact BPMN process is a non executable process model (i. e.
 for documentation purposes) or a executable process model. For
 create/edit/viewing the BPMN model a BPMN 2.0 graphical editor and/or
 viewer is required. The executable process model requires a runtime
 environment like the WSO2 BPS for running the instances.
 Amal Gunatilake is working on WSO2 BPMN Explorer jaggery app
 https://github.com/wso2-dev/carbon-business-process/tree/e424fe3ad681ecebfee1e73cc008fbd9dda460fc
  and
 BPMN humantask jaggery app https://github.com/amalhub/bpmn-humantask


Yes, BPMN models can be both executable or non-executable. WSO2 BPS
(upcoming versions) supports BPMN execution based on Activiti.


 3) The artifact BPEL process ... like BPMN process


Yes. However, BPEL process models are usually used only as executable
models.


 How would the architecture for an integrated WSO2 Process Landscape look
 like?


We are developing a complete BPM suite by considering key aspects such as
process design, execution, monitoring and analysis. WSO2 BPS is the
execution component of this suite. Components/products for covering other
aspects will be developed based on WSO2 products such as WSO2 ES and WSO2
BAM.

Regards,
Chathura







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


Re: [Architecture] Process Store for text based process

2014-09-09 Thread Chathura Ekanayake
Hi Shiva,

As discussed, let's move all Process Store functions to the publisher. Then
we can keep the store side as it is for now.

Regards,
Chathura


On Thu, Sep 4, 2014 at 2:03 PM, Shiva Balachandran sh...@wso2.com wrote:

 +1. Moving the publisher functionality to the store will increase the
 usability of the product. The no. of steps to perform the functionality
 will be minimum, especially now the user has to log in twice, once in the
 store and secondly in the publisher, when swapping between the UI.


 On Thu, Sep 4, 2014 at 12:52 PM, Chathura Ekanayake chath...@wso2.com
 wrote:

 Hi Ruchira/all,

 If we separate the publishing and store parts that way, a user (e.g.
 business analyst) who is viewing a model has to switch to a separate UI to
 edit it. If you recommend to use the publisher to add/edit models, I think
 more appropriate method would be to implement most of the Process Store
 functionality in by extending the publisher (e.g. add, edit, browse,
 visualize associations, static/runtime analysis). Then the store, which
 will be used only by process clients and participants, has minimum
 functionality to browse/search/view models. In this way, we can do only
 minor (or zero) modifications to the store part and implement all other
 Process Store features in the publisher.

 So the implementation will look like:

 Publisher (heavily extended by implementing almost all Process Store
 features):
  - Users: process designers, management staff, business analysts
  - Features:
- Add, edit, delete, browse, search, navigate and view process
 models and related artifacts
- Design-time analysis of process models
- Runtime analysis based on execution data
- Lifecycle management
- Policy definition and enforcement

 Store (minor/zero extensions):
   - Users:
  - process clients (e.g. an employee who wants to purchase a
 computer can find a suitable procurement process and initiate it)
  - process participants (e.g. employees of the loan handling unit
 refer to the loans approval process to determine next steps to be followed)
 - Features: Browse, search, navigate and view process models

 WDYT?

 Regards,
 Chathura





 On Thu, Sep 4, 2014 at 12:01 PM, Ruchira Wageesha ruch...@wso2.com
 wrote:

 HI Shiva/Chathura,

 I would recommend you to keep the adding/editing functionality in the
 publisher side. Otherwise, you will have to re-implement most of the stuff
 that we have done in the publisher.

 You can do SSO between store and publisher. Hence, what you need to do
 is, just display an edit link in the store. When that edit link is clicked,
 the user will be redirected to the publisher's edit page of that specific
 process. Since SSO is enabled, the user will not see much difference. i.e.
 he will feel that the edit page was there in the store app itself, only
 difference is, you see a page refresh.

 Further, if you go with publisher, you have more freedom in the future
 to improve your add/edit views as publisher UI has designed for that kind
 of requirements. Otherwise, you will have to introduce your own left menu,
 search, LC UIs etc. in the store side.

 /Ruchira


 On Wed, Sep 3, 2014 at 1:46 PM, Chathura Ekanayake chath...@wso2.com
 wrote:

 As Shiva has mentioned, we want to do both adding and displaying
 process models in the same UI, diverting from the current model of ES to
 have a separate publisher and a store. An example requirement would be: a
 user browsing a process model may want to add some details to certain
 sections of the model, so that he should be able to do it from the same UI.
 Similarly, a user may want to add a specialized version of a currently
 displaying model. Therefore, I think the adding/editing functionality has
 to be provided in the same UI, controlled by user's authorizations.

 Regards,
 Chathura


 On Wed, Sep 3, 2014 at 12:08 PM, Shiva Balachandran sh...@wso2.com
 wrote:

 Hi All,

 The Enterprise Store currently satisfies necessity to host
 applications, gadgets and eBooks. Users are able to add new assets of the
 given type or create their own asset type and work with the store. A
 requirement has arose to develop a Process Store to host processes of all
 types and visualize associations with processes whilst providing other
 utility functions. I am currently working on building a Process Store to
 address the requirement.

 After discussion with the stakeholder we have agreed to initially
 build the store as an extension of the enterprise store and move the
 process store out as an product in the future. The extension to be built
 will be for textual based processes and in future will be able to support
 other type of processes too.

 The extension to be built will have the following functionality:-


- Adding a text based process
- Editing a text based process
- View a text based process
- Search for a text based process


- Associate existing text based 

Re: [Architecture] [Dev] Obtaining a registry value for a PHP application through the Registry REST API

2014-09-09 Thread Dimuthu Leelarathne
Hi Udara,

Exactly! But the last time we were checking the cartridge agent script it
gave very little information to the extension point. In order to do a
meaningful curl we need at least

- appname
- tenant name

thanks,
dimuthu






On Tue, Sep 9, 2014 at 3:10 PM, Udara Liyanage ud...@wso2.com wrote:

 Hi,

 I assume you are working in AF environment. If so, you can modify
 cartridge agent to serverStarted or serverActivated extension point to do
 the work for you. It simply does the curl and get the value and make the
 value available as a environment variable or in php.ini
 Then PHP application developer does not have to worry about how details
 are fetched, he just have call getenv('parameter_name')

 On Tue, Sep 9, 2014 at 3:00 PM, Dimuthu Leelarathne dimut...@wso2.com
 wrote:

 Hi Madhawa,

 I have a super idea!!! :)

 Since we are doing Cartridge per app, I think it is more natural to have
 the filesystem. This is more natural to PHP developers. Ideally we can take
 the properties file from the UI and then the Cartridge agent can pull it
 from AF/Greg.

 thanks,
 dimuthu

 On Mon, Sep 8, 2014 at 3:24 PM, Udara Rathnayake uda...@wso2.com wrote:

 To generate access token you can use the token API[1]

 [1] https://docs.wso2.com/display/AM160/Token+API

 On Mon, Sep 8, 2014 at 2:45 AM, Madhawa Bandara madh...@wso2.com
 wrote:

 Adding to above:

 Need to get this done without generating the ouath token manually (
 without using the API store).


 On Mon, Sep 8, 2014 at 3:06 PM, Madhawa Bandara madh...@wso2.com
 wrote:

 Hi all,

 In order to perform the $subject following the doc [1]. I am using
 $curl based invocation from my php application.

 How can I get my requests the authenticated / how can I obtain the
 oauth access token?

 Thanks in advance.

 [1] - https://docs.wso2.com/display/Governance460/Registry+REST+API

 --
 Regards,

 *Madhawa Bandara*
 Software Engineer
 WSO2, Inc.
 lean.enterprise.middleware

 Mobile - *+94777487726 %2B94777487726*
 Blog* - *classdeffound.blogspot.com




 --
 Regards,

 *Madhawa Bandara*
 Software Engineer
 WSO2, Inc.
 lean.enterprise.middleware

 Mobile - *+94777487726 %2B94777487726*
 Blog* - *classdeffound.blogspot.com

 ___
 Dev mailing list
 d...@wso2.org
 http://wso2.org/cgi-bin/mailman/listinfo/dev




 --
 *Udara Rathnayake*
 Software Engineer
 WSO2 Inc. : http://wso2.com

 Mobile : +94 772207239
 Twitter : http://twitter.com/udarakr
 Blog: http://udarakr.blogspot.com


 ___
 Dev mailing list
 d...@wso2.org
 http://wso2.org/cgi-bin/mailman/listinfo/dev




 --
 Dimuthu Leelarathne
 Architect  Product Lead of App Factory

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

 Lean . Enterprise . Middleware

 ___
 Dev mailing list
 d...@wso2.org
 http://wso2.org/cgi-bin/mailman/listinfo/dev




 --

 Udara Liyanage
 Software Engineer
 WSO2, Inc.: http://wso2.com
 lean. enterprise. middleware

 web: http://udaraliyanage.wordpress.com
 phone: +94 71 443 6897




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


Re: [Architecture] [Dev] Obtaining a registry value for a PHP application through the Registry REST API

2014-09-09 Thread Udara Liyanage
Hi Dimuthu,

AFAIR tenant -id is passed as payload to the instance which is accessible
via factor. Additionally any parameter can be sent to the instance at
subscription time or in cartridge by declaring them as payload parameter.

On Tue, Sep 9, 2014 at 3:17 PM, Dimuthu Leelarathne dimut...@wso2.com
wrote:

 Hi Udara,

 Exactly! But the last time we were checking the cartridge agent script it
 gave very little information to the extension point. In order to do a
 meaningful curl we need at least

 - appname
 - tenant name

 thanks,
 dimuthu






 On Tue, Sep 9, 2014 at 3:10 PM, Udara Liyanage ud...@wso2.com wrote:

 Hi,

 I assume you are working in AF environment. If so, you can modify
 cartridge agent to serverStarted or serverActivated extension point to do
 the work for you. It simply does the curl and get the value and make the
 value available as a environment variable or in php.ini
 Then PHP application developer does not have to worry about how details
 are fetched, he just have call getenv('parameter_name')

 On Tue, Sep 9, 2014 at 3:00 PM, Dimuthu Leelarathne dimut...@wso2.com
 wrote:

 Hi Madhawa,

 I have a super idea!!! :)

 Since we are doing Cartridge per app, I think it is more natural to have
 the filesystem. This is more natural to PHP developers. Ideally we can take
 the properties file from the UI and then the Cartridge agent can pull it
 from AF/Greg.

 thanks,
 dimuthu

 On Mon, Sep 8, 2014 at 3:24 PM, Udara Rathnayake uda...@wso2.com
 wrote:

 To generate access token you can use the token API[1]

 [1] https://docs.wso2.com/display/AM160/Token+API

 On Mon, Sep 8, 2014 at 2:45 AM, Madhawa Bandara madh...@wso2.com
 wrote:

 Adding to above:

 Need to get this done without generating the ouath token manually (
 without using the API store).


 On Mon, Sep 8, 2014 at 3:06 PM, Madhawa Bandara madh...@wso2.com
 wrote:

 Hi all,

 In order to perform the $subject following the doc [1]. I am using
 $curl based invocation from my php application.

 How can I get my requests the authenticated / how can I obtain the
 oauth access token?

 Thanks in advance.

 [1] - https://docs.wso2.com/display/Governance460/Registry+REST+API

 --
 Regards,

 *Madhawa Bandara*
 Software Engineer
 WSO2, Inc.
 lean.enterprise.middleware

 Mobile - *+94777487726 %2B94777487726*
 Blog* - *classdeffound.blogspot.com




 --
 Regards,

 *Madhawa Bandara*
 Software Engineer
 WSO2, Inc.
 lean.enterprise.middleware

 Mobile - *+94777487726 %2B94777487726*
 Blog* - *classdeffound.blogspot.com

 ___
 Dev mailing list
 d...@wso2.org
 http://wso2.org/cgi-bin/mailman/listinfo/dev




 --
 *Udara Rathnayake*
 Software Engineer
 WSO2 Inc. : http://wso2.com

 Mobile : +94 772207239
 Twitter : http://twitter.com/udarakr
 Blog: http://udarakr.blogspot.com


 ___
 Dev mailing list
 d...@wso2.org
 http://wso2.org/cgi-bin/mailman/listinfo/dev




 --
 Dimuthu Leelarathne
 Architect  Product Lead of App Factory

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

 Lean . Enterprise . Middleware

 ___
 Dev mailing list
 d...@wso2.org
 http://wso2.org/cgi-bin/mailman/listinfo/dev




 --

 Udara Liyanage
 Software Engineer
 WSO2, Inc.: http://wso2.com
 lean. enterprise. middleware

 web: http://udaraliyanage.wordpress.com
 phone: +94 71 443 6897




 --
 Dimuthu Leelarathne
 Architect  Product Lead of App Factory

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

 Lean . Enterprise . Middleware




-- 

Udara Liyanage
Software Engineer
WSO2, Inc.: http://wso2.com
lean. enterprise. middleware

web: http://udaraliyanage.wordpress.com
phone: +94 71 443 6897
___
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] [Storage Server] Workflow support for provisioning related tasks

2014-09-09 Thread Prabath Abeysekera
On Sat, Sep 6, 2014 at 1:52 PM, Faathima Fayaza faath...@wso2.com wrote:

 Hi,

 *Problem:*

 Currently, most of the functionalities supported via WSO2 Storage Sever
 are straight-forward but less in controllability.For example, in the
 current implementation if a user needs to create a database, they can
 simply create a database directly without having any approval processes and
  if a user needs to drop a database, they can simply drop it without having
 to go through a proper approval cycle, etc.Therefore, to have better
 controllability need to have workflow support for provisioning related
 tasks.


Good problem statement! Let me too add a few things to this so it'll help
everyone understand why this is going to be an essential feature for
Storage Server.

Controllability of activities is key for pretty much any practical system.
Within the context of Storage Server, it deals with bridging the entities,
the end user (i.e database application developers) and resource provider
infrastructure (i.e. database servers) so that the end users can skip some
of the tedious processes associated with the infrastructure provisioning
related activities where they involve manual intervention of certain user
categories such as database administrators. This, typically allows database
application developers to achieve better SLAs in application development
together with quite a few other benefits. However, even though the Storage
Server automates those tasks and makes life easier for the end user, it
should also need to enforce proper controllability upon them to be able to
prevent any unnecessary resource manipulations as well as to achieve proper
infrastructure policy compliance within the resource provider environments.
This feature is intended to cater the aforementioned requirement, so that
whenever a non-privileged user tries to perform some activity which
requires prior approval from privileged users such as database
administrators, a proper approval acquisition process will be triggered as
part of the operation life cycle.

Cheers,
Prabath


 *Plan  : *

 Implement the BPEL process and humantask for management
 functionalities(Ex: create database) support via WSO2 SS.
 When user involved management functionalities, WSO2 SS maintain process in
 intermediate stage and call WSO2 BPS workflow [BPEL] web service.
 WSO2 BPS workflow [BPEL] process create humanTask instance for the process.
 After the completion of humanTask call back to WSO2 SS process workflow
 Complete the process.
 Also WSO2 SS workflow extension going to support for multiple BPMN engines
 using it BPMN abstract layer and by default it will support for WSO2 BPS.





 *Design :​​*

1. Non-privileged user involved in to a WSO2 SS process [Ex : create
database].
2. WSO2 SS call the WSO2 BPS workflow [BPEL] web service.
3. BPEL process create humanTask instance in WSO2 BPS.
4. HumanTask instance will complete by the privileged user.
5. WSO2 BPS call back the WSO2 SS process.
6. Complete the process.

 Thanks,
 --
 Best Regards,

 M.S. Faathima Fayaza
 Software Engineering Intern
 WSO2 Inc.
 lean.enterprise.middleware.




-- 
Prabath Abeysekara
Associate Technical Lead, Data TG.
WSO2 Inc.
Email: praba...@wso2.com
Mobile: +94774171471
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [Storage Server] Workflow support for provisioning related tasks

2014-09-09 Thread Prabath Abeysekera
Fayaza,

Please also make sure we keep the thread posted regularly on the progress
of the implementation while you proceed with the task.

Cheers,
Prabath

On Tue, Sep 9, 2014 at 8:34 PM, Prabath Abeysekera praba...@wso2.com
wrote:


 On Sat, Sep 6, 2014 at 1:52 PM, Faathima Fayaza faath...@wso2.com wrote:

 Hi,

 *Problem:*

 Currently, most of the functionalities supported via WSO2 Storage Sever
 are straight-forward but less in controllability.For example, in the
 current implementation if a user needs to create a database, they can
 simply create a database directly without having any approval processes and
  if a user needs to drop a database, they can simply drop it without having
 to go through a proper approval cycle, etc.Therefore, to have better
 controllability need to have workflow support for provisioning related
 tasks.


 Good problem statement! Let me too add a few things to this so it'll help
 everyone understand why this is going to be an essential feature for
 Storage Server.

 Controllability of activities is key for pretty much any practical system.
 Within the context of Storage Server, it deals with bridging the entities,
 the end user (i.e database application developers) and resource provider
 infrastructure (i.e. database servers) so that the end users can skip some
 of the tedious processes associated with the infrastructure provisioning
 related activities where they involve manual intervention of certain user
 categories such as database administrators. This, typically allows database
 application developers to achieve better SLAs in application development
 together with quite a few other benefits. However, even though the Storage
 Server automates those tasks and makes life easier for the end user, it
 should also need to enforce proper controllability upon them to be able to
 prevent any unnecessary resource manipulations as well as to achieve proper
 infrastructure policy compliance within the resource provider environments.
 This feature is intended to cater the aforementioned requirement, so that
 whenever a non-privileged user tries to perform some activity which
 requires prior approval from privileged users such as database
 administrators, a proper approval acquisition process will be triggered as
 part of the operation life cycle.

 Cheers,
 Prabath


 *Plan  : *

 Implement the BPEL process and humantask for management
 functionalities(Ex: create database) support via WSO2 SS.
 When user involved management functionalities, WSO2 SS maintain process
 in intermediate stage and call WSO2 BPS workflow [BPEL] web service.
 WSO2 BPS workflow [BPEL] process create humanTask instance for the
 process.
 After the completion of humanTask call back to WSO2 SS process workflow
 Complete the process.
 Also WSO2 SS workflow extension going to support for multiple BPMN
 engines using it BPMN abstract layer and by default it will support for
 WSO2 BPS.





 *Design :​​*

1. Non-privileged user involved in to a WSO2 SS process [Ex : create
database].
2. WSO2 SS call the WSO2 BPS workflow [BPEL] web service.
3. BPEL process create humanTask instance in WSO2 BPS.
4. HumanTask instance will complete by the privileged user.
5. WSO2 BPS call back the WSO2 SS process.
6. Complete the process.

 Thanks,
 --
 Best Regards,

 M.S. Faathima Fayaza
 Software Engineering Intern
 WSO2 Inc.
 lean.enterprise.middleware.




 --
 Prabath Abeysekara
 Associate Technical Lead, Data TG.
 WSO2 Inc.
 Email: praba...@wso2.com
 Mobile: +94774171471




-- 
Prabath Abeysekara
Associate Technical Lead, Data TG.
WSO2 Inc.
Email: praba...@wso2.com
Mobile: +94774171471
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] WSO2 Storage Sever : Automatic Kerberos ticket generation support for HDFS

2014-09-09 Thread Prabath Abeysekera
Hi Poshitha,

On Mon, Sep 1, 2014 at 2:38 PM, Poshitha Dabare poshi...@wso2.com wrote:

 Description

 Currently, kinit is used to obtain a Kerberos ticket as part of
 authenticating a user who accesses the HDFS management functionalities
 through SS management console. This particular tool is Linux specific
 therefore causes interoperability issues when deploying the server in a
 non-Linux environment. As a solution, we need to rewrite the
 KerberosAuthenticator using GSS and JAAS API to be able to abstract out the
 KDC access.

  For SS 1.1.0 release, the name node and datanode can be started without
 using a kinit, as the keytabs were generated and shipped with the product.
 However, this needs to be worked on so that the above could be done.


 Currently The HDFS managment component and Hadoop components
 *UserGroupInformation* class uses java processBuilder to invoke the
 'kinit' function in operating system to obtain and renew ticket therefore
 we have to elimnate this and use a substitute using the GSS or JAAS API at
 these point.

 Any suggestions ?

 Do we have any extension point available as part of the authentication
framework of Hadoop which we could simply use to get this implemented?

Cheers,
Prabath




 --
 Poshitha Dabare
 Software Engineer

 Mob: 075 536 8005




-- 
Prabath Abeysekara
Associate Technical Lead, Data TG.
WSO2 Inc.
Email: praba...@wso2.com
Mobile: +94774171471
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] [APP Factory] Tenant Deletion implementation

2014-09-09 Thread Godwin Amila Shrimal
Hi,

We are on the implementation of the Tenant deletion of APP Factory, we
checked existing *TenantMgtListener* implementation in AF by debugging the
server and found following classes.

org.wso2.carbon.event.stream.manager.core.internal.util.helper.TenantMgtListenerImpl
org.wso2.carbon.theme.mgt.util.ThemeLoadingListener
org.wso2.carbon.keystore.mgt.KeystoreTenantMgtListener
org.wso2.carbon.cassandra.server.TenantCreationListener
org.wso2.carbon.appfactory.listners.tenant.DefaultRolesCreatorForTenant

But when we checked the source code there are two more implementations as
*AppFactoryTenantActivationListener* and *AppFactoryTenantMgtListener, *

Are they currently using ? BTW *AppFactoryTenantActivationListener *marked
as Deprecated.

Please give a feedback on this.


Thanks
Godwin


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

mobile: *+94772264165*
linkedin: *http://lnkd.in/KUum6D http://lnkd.in/KUum6D*
twitter: https://twitter.com/godwinamila
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [Dev] Obtaining a registry value for a PHP application through the Registry REST API

2014-09-09 Thread Udara Liyanage
Hi Dimutu,

Below is an example payload of instance. Appname and tenantid is available.

SERVICE_NAME=php,HOST_NAME=phptest1011. http://phptest1011.stratos.com/
stratos.com http://phptest1011.stratos.com/
,MULTITENANT=false,TENANT_ID=-1234,TENANT_RANGE=-1234,CARTRIDGE_ALIAS=phptest1011,CLUSTER_ID=phptest1011.php.domain,CARTRIDGE_KEY=VFxRxLm89HRwdM7E,DEPLOYMENT=default,REPO_URL=
https
https://github.com/chamilad/NeWoice.git,PORTS=80,PUPPET_IP=192.168.18.165,PUPPET_HOSTNAME=puppet.ppm.org,PUPPET_ENV=puppet_environment,COMMIT_ENABLED=false,MEMBER_ID=phptest1011.php.domaind8928d0b-1c2e-4910-ac7a-2ed21579a1df,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack1,PARTITION_ID=p1
://
https://github.com/chamilad/NeWoice.git,PORTS=80,PUPPET_IP=192.168.18.165,PUPPET_HOSTNAME=puppet.ppm.org,PUPPET_ENV=puppet_environment,COMMIT_ENABLED=false,MEMBER_ID=phptest1011.php.domaind8928d0b-1c2e-4910-ac7a-2ed21579a1df,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack1,PARTITION_ID=p1
github.com
https://github.com/chamilad/NeWoice.git,PORTS=80,PUPPET_IP=192.168.18.165,PUPPET_HOSTNAME=puppet.ppm.org,PUPPET_ENV=puppet_environment,COMMIT_ENABLED=false,MEMBER_ID=phptest1011.php.domaind8928d0b-1c2e-4910-ac7a-2ed21579a1df,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack1,PARTITION_ID=p1
/
https://github.com/chamilad/NeWoice.git,PORTS=80,PUPPET_IP=192.168.18.165,PUPPET_HOSTNAME=puppet.ppm.org,PUPPET_ENV=puppet_environment,COMMIT_ENABLED=false,MEMBER_ID=phptest1011.php.domaind8928d0b-1c2e-4910-ac7a-2ed21579a1df,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack1,PARTITION_ID=p1
chamilad
https://github.com/chamilad/NeWoice.git,PORTS=80,PUPPET_IP=192.168.18.165,PUPPET_HOSTNAME=puppet.ppm.org,PUPPET_ENV=puppet_environment,COMMIT_ENABLED=false,MEMBER_ID=phptest1011.php.domaind8928d0b-1c2e-4910-ac7a-2ed21579a1df,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack1,PARTITION_ID=p1
/
https://github.com/chamilad/NeWoice.git,PORTS=80,PUPPET_IP=192.168.18.165,PUPPET_HOSTNAME=puppet.ppm.org,PUPPET_ENV=puppet_environment,COMMIT_ENABLED=false,MEMBER_ID=phptest1011.php.domaind8928d0b-1c2e-4910-ac7a-2ed21579a1df,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack1,PARTITION_ID=p1
NeWoice.git
https://github.com/chamilad/NeWoice.git,PORTS=80,PUPPET_IP=192.168.18.165,PUPPET_HOSTNAME=puppet.ppm.org,PUPPET_ENV=puppet_environment,COMMIT_ENABLED=false,MEMBER_ID=phptest1011.php.domaind8928d0b-1c2e-4910-ac7a-2ed21579a1df,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack1,PARTITION_ID=p1
,PORTS=80,
https://github.com/chamilad/NeWoice.git,PORTS=80,PUPPET_IP=192.168.18.165,PUPPET_HOSTNAME=puppet.ppm.org,PUPPET_ENV=puppet_environment,COMMIT_ENABLED=false,MEMBER_ID=phptest1011.php.domaind8928d0b-1c2e-4910-ac7a-2ed21579a1df,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack1,PARTITION_ID=p1
PUPPET_IP
https://github.com/chamilad/NeWoice.git,PORTS=80,PUPPET_IP=192.168.18.165,PUPPET_HOSTNAME=puppet.ppm.org,PUPPET_ENV=puppet_environment,COMMIT_ENABLED=false,MEMBER_ID=phptest1011.php.domaind8928d0b-1c2e-4910-ac7a-2ed21579a1df,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack1,PARTITION_ID=p1
=192.168.18.165,
https://github.com/chamilad/NeWoice.git,PORTS=80,PUPPET_IP=192.168.18.165,PUPPET_HOSTNAME=puppet.ppm.org,PUPPET_ENV=puppet_environment,COMMIT_ENABLED=false,MEMBER_ID=phptest1011.php.domaind8928d0b-1c2e-4910-ac7a-2ed21579a1df,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack1,PARTITION_ID=p1
PUPPET_HOSTNAME
https://github.com/chamilad/NeWoice.git,PORTS=80,PUPPET_IP=192.168.18.165,PUPPET_HOSTNAME=puppet.ppm.org,PUPPET_ENV=puppet_environment,COMMIT_ENABLED=false,MEMBER_ID=phptest1011.php.domaind8928d0b-1c2e-4910-ac7a-2ed21579a1df,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack1,PARTITION_ID=p1
=
https://github.com/chamilad/NeWoice.git,PORTS=80,PUPPET_IP=192.168.18.165,PUPPET_HOSTNAME=puppet.ppm.org,PUPPET_ENV=puppet_environment,COMMIT_ENABLED=false,MEMBER_ID=phptest1011.php.domaind8928d0b-1c2e-4910-ac7a-2ed21579a1df,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack1,PARTITION_ID=p1
puppet.ppm.org
https://github.com/chamilad/NeWoice.git,PORTS=80,PUPPET_IP=192.168.18.165,PUPPET_HOSTNAME=puppet.ppm.org,PUPPET_ENV=puppet_environment,COMMIT_ENABLED=false,MEMBER_ID=phptest1011.php.domaind8928d0b-1c2e-4910-ac7a-2ed21579a1df,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack1,PARTITION_ID=p1
,
https://github.com/chamilad/NeWoice.git,PORTS=80,PUPPET_IP=192.168.18.165,PUPPET_HOSTNAME=puppet.ppm.org,PUPPET_ENV=puppet_environment,COMMIT_ENABLED=false,MEMBER_ID=phptest1011.php.domaind8928d0b-1c2e-4910-ac7a-2ed21579a1df,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack1,PARTITION_ID=p1
PUPPET_ENV
https://github.com/chamilad/NeWoice.git,PORTS=80,PUPPET_IP=192.168.18.165,PUPPET_HOSTNAME=puppet.ppm.org,PUPPET_ENV=puppet_environment,COMMIT_ENABLED=false,MEMBER_ID=phptest1011.php.domaind8928d0b-1c2e-4910-ac7a-2ed21579a1df,LB_CLUSTER_ID=null,NETWORK_PARTITION_ID=openstack1,PARTITION_ID=p1
=

Re: [Architecture] [APP Factory] Tenant Deletion implementation

2014-09-09 Thread Danushka Fernando
Hi Goodwin
If Its not there in runtime (at debug time) then its not using. You can
easily check by checking the activation code in the particular component.
If its used it should be registered as a tenant mgt listner in activate
method.

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

On Tue, Sep 9, 2014 at 9:35 PM, Godwin Amila Shrimal god...@wso2.com
wrote:

 Hi,

 We are on the implementation of the Tenant deletion of APP Factory, we
 checked existing *TenantMgtListener* implementation in AF by debugging
 the server and found following classes.


 org.wso2.carbon.event.stream.manager.core.internal.util.helper.TenantMgtListenerImpl
 org.wso2.carbon.theme.mgt.util.ThemeLoadingListener
 org.wso2.carbon.keystore.mgt.KeystoreTenantMgtListener
 org.wso2.carbon.cassandra.server.TenantCreationListener
 org.wso2.carbon.appfactory.listners.tenant.DefaultRolesCreatorForTenant

 But when we checked the source code there are two more implementations as
 *AppFactoryTenantActivationListener* and *AppFactoryTenantMgtListener, *

 Are they currently using ? BTW *AppFactoryTenantActivationListener *marked
 as Deprecated.

 Please give a feedback on this.


 Thanks
 Godwin


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

 mobile: *+94772264165*
 linkedin: *http://lnkd.in/KUum6D http://lnkd.in/KUum6D*
 twitter: https://twitter.com/godwinamila

 ___
 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


Re: [Architecture] Unified Governance Metadata models and APIs for WSO2 Platform

2014-09-09 Thread Subash Chaturanga
Hi Dimuthu et al,
In the attributes you have given for all service types in current AF, I
have following questions;

What is Description  ? Is this the service description/document/interface
definition (WSDL/WADL) ? or some human readable description ?

@Saniva et al; IF there is NO such particular thing specific for HTTP or
SOAP, we can maintain one service without having particular sub types and
represent all with following attributes; (One disadvantage is anything
required in future for a service type in wso2 and  that is NOT common,
those will have to be managed with the property bag). Advantage is, reduce
the # meta models and APIs and having all services in one place.


*vnd.wso2.service*

Subtype

Suffix

Parameters

Description

Content Model

Associations

*

xml/json

version (default is “1”)

Top level type for all services

-String name

-String namespace

-String owner

-String description

-String createdDate

-List Transport Protocols (http/s,jms,tcp,xmpp)

- List Message Format (soap 1.1/1.2,xml)

- List Grammar (XSDs; common to WSDL/WADL both)

-List Message Encryption(ssl/ws-security,other)

- List Documentation(URLs/inline strings)



1..n service versions

1..n contacts



*vnd.wso2.version/service*

Subtype

Suffix

Parameters

Description

Content Model

Associations

service



ListString Endpoints
Object Security (Authentication UT,OAuth etc) ?

1..n endpoints




*vnd.wso2.endpoint*

Subtype

Suffix

Parameters

Description

Content Model

Associations

*


Top level type for all endpoints
String URL1..n service versions



*vnd.wso2.contact*

Subtype

Suffix

Parameters

Description

Content Model

Associations

*


Top level type for all contacts

   - First Name
   - Last Name
   - Organization
   - Address
   - Country
   - Email.
   - Telephone
   - Mobile
   - IM - The user's personal e-mail address.
   - URL - The users site address.


1..n services
Contacts will be get generated from the current carbon user store.



Shall we finalise service ? Can AF/AM/G-Reg agree on above service ?  Is
there anything that is lacking/some required attribute ?



On Tue, Sep 9, 2014 at 1:03 PM, Dimuthu Leelarathne dimut...@wso2.com
wrote:

 Hi Subash,

 Thanks. We will not be taking this up yet.

 thanks,
 dimuthu


 On Thu, Sep 4, 2014 at 6:10 PM, Subash Chaturanga sub...@wso2.com wrote:

 Hi,
 Finished the searching with Solr index. I have tested a sample complete
 client code inside Turing G-Reg 4.6.0 governance component.
 @Dimuthu,
 Now this API should be able to used to re build what you have already
 with gov api. I will work on completing my external TODOs left, like adding
 unit tests etc.


 On Mon, Sep 1, 2014 at 9:14 AM, Subash Chaturanga sub...@wso2.com
 wrote:

 Hi,
 Moving to @architecture.


 On Fri, Aug 29, 2014 at 3:47 AM, Subash Chaturanga sub...@wso2.com
 wrote:

 Hi all,
 This is to give you a progress update. Now the code is moved to wso2
 -dev repo [1]. And I have completed the implementation except the
 search/findAll which have to implement through indexing. Following is the
 client code I used.


 // You have to set this path ONLY if you are using this api outside a
 carbon server runtime.

 Util.setProviderMapFilePath(path-to-registry.xml);

HTTPServiceVersionV1  bv = new
 HTTPServiceVersionV1(registry, 1.0.0);

bv.setProperty(foo, bar);

HTTPServiceV1 http1 = new HTTPServiceV1(registry,
 myservice,bv);

http1.setOwner(serviceOwner);

http1.setProperty(createdDate, 12-12-2012);

HTTPServiceV1.add(registry, http1);

HTTPServiceV1 httpServiceV1 = HTTPServiceV1.get(registry,
 http1.getUUID());

HTTPServiceVersionV1 v2 = httpServiceV1.newVersion(1.2.0);

v2.setProperty(foo, bar);

HTTPServiceVersionV1.add(registry, v2);

for(HTTPServiceVersionV1 v:httpServiceV1.getVersions()){

System.out.println(v.getName());

}

 http1.attachLifecycle(SampleLifeCycle);

 StateMachineLifecycle lc  = http1.getLifecycle();

 StateMachineLifecycle.State s = lc.getCurrentState();

 lc.transfer(Promote);

 StateMachineLifecycle.State s1 = lc.getCurrentState();


 I have attached the screen shot of the G-Reg 4.6.0 mgt console after
 running this client. You can find the associations are created and
 lifecycle has attached and promoted to Test status.

 The API always deals with UUIDs from creating associations to CRUD
 instances. And the code is in wso2-dev git repo and no need to backport on
 turing, hence AF can build it and put it in to dropins.

 Once finish the searching/getAll we can try replacing a AF code with
 this API. Meanwhile we need to  finalize the rest of the meta data
 @Sanjiva's meta data spec 1.0.0 ;-).  Also will arrange a code/API review
 once search is implemented.

 Basic Implementation TODOs;

  - Search
  - Add more class/method comments to 

Re: [Architecture] [APP Factory] Tenant Deletion implementation

2014-09-09 Thread Godwin Amila Shrimal
Hi Dhanushka,

Yes, its not there in runtime, BTW I'll check the activation code as well.


Thanks
Godwin



On Tue, Sep 9, 2014 at 10:50 PM, Danushka Fernando danush...@wso2.com
wrote:

 Hi Goodwin
 If Its not there in runtime (at debug time) then its not using. You can
 easily check by checking the activation code in the particular component.
 If its used it should be registered as a tenant mgt listner in activate
 method.

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

 On Tue, Sep 9, 2014 at 9:35 PM, Godwin Amila Shrimal god...@wso2.com
 wrote:

 Hi,

 We are on the implementation of the Tenant deletion of APP Factory, we
 checked existing *TenantMgtListener* implementation in AF by debugging
 the server and found following classes.


 org.wso2.carbon.event.stream.manager.core.internal.util.helper.TenantMgtListenerImpl
 org.wso2.carbon.theme.mgt.util.ThemeLoadingListener
 org.wso2.carbon.keystore.mgt.KeystoreTenantMgtListener
 org.wso2.carbon.cassandra.server.TenantCreationListener
 org.wso2.carbon.appfactory.listners.tenant.DefaultRolesCreatorForTenant

 But when we checked the source code there are two more implementations as
 *AppFactoryTenantActivationListener* and *AppFactoryTenantMgtListener, *

 Are they currently using ? BTW *AppFactoryTenantActivationListener *marked
 as Deprecated.

 Please give a feedback on this.


 Thanks
 Godwin


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

 mobile: *+94772264165*
 linkedin: *http://lnkd.in/KUum6D http://lnkd.in/KUum6D*
 twitter: https://twitter.com/godwinamila

 ___
 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




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

mobile: *+94772264165*
linkedin: *http://lnkd.in/KUum6D http://lnkd.in/KUum6D*
twitter: https://twitter.com/godwinamila
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] : Google Plus known bug

2014-09-09 Thread Madusanka Premaratne
Hi All,
We (Myself with tharin...@wso2.com) currently developing ESB connector for
Google+API. According to Google, there are two methods which has known
bugs. The API says moments.insert[1] and moments.remove[2] methods have
this issue.

We have tested with a valid access token with proper authorization  using
rest client and it returned a 401 Unauthorized error which is the output
we can expect due to the bug.
Because of this, we are not able to test the above mentioned methods.

The documentations for the two methods can be find below.
[1] - https://developers.google.com/+/api/latest/moments/insert
[2] - https://developers.google.com/+/api/latest/moments/remove

Thank You,
-- 
*Madusanka Premaratne,*
Associate Software Engineer,
WSO2 Inc. | http://wso2.com | lean.enterprise.middleware
Mobile : +94 71 835 70 73
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture