Hi Gayan See my comments inline
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. > No What we do is to call all listeners from updateApplicationDeploymentSuc cessStatus. In side the new listener we check whether this is an uploadable application and do what ever we want to do. We have a similar kind of listener to create data sources for data service applications. In this way in core logic we don't hardcode the application types. I think its clean. Another clean solution would be introduce a method to Application Type Processor. > > Further more I believe you can call the promoting logic from within the > "updateApplicationDeploymentSuccessStatus" method rather than calling the > bpel service once again. > *-1* for this. *DONT *hardcode application types in core logic. > > @Dimuthu > > Shouldn't this be ideally handled by having a seperate application > lifecycle for uploadable artifacts ? > If we are sticking to the plan of having only the production stage for uploadable applications, +1. > > 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 > > Thanks & Regards Danushka Fernando Software Engineer WSO2 inc. http://wso2.com/ Mobile : +94716332729
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
