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

Reply via email to