Re: [Architecture] Unified Governance Metadata models and APIs for WSO2 Platform
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
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
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
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
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
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
+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
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
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
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
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
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
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
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
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
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