Re: [Architecture] Unwanted application deployment notifications in AppFactory
Hi, Since there are some concerns[1] in calculating md5sum for application artifacts, [1] Cannot generate a single md5 for a directory.( in jaggery case) When we run application servers with EXPLODED_MODE = ON (which is the recommended way for production) war files will get extracted in the deployment stage. This will cause [1]. For these reasons we decided to go with application lastmodified time [2]. This lastmodifiedtime is stored in rxt for the particular appversion. And it is compared with the current app modificationtime before sending a deployment notification. In fact there are some scenarios which this solution will fail (like if there is a change happen inside the application directory due to a user action, same app redeployment). But most of the typical cases + the scenarios mentioned above by Dimuthu 1 - Artifact is getting deployed for the first time and tenant is already loaded sometime ago 2 - Artifact is getting deployed for the first time while tenant is getting loaded 3 - Artifact is getting redeployed and the tenant is already loaded sometime ago 4 - Artifact is getting redeployed while the tenant is getting loaded are covered by this. [2] artifactLastModifiedTime = new File(applocation).lastModified(); On Sat, Jul 5, 2014 at 9:49 AM, Ajanthan Balachandran ajant...@wso2.com wrote: On Sat, Jul 5, 2014 at 2:32 AM, Dimuthu Leelarathne dimut...@wso2.com wrote: Hi Ajanthan and all, 1 - Artifact is getting deployed for the first time and tenant is already loaded sometime ago 2 - Artifact is getting deployed for the first time while tenant is getting loaded 3 - Artifact is getting redeployed and the tenant is already loaded sometime ago 4 - Artifact is getting redeployed while the tenant is getting loaded That code wouldn't work for 2nd and 4th, IMO. Is that the case? Yes,It doesn't work.Since we are committing the artifact first and loading the tenant by pinging the url there is a high probability to scenario 2 and 4 happen at-least first time deployment. thanks, dimuthu On Fri, Jul 4, 2014 at 11:34 PM, Ashansa Perera asha...@wso2.com wrote: If lastAccessedTime is -1 at the time tenant is loading, I feel that this is a good approach. On Jul 4, 2014 12:07 PM, Ajanthan Balachandran ajant...@wso2.com wrote: On Tue, Jul 1, 2014 at 5:48 PM, Anuruddha Premalal anurud...@wso2.com wrote: Hi All, Following is the problem-solution description regards to jira APPFAC-2252 https://wso2.org/jira/browse/APPFAC-2252 *Problem :* AppServer tenant get unloaded when there is no activity for 30mins. When a user deploy an app to this unloaded tenant, it will load and deploy all previously deployed apps; current implementation use catalina LifecycleListner and it captures these redeployment events and triggers the notifications. *Solution :* Send the artifact md5sum with the notification to the Appfactory. Appfactory will validate the md5 and push the wall message accordingly. How about only publishing the events from a tenant after only if the tenant is completely loaded(you can detect this status by checking tenantConfigCtx.getProperty(MultitenantConstants.LAST_ACCESSED)[0] ).We can filter out the deployment events that are happening due to tenant loading using this method. Regards, -- *Anuruddha Premalal* Software Eng. | WSO2 Inc. Mobile : +94710461070 Web site : www.regilandvalley.com Advances of technology should not leave behind the developing world ___ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture [0] long lastAccessedTime =TenantAxisUtils.getLastAccessed(tenantDomain, ServiceHolder.getInstance() .getConfigContextService().getServerConfigContext()); if(lastAccessedTime!=-1){ log.info([sendNotification] Tenant : +tenantDomain+ appid : +appId+ msg : +msg); }else { log.info([sendNotification] ignoring..tenant is not loaded ); } -- ajanthan -- Ajanthan Balachandiran Senior Software Engineer; Solutions Technologies Team ;WSO2, Inc.; http://wso2.com/ email: ajanthan http://goog_595075977@wso2.com; cell: +94775581497 blog: http://bkayts.blogspot.com/ Lean . Enterprise . Middleware ___ 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 -- Dimuthu Leelarathne Architect Product Lead of App Factory WSO2, Inc. (http://wso2.com) email: dimut...@wso2.com Mobile : 0773661935 Lean . Enterprise . Middleware -- ajanthan -- Ajanthan Balachandiran Senior Software Engineer; Solutions Technologies Team ;WSO2, Inc.; http://wso2.com/
Re: [Architecture] Unwanted application deployment notifications in AppFactory
On Tue, Jul 1, 2014 at 5:48 PM, Anuruddha Premalal anurud...@wso2.com wrote: Hi All, Following is the problem-solution description regards to jira APPFAC-2252 https://wso2.org/jira/browse/APPFAC-2252 *Problem :* AppServer tenant get unloaded when there is no activity for 30mins. When a user deploy an app to this unloaded tenant, it will load and deploy all previously deployed apps; current implementation use catalina LifecycleListner and it captures these redeployment events and triggers the notifications. *Solution :* Send the artifact md5sum with the notification to the Appfactory. Appfactory will validate the md5 and push the wall message accordingly. How about only publishing the events from a tenant after only if the tenant is completely loaded(you can detect this status by checking tenantConfigCtx.getProperty(MultitenantConstants.LAST_ACCESSED)[0] ).We can filter out the deployment events that are happening due to tenant loading using this method. Regards, -- *Anuruddha Premalal* Software Eng. | WSO2 Inc. Mobile : +94710461070 Web site : www.regilandvalley.com Advances of technology should not leave behind the developing world ___ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture [0] long lastAccessedTime =TenantAxisUtils.getLastAccessed(tenantDomain, ServiceHolder.getInstance() .getConfigContextService().getServerConfigContext()); if(lastAccessedTime!=-1){ log.info([sendNotification] Tenant : +tenantDomain+ appid : +appId+ msg : +msg); }else { log.info([sendNotification] ignoring..tenant is not loaded ); } -- ajanthan -- Ajanthan Balachandiran Senior Software Engineer; Solutions Technologies Team ;WSO2, Inc.; http://wso2.com/ email: ajanthan http://goog_595075977@wso2.com; cell: +94775581497 blog: http://bkayts.blogspot.com/ Lean . Enterprise . Middleware ___ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
Re: [Architecture] Unwanted application deployment notifications in AppFactory
If lastAccessedTime is -1 at the time tenant is loading, I feel that this is a good approach. On Jul 4, 2014 12:07 PM, Ajanthan Balachandran ajant...@wso2.com wrote: On Tue, Jul 1, 2014 at 5:48 PM, Anuruddha Premalal anurud...@wso2.com wrote: Hi All, Following is the problem-solution description regards to jira APPFAC-2252 https://wso2.org/jira/browse/APPFAC-2252 *Problem :* AppServer tenant get unloaded when there is no activity for 30mins. When a user deploy an app to this unloaded tenant, it will load and deploy all previously deployed apps; current implementation use catalina LifecycleListner and it captures these redeployment events and triggers the notifications. *Solution :* Send the artifact md5sum with the notification to the Appfactory. Appfactory will validate the md5 and push the wall message accordingly. How about only publishing the events from a tenant after only if the tenant is completely loaded(you can detect this status by checking tenantConfigCtx.getProperty(MultitenantConstants.LAST_ACCESSED)[0] ).We can filter out the deployment events that are happening due to tenant loading using this method. Regards, -- *Anuruddha Premalal* Software Eng. | WSO2 Inc. Mobile : +94710461070 Web site : www.regilandvalley.com Advances of technology should not leave behind the developing world ___ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture [0] long lastAccessedTime =TenantAxisUtils.getLastAccessed(tenantDomain, ServiceHolder.getInstance() .getConfigContextService().getServerConfigContext()); if(lastAccessedTime!=-1){ log.info([sendNotification] Tenant : +tenantDomain+ appid : +appId+ msg : +msg); }else { log.info([sendNotification] ignoring..tenant is not loaded ); } -- ajanthan -- Ajanthan Balachandiran Senior Software Engineer; Solutions Technologies Team ;WSO2, Inc.; http://wso2.com/ email: ajanthan http://goog_595075977@wso2.com; cell: +94775581497 blog: http://bkayts.blogspot.com/ Lean . Enterprise . Middleware ___ 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] Unwanted application deployment notifications in AppFactory
Hi Ajanthan and all, 1 - Artifact is getting deployed for the first time and tenant is already loaded sometime ago 2 - Artifact is getting deployed for the first time while tenant is getting loaded 3 - Artifact is getting redeployed and the tenant is already loaded sometime ago 4 - Artifact is getting redeployed while the tenant is getting loaded That code wouldn't work for 2nd and 4th, IMO. Is that the case? thanks, dimuthu On Fri, Jul 4, 2014 at 11:34 PM, Ashansa Perera asha...@wso2.com wrote: If lastAccessedTime is -1 at the time tenant is loading, I feel that this is a good approach. On Jul 4, 2014 12:07 PM, Ajanthan Balachandran ajant...@wso2.com wrote: On Tue, Jul 1, 2014 at 5:48 PM, Anuruddha Premalal anurud...@wso2.com wrote: Hi All, Following is the problem-solution description regards to jira APPFAC-2252 https://wso2.org/jira/browse/APPFAC-2252 *Problem :* AppServer tenant get unloaded when there is no activity for 30mins. When a user deploy an app to this unloaded tenant, it will load and deploy all previously deployed apps; current implementation use catalina LifecycleListner and it captures these redeployment events and triggers the notifications. *Solution :* Send the artifact md5sum with the notification to the Appfactory. Appfactory will validate the md5 and push the wall message accordingly. How about only publishing the events from a tenant after only if the tenant is completely loaded(you can detect this status by checking tenantConfigCtx.getProperty(MultitenantConstants.LAST_ACCESSED)[0] ).We can filter out the deployment events that are happening due to tenant loading using this method. Regards, -- *Anuruddha Premalal* Software Eng. | WSO2 Inc. Mobile : +94710461070 Web site : www.regilandvalley.com Advances of technology should not leave behind the developing world ___ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture [0] long lastAccessedTime =TenantAxisUtils.getLastAccessed(tenantDomain, ServiceHolder.getInstance() .getConfigContextService().getServerConfigContext()); if(lastAccessedTime!=-1){ log.info([sendNotification] Tenant : +tenantDomain+ appid : +appId+ msg : +msg); }else { log.info([sendNotification] ignoring..tenant is not loaded ); } -- ajanthan -- Ajanthan Balachandiran Senior Software Engineer; Solutions Technologies Team ;WSO2, Inc.; http://wso2.com/ email: ajanthan http://goog_595075977@wso2.com; cell: +94775581497 blog: http://bkayts.blogspot.com/ Lean . Enterprise . Middleware ___ 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 -- 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] Unwanted application deployment notifications in AppFactory
Hi Anuruddha, How do we handle a scenario where developer1 click on deploy of 1.0.0 version and at the same time, developer2 click on deploy of 2.0.0 version of same application? AFAIU, both developer1 and developer2 will notice that 1.0.0 and 2.0.0 both deployment messages in App wall. IMO this is OK because both users must get information about application they are developing. thank you. On Tue, Jul 1, 2014 at 5:48 PM, Anuruddha Premalal anurud...@wso2.com wrote: Hi All, Following is the problem-solution description regards to jira APPFAC-2252 https://wso2.org/jira/browse/APPFAC-2252 *Problem :* AppServer tenant get unloaded when there is no activity for 30mins. When a user deploy an app to this unloaded tenant, it will load and deploy all previously deployed apps; current implementation use catalina LifecycleListner and it captures these redeployment events and triggers the notifications. *Solution :* Send the artifact md5sum with the notification to the Appfactory. Appfactory will validate the md5 and push the wall message accordingly. Regards, -- *Anuruddha Premalal* Software Eng. | WSO2 Inc. Mobile : +94710461070 Web site : www.regilandvalley.com Advances of technology should not leave behind the developing world ___ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture -- Manjula Rathnayaka Software Engineer WSO2, Inc. Mobile:+94 77 743 1987 ___ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
Re: [Architecture] Unwanted application deployment notifications in AppFactory
I think this will apply to everything deployed in WSO2 servers. Currently we only have app server based app types only. So Anuruddha remember to change data service path as well (service deployment listener) and you will need to test for all app types. And Dimuthu what's happening to jaggery apps? On Jul 1, 2014 5:48 PM, Anuruddha Premalal anurud...@wso2.com wrote: Hi All, Following is the problem-solution description regards to jira APPFAC-2252 https://wso2.org/jira/browse/APPFAC-2252 *Problem :* AppServer tenant get unloaded when there is no activity for 30mins. When a user deploy an app to this unloaded tenant, it will load and deploy all previously deployed apps; current implementation use catalina LifecycleListner and it captures these redeployment events and triggers the notifications. *Solution :* Send the artifact md5sum with the notification to the Appfactory. Appfactory will validate the md5 and push the wall message accordingly. Regards, -- *Anuruddha Premalal* Software Eng. | WSO2 Inc. Mobile : +94710461070 Web site : www.regilandvalley.com Advances of technology should not leave behind the developing world ___ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
Re: [Architecture] Unwanted application deployment notifications in AppFactory
Hi Anuraddha, Need to test with Jaggery apps as well. thanks, dimuthu On Tue, Jul 1, 2014 at 6:03 PM, Danushka Fernando danush...@wso2.com wrote: I think this will apply to everything deployed in WSO2 servers. Currently we only have app server based app types only. So Anuruddha remember to change data service path as well (service deployment listener) and you will need to test for all app types. And Dimuthu what's happening to jaggery apps? On Jul 1, 2014 5:48 PM, Anuruddha Premalal anurud...@wso2.com wrote: Hi All, Following is the problem-solution description regards to jira APPFAC-2252 https://wso2.org/jira/browse/APPFAC-2252 *Problem :* AppServer tenant get unloaded when there is no activity for 30mins. When a user deploy an app to this unloaded tenant, it will load and deploy all previously deployed apps; current implementation use catalina LifecycleListner and it captures these redeployment events and triggers the notifications. *Solution :* Send the artifact md5sum with the notification to the Appfactory. Appfactory will validate the md5 and push the wall message accordingly. Regards, -- *Anuruddha Premalal* Software Eng. | WSO2 Inc. Mobile : +94710461070 Web site : www.regilandvalley.com Advances of technology should not leave behind the developing world -- 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] Unwanted application deployment notifications in AppFactory
What I mentioned was last time remember jaggery app is not an single artifact. Its a folder. So how we can handle md5sum? On Jul 1, 2014 6:07 PM, Dimuthu Leelarathne dimut...@wso2.com wrote: Hi Anuraddha, Need to test with Jaggery apps as well. thanks, dimuthu On Tue, Jul 1, 2014 at 6:03 PM, Danushka Fernando danush...@wso2.com wrote: I think this will apply to everything deployed in WSO2 servers. Currently we only have app server based app types only. So Anuruddha remember to change data service path as well (service deployment listener) and you will need to test for all app types. And Dimuthu what's happening to jaggery apps? On Jul 1, 2014 5:48 PM, Anuruddha Premalal anurud...@wso2.com wrote: Hi All, Following is the problem-solution description regards to jira APPFAC-2252 https://wso2.org/jira/browse/APPFAC-2252 *Problem :* AppServer tenant get unloaded when there is no activity for 30mins. When a user deploy an app to this unloaded tenant, it will load and deploy all previously deployed apps; current implementation use catalina LifecycleListner and it captures these redeployment events and triggers the notifications. *Solution :* Send the artifact md5sum with the notification to the Appfactory. Appfactory will validate the md5 and push the wall message accordingly. Regards, -- *Anuruddha Premalal* Software Eng. | WSO2 Inc. Mobile : +94710461070 Web site : www.regilandvalley.com Advances of technology should not leave behind the developing world -- 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] Unwanted application deployment notifications in AppFactory
Yes Danushka, if we are going to avoid user deploying the same artifact it will be fine. And +1 for implementing that ( avoid deployment and notify user ) On Tue, Jul 1, 2014 at 6:20 PM, Danushka Fernando danush...@wso2.com wrote: There are two sides to that. But IMO There is no point in deploying same artifact which is already deployed. May be that's something we should stop user and say artifact is already deployed. WDYT? On Jul 1, 2014 6:14 PM, Ashansa Perera asha...@wso2.com wrote: Hi all, If we are going to compare md5sum of the deployed artifact what will happen if someone clicks on deploy button without building ( say the app is already built before ) So the latest build will be deployed ( which has the same md5sum as the already deployed artifact ), user will be waiting for the notification, but he will not get any notification since the md5sum is the same. This will lead to think that the function is broken which is not good. On Tue, Jul 1, 2014 at 6:07 PM, Dimuthu Leelarathne dimut...@wso2.com wrote: Hi Anuraddha, Need to test with Jaggery apps as well. thanks, dimuthu On Tue, Jul 1, 2014 at 6:03 PM, Danushka Fernando danush...@wso2.com wrote: I think this will apply to everything deployed in WSO2 servers. Currently we only have app server based app types only. So Anuruddha remember to change data service path as well (service deployment listener) and you will need to test for all app types. And Dimuthu what's happening to jaggery apps? On Jul 1, 2014 5:48 PM, Anuruddha Premalal anurud...@wso2.com wrote: Hi All, Following is the problem-solution description regards to jira APPFAC-2252 https://wso2.org/jira/browse/APPFAC-2252 *Problem :* AppServer tenant get unloaded when there is no activity for 30mins. When a user deploy an app to this unloaded tenant, it will load and deploy all previously deployed apps; current implementation use catalina LifecycleListner and it captures these redeployment events and triggers the notifications. *Solution :* Send the artifact md5sum with the notification to the Appfactory. Appfactory will validate the md5 and push the wall message accordingly. Regards, -- *Anuruddha Premalal* Software Eng. | WSO2 Inc. Mobile : +94710461070 Web site : www.regilandvalley.com Advances of technology should not leave behind the developing world -- 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 -- Thanks Regards, Ashansa Perera Senior Software Engineer WSO2, Inc -- Thanks Regards, Ashansa Perera Senior Software Engineer WSO2, Inc ___ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
Re: [Architecture] Unwanted application deployment notifications in AppFactory
Hi, For the WebApplication there may be some initialization process with the context listeners when it deploy. Because of some reason, developer wants to redeploy the same app to check or redo the initialization process using that context listeners, we are unable to support it if we allow the deployment for only one time per build. IMO is to allow to deploy a web app anytime. Because this is for the developers, not for the end users. WDYT ? *Harsha Thirimanna* Senior Software Engineer; WSO2, Inc.; http://wso2.com * http://www.apache.org/* * email: **hars...@wso2.com* az...@wso2.com* cell: +94 71 5186770 , +94 * *774617784 twitter: **http://twitter.com/ http://twitter.com/afkham_azeez* *harshathirimann linked-in: **http: http://lk.linkedin.com/in/afkhamazeez**//www.linkedin.com/pub/harsha-thirimanna/10/ab8/122 http://www.linkedin.com/pub/harsha-thirimanna/10/ab8/122* *Lean . Enterprise . Middleware* On Tue, Jul 1, 2014 at 6:37 PM, Ashansa Perera asha...@wso2.com wrote: Yes Danushka, if we are going to avoid user deploying the same artifact it will be fine. And +1 for implementing that ( avoid deployment and notify user ) On Tue, Jul 1, 2014 at 6:20 PM, Danushka Fernando danush...@wso2.com wrote: There are two sides to that. But IMO There is no point in deploying same artifact which is already deployed. May be that's something we should stop user and say artifact is already deployed. WDYT? On Jul 1, 2014 6:14 PM, Ashansa Perera asha...@wso2.com wrote: Hi all, If we are going to compare md5sum of the deployed artifact what will happen if someone clicks on deploy button without building ( say the app is already built before ) So the latest build will be deployed ( which has the same md5sum as the already deployed artifact ), user will be waiting for the notification, but he will not get any notification since the md5sum is the same. This will lead to think that the function is broken which is not good. On Tue, Jul 1, 2014 at 6:07 PM, Dimuthu Leelarathne dimut...@wso2.com wrote: Hi Anuraddha, Need to test with Jaggery apps as well. thanks, dimuthu On Tue, Jul 1, 2014 at 6:03 PM, Danushka Fernando danush...@wso2.com wrote: I think this will apply to everything deployed in WSO2 servers. Currently we only have app server based app types only. So Anuruddha remember to change data service path as well (service deployment listener) and you will need to test for all app types. And Dimuthu what's happening to jaggery apps? On Jul 1, 2014 5:48 PM, Anuruddha Premalal anurud...@wso2.com wrote: Hi All, Following is the problem-solution description regards to jira APPFAC-2252 https://wso2.org/jira/browse/APPFAC-2252 *Problem :* AppServer tenant get unloaded when there is no activity for 30mins. When a user deploy an app to this unloaded tenant, it will load and deploy all previously deployed apps; current implementation use catalina LifecycleListner and it captures these redeployment events and triggers the notifications. *Solution :* Send the artifact md5sum with the notification to the Appfactory. Appfactory will validate the md5 and push the wall message accordingly. Regards, -- *Anuruddha Premalal* Software Eng. | WSO2 Inc. Mobile : +94710461070 Web site : www.regilandvalley.com Advances of technology should not leave behind the developing world -- 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 -- Thanks Regards, Ashansa Perera Senior Software Engineer WSO2, Inc -- Thanks Regards, Ashansa Perera Senior Software Engineer WSO2, Inc ___ 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