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
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to