Hi all, As all of you suggested I'm going with implementing a new life cycle for uploadable artifacts. The following diagram shows the entire life cycle of an application after we add the new life cycle.
Mahendran Pirinthapan Software Engineer | WSO2 Inc. Mobile +94772378732. On Wed, Oct 29, 2014 at 9:46 PM, Dimuthu Leelarathne <[email protected]> wrote: > Hi all, > > In addition this decision will stabilise our Uploadable Artifact story. > Right now it is very shaky. > > thanks, > dimuthu > > On Wed, Oct 29, 2014 at 9:15 AM, Dimuthu Leelarathne <[email protected]> > wrote: > >> Hi all, >> >> We hava a Redmine item for app type specific life cycles. But until that >> becomes a reality we can have two life cycles as suggested by the team. >> >> +1 for having a different lifecycle for upload able app types. But when >> implementing lets keep in mind the future. >> >> thanks, >> dimuthu >> >> On Wed, Oct 29, 2014 at 7:58 AM, Janaka Ranabahu <[email protected]> wrote: >> >>> Hi Gayan, Dimuthu, >>> >>> On Wed, Oct 29, 2014 at 6:29 PM, Gayan Dhanushka <[email protected]> >>> wrote: >>> >>>> Hi Pirinthapan, >>>> >>>> AFAIU you are going to have a "onDeploymentSuccess" method in >>>> "ApplicationEventsHandler" class and write a handler to call >>>> "updateApplicationDeploymentSuccessStatus" from within the implementation >>>> of that method. I can see this as a possible solution. Still I have some >>>> doubts. I believe you have to check whether the application is an >>>> uploadable application from within the >>>> "updateApplicationDeploymentSuccessStatus" method. Otherwise every time we >>>> deploy an application (Even non uploadable applications), the application >>>> will be promoted into production. >>>> >>>> Further more I believe you can call the promoting logic from within the >>>> "updateApplicationDeploymentSuccessStatus" method rather than calling the >>>> bpel service once again. >>>> >>>> @Dimuthu >>>> >>>> Shouldn't this be ideally handled by having a seperate application >>>> lifecycle for uploadable artifacts ? >>>> >>> IMO, this is the correct way to address this issue. Currently what we >>> are trying, is to use the same lifecycle for all the app types in >>> AppFactory. This is wrong because all the app types does not have the same >>> lifecycle. Certain apps we create such as Java Web applications and >>> Jax-rs/Jax-ws applications have a lifecycle which goes from development to >>> production whereas uploadable applications are deployed directly into >>> production. So clearly there are 2 lifecycles for these 2 application >>> categories. >>> >>> So I'm +1 for introducing a different lifecycle(which have only 2 >>> stages, which are 'production' and 'retired') for uploadable applications. >>> >>> WDYT? >>> >>> Thanks, >>> Janaka >>> >>>> >>>> Regards >>>> GayanD >>>> >>>> On Tue, Oct 28, 2014 at 8:47 PM, Pirinthapan Mahendran < >>>> [email protected]> wrote: >>>> >>>>> Hi all, >>>>> >>>>> In the above solution there is a problem. >>>>> >>>>> *Problem in the above solution* >>>>> >>>>> According to the above solution we are going to have a new event >>>>> handler for promoting uploadable apps. When an application is created the >>>>> "oncreate" method of all the event handlers will be called. And these >>>>> event >>>>> handlers will be executed according to the priority order. In that case >>>>> our >>>>> new handler will be executed at last because of its low priority. >>>>> During this, when the "JenkinsApplicationEventsListener" is executed, >>>>> it will create and start a job in jenkins. Once the job is started >>>>> "JenkinsApplicationEventsListener" will continue its execution. It won't >>>>> wait until the job is finished. >>>>> >>>>> So after "JenkinsApplicationEventsListener" finished its execution, >>>>> all the remaining event handlers (including our new event handler) will be >>>>> executed according to the priority order. So again the building process >>>>> and >>>>> the promoting process is going to be happen parallel. >>>>> >>>>> *Improved Solution* >>>>> >>>>> In the above solution instead of calling the promoting process from >>>>> "oncreate" method we can introduce a new method called >>>>> "onDeploymentSuccess" to the abstract class "ApplicationEventsHandler" and >>>>> implement that method in our new event listener class. Within this method >>>>> we will call the promoting process. And we will publish the deployment >>>>> success event to the listeners from the method >>>>> "updateApplicationDeploymentSuccessStatus" in >>>>> "ApplicationManagementService". >>>>> >>>>> So whenever a deployment is success for uploadable applications in >>>>> development stage, we can execute the promoting process. After the >>>>> promotion is finished we will call the deployment process to deploy the >>>>> application in production stage. >>>>> >>>>> Kindly expect your feedbacks on the above solution. >>>>> >>>>> Thanks. >>>>> >>>>> >>>>> >>>>> Mahendran Pirinthapan >>>>> Software Engineer | WSO2 Inc. >>>>> Mobile +94772378732. >>>>> >>>>> On Tue, Oct 28, 2014 at 4:58 PM, Dimuthu Leelarathne < >>>>> [email protected]> wrote: >>>>> >>>>>> >>>>>> >>>>>> On Tue, Oct 28, 2014 at 1:17 AM, Pirinthapan Mahendran < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi Danushka and Gayan, >>>>>>> >>>>>>> As we discussed offline I'm going with the following solution. >>>>>>> >>>>>>> Remove the promoting code from jaggery layer and Create an Event >>>>>>> handler by extending the abstract class "ApplicationEventsHandler" for >>>>>>> promoting uploadable artifacts. And setting this event handler's >>>>>>> priority >>>>>>> to low so that it will be executed at last. After the promotion process >>>>>>> is >>>>>>> finished we will call the deployment process from this handler class to >>>>>>> deploy the application in production stage. >>>>>>> >>>>>> >>>>>> +1. Perfect solution guys! Good job in picking the correct solution. >>>>>> >>>>>> thanks, >>>>>> dimuthu >>>>>> >>>>>> >>>>>> >>>>>>> >>>>>>> Thanks. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Mahendran Pirinthapan >>>>>>> Software Engineer | WSO2 Inc. >>>>>>> Mobile +94772378732. >>>>>>> >>>>>>> On Mon, Oct 27, 2014 at 10:21 PM, Danushka Fernando < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Gayan >>>>>>>> AFAIK there is a limitation in governance lifecycle which prevent >>>>>>>> us doing that. So I think better thing would be to fix current flow to >>>>>>>> be >>>>>>>> consistent. >>>>>>>> >>>>>>>> Thanks & Regards >>>>>>>> Danushka Fernando >>>>>>>> Software Engineer >>>>>>>> WSO2 inc. http://wso2.com/ >>>>>>>> Mobile : +94716332729 >>>>>>>> >>>>>>>> On Mon, Oct 27, 2014 at 9:48 PM, Gayan Dhanushka <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi Pirinthapan, >>>>>>>>> >>>>>>>>> As discussed the other day if we are going to change the current >>>>>>>>> implementation where we first deploy the artifact to Development and >>>>>>>>> then >>>>>>>>> promote it up to Production, this will be a very straight forward >>>>>>>>> fix. We >>>>>>>>> can just deploy the application into Production in one go. Then it >>>>>>>>> will be >>>>>>>>> just like deploying an application in the Production stage. >>>>>>>>> >>>>>>>>> Regards >>>>>>>>> GayanD >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Sun, Oct 26, 2014 at 3:26 PM, Danushka Fernando < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Hi >>>>>>>>>> @Pirinthapan : Great findings. >>>>>>>>>> IMO if we are sticking to the plan that we are going to promote >>>>>>>>>> uploadable applications to production, then we need to wait until >>>>>>>>>> application creation is over and then promote them to production. We >>>>>>>>>> might >>>>>>>>>> be able to run Application Even Listener with ordered to run last to >>>>>>>>>> do >>>>>>>>>> this task. >>>>>>>>>> @Dimuthu, Janaka : WDYT? >>>>>>>>>> >>>>>>>>>> Thanks & Regards >>>>>>>>>> Danushka Fernando >>>>>>>>>> Software Engineer >>>>>>>>>> WSO2 inc. http://wso2.com/ >>>>>>>>>> Mobile : +94716332729 >>>>>>>>>> >>>>>>>>>> On Sun, Oct 26, 2014 at 3:04 PM, Pirinthapan Mahendran < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Hi All, >>>>>>>>>>> >>>>>>>>>>> In AppFactory when we upload an existing artifact, it should be >>>>>>>>>>> directly deployed to production stage. >>>>>>>>>>> But in the current implementation sometimes it is getting >>>>>>>>>>> deployed to development stage and sometimes it is getting deployed >>>>>>>>>>> to >>>>>>>>>>> production stage. >>>>>>>>>>> >>>>>>>>>>> According to my understanding the reason for this is, we are >>>>>>>>>>> creating and promoting the application within the single method >>>>>>>>>>> "uploadExistingApplication" >>>>>>>>>>> in [1]. In this method first we are creating the application >>>>>>>>>>> using the uploaded artifact. Once the application is created build >>>>>>>>>>> is >>>>>>>>>>> triggered automatically in a background thread. At the same time we >>>>>>>>>>> are >>>>>>>>>>> calling the bpel service to promote the application. So building and >>>>>>>>>>> promoting are happening at the same time. This will give some >>>>>>>>>>> unpredictable >>>>>>>>>>> results. >>>>>>>>>>> >>>>>>>>>>> To overcome this issue we need to wait until all the application >>>>>>>>>>> creation, initial build and initial deployment processes are >>>>>>>>>>> finished. >>>>>>>>>>> After that we need to promote the application. Once the promotion >>>>>>>>>>> process >>>>>>>>>>> is finished we need to deploy the application in the production >>>>>>>>>>> stage. >>>>>>>>>>> >>>>>>>>>>> Kindly expect your ideas on this issue. >>>>>>>>>>> >>>>>>>>>>> 1. appmgt/src/site/blocks/application/add/ajax/add.jag >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Mahendran Pirinthapan >>>>>>>>>>> Software Engineer | WSO2 Inc. >>>>>>>>>>> Mobile +94772378732. >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> Architecture mailing list >>>>>>>>>>> [email protected] >>>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> Architecture mailing list >>>>>>>>>> [email protected] >>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Gayan Dhanuska >>>>>>>>> Software Engineer >>>>>>>>> http://wso2.com/ >>>>>>>>> Lean Enterprise Middleware >>>>>>>>> >>>>>>>>> Mobile >>>>>>>>> 071 666 2327 >>>>>>>>> >>>>>>>>> Office >>>>>>>>> Tel : 94 11 214 5345 >>>>>>>>> Fax : 94 11 214 5300 >>>>>>>>> >>>>>>>>> Twitter : https://twitter.com/gayanlggd >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Architecture mailing list >>>>>>>>> [email protected] >>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Architecture mailing list >>>>>>>> [email protected] >>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Architecture mailing list >>>>>>> [email protected] >>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Dimuthu Leelarathne >>>>>> Architect & Product Lead of App Factory >>>>>> >>>>>> WSO2, Inc. (http://wso2.com) >>>>>> email: [email protected] >>>>>> Mobile : 0773661935 >>>>>> >>>>>> Lean . Enterprise . Middleware >>>>>> >>>>>> _______________________________________________ >>>>>> Architecture mailing list >>>>>> [email protected] >>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> Architecture mailing list >>>>> [email protected] >>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>> >>>>> >>>> >>>> >>>> -- >>>> Gayan Dhanuska >>>> Software Engineer >>>> http://wso2.com/ >>>> Lean Enterprise Middleware >>>> >>>> Mobile >>>> 071 666 2327 >>>> >>>> Office >>>> Tel : 94 11 214 5345 >>>> Fax : 94 11 214 5300 >>>> >>>> Twitter : https://twitter.com/gayanlggd >>>> >>>> _______________________________________________ >>>> Architecture mailing list >>>> [email protected] >>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>> >>>> >>> >>> >>> -- >>> *Janaka Ranabahu* >>> Senior Software Engineer; WSO2 Inc.; http://wso2.com >>> >>> >>> *E-mail: [email protected] <http://wso2.com>**M: **+94 718370861 >>> <%2B94%20718370861>* >>> >>> Lean . Enterprise . Middleware >>> >>> _______________________________________________ >>> Architecture mailing list >>> [email protected] >>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>> >>> >> >> >> -- >> Dimuthu Leelarathne >> Architect & Product Lead of App Factory >> >> WSO2, Inc. (http://wso2.com) >> email: [email protected] >> Mobile : 0773661935 >> >> Lean . Enterprise . Middleware >> > > > > -- > Dimuthu Leelarathne > Architect & Product Lead of App Factory > > WSO2, Inc. (http://wso2.com) > email: [email protected] > Mobile : 0773661935 > > Lean . Enterprise . Middleware > > _______________________________________________ > Architecture mailing list > [email protected] > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > >
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
