CApp is a self contained project. So you cant update part of the project as every artifact in the CApp is part of it. If any update needed, it should be to whole CApp project and it should come through the process starting from DevStudio -> Update Artifact -> Repack CApp -> Update CApp in Server. This is our recommendation.
Other ways to update an artifact in CApp is not recommended. We need to update the docs. On Wed, Jan 22, 2014 at 11:10 AM, Asanka Vithanage <asan...@wso2.com> wrote: > Hi All, > > If some user try to update a artifact deployed through an CApp as > described in below scenario, What should be the our answer to an user? > > *Scenario:* > 1. User have created a CApp which include all the artifacts need to try > out MS and MP on ESB [Attached a such artifact]. > 2. Start the ESB server and Deploys the created CApp on ESB server > 3. Due to some reason user wants to just change an one Message Processor > parameter like "Maximum delivery attempts", So using admin console UI he > changes the parameter value {[UI is the easiest way to do such a small > change] > 4. Once user restart the server, he will experience the below listed > exception on stack-trace due to artifact duplication. > > *Note*: > With current CApp deploy architecture all artifacts deployed through a > CApp keep on a temporarily location > [wso2esb-4.8.1/repository/carbonapps/work/] and At every restart CApp will > redeploy again. > But if user edits one of capp deployed artifacts It will duplicate same > artifact inside wso2esb-4.8.1/repository/deployment/server folder hierarchy > as well.So artifact duplication happen at server restart time. > > > So whats our stand on this kind of situation? > May be we can say we are not allow to update CApp deployed artifacts > through Admin console UI. > But we do have real usability issue here, since users tend to use admin > console UI to make a small changes on an artifact. > Further our docs [1] does not say anything about this as well. > > [This concern is valid for all the wso2 products which supports CApp > deployment] > > > *Observed following Error:* > > [2014-01-21 18:17:55,517] ERROR - MessageProcessorDeployer Message > Processor Deployment from the file : > /home/asankav/servers/releasetest/ESB481/wso2esb-4.8.1/repository/carbonapps/work/1390308470104ESB_MSandMP_WSO2MB_Schenario_TestPack_O_CApp_1.0.0.car/MessageProcessorO1_1.0.0/MessageProcessorO1-1.0.0.xml > : Failed. > org.apache.synapse.SynapseException: Error scheduling job : JobDetail > 'synapse.message.processor.quartz.MessageProcessorO1-job': jobClass: > 'org.apache.synapse.message.processor.impl.forwarder.ForwardingService > concurrentExectionDisallowed: false persistJobDataAfterExecution: false > isDurable: false requestsRecovers: false with trigger Trigger > 'DEFAULT.MessageProcessorO1-trigger': triggerClass: > 'org.quartz.impl.triggers.SimpleTriggerImpl calendar: 'null' > misfireInstruction: 4 nextFireTime: Tue Jan 21 18:17:55 IST 2014 > at > org.apache.synapse.message.processor.impl.ScheduledMessageProcessor.start(ScheduledMessageProcessor.java:153) > at > org.apache.synapse.message.processor.impl.ScheduledMessageProcessor.init(ScheduledMessageProcessor.java:108) > at > org.apache.synapse.message.processor.impl.forwarder.ScheduledMessageForwardingProcessor.init(ScheduledMessageForwardingProcessor.java:43) > at > org.apache.synapse.deployers.MessageProcessorDeployer.deploySynapseArtifact(MessageProcessorDeployer.java:52) > at > org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.deploy(AbstractSynapseArtifactDeployer.java:190) > at > org.wso2.carbon.application.deployer.synapse.SynapseAppDeployer.deployArtifacts(SynapseAppDeployer.java:140) > at > org.wso2.carbon.application.deployer.internal.ApplicationManager.deployCarbonApp(ApplicationManager.java:251) > at > org.wso2.carbon.application.deployer.CappAxis2Deployer.deploy(CappAxis2Deployer.java:114) > at > org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136) > at > org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:807) > at > org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144) > at > org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:377) > at > org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:254) > at > org.apache.axis2.deployment.RepositoryListener.startListener(RepositoryListener.java:371) > at > org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepository(SchedulerTask.java:59) > at > org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:67) > at > org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.runAxisDeployment(CarbonDeploymentSchedulerTask.java:79) > at > org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run(CarbonDeploymentSchedulerTask.java:124) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) > at > java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) > at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) > at java.lang.Thread.run(Thread.java:662) > Caused by: org.quartz.ObjectAlreadyExistsException: Unable to store Job : > 'synapse.message.processor.quartz.MessageProcessorO1-job', because one > already exists with this identification. > at org.quartz.simpl.RAMJobStore.storeJob(RAMJobStore.java:277) > at > org.quartz.simpl.RAMJobStore.storeJobAndTrigger(RAMJobStore.java:249) > at > org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:840) > at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:250) > at > org.apache.synapse.message.processor.impl.ScheduledMessageProcessor.start(ScheduledMessageProcessor.java:151) > ... 26 more > [2014-01-21 18:17:55,575] ERROR - AbstractSynapseArtifactDeployer > Deployment of the Synapse Artifact from file : > /home/asankav/servers/releasetest/ESB481/wso2esb-4.8.1/repository/carbonapps/work/1390308470104ESB_MSandMP_WSO2MB_Schenario_TestPack_O_CApp_1.0.0.car/MessageProcessorO1_1.0.0/MessageProcessorO1-1.0.0.xml > : Failed! > org.apache.synapse.deployers.SynapseArtifactDeploymentException: Message > Processor Deployment from the file : > /home/asankav/servers/releasetest/ESB481/wso2esb-4.8.1/repository/carbonapps/work/1390308470104ESB_MSandMP_WSO2MB_Schenario_TestPack_O_CApp_1.0.0.car/MessageProcessorO1_1.0.0/MessageProcessorO1-1.0.0.xml > : Failed. > at > org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.handleSynapseArtifactDeploymentError(AbstractSynapseArtifactDeployer.java:471) > at > org.apache.synapse.deployers.MessageProcessorDeployer.deploySynapseArtifact(MessageProcessorDeployer.java:71) > at > org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.deploy(AbstractSynapseArtifactDeployer.java:190) > at > org.wso2.carbon.application.deployer.synapse.SynapseAppDeployer.deployArtifacts(SynapseAppDeployer.java:140) > at > org.wso2.carbon.application.deployer.internal.ApplicationManager.deployCarbonApp(ApplicationManager.java:251) > at > org.wso2.carbon.application.deployer.CappAxis2Deployer.deploy(CappAxis2Deployer.java:114) > at > org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136) > at > org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:807) > at > org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144) > at > org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:377) > at > org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:254) > at > org.apache.axis2.deployment.RepositoryListener.startListener(RepositoryListener.java:371) > at > org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepository(SchedulerTask.java:59) > at > org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:67) > at > org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.runAxisDeployment(CarbonDeploymentSchedulerTask.java:79) > at > org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run(CarbonDeploymentSchedulerTask.java:124) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) > at > java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) > at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) > at java.lang.Thread.run(Thread.java:662) > Caused by: org.apache.synapse.SynapseException: Error scheduling job : > JobDetail 'synapse.message.processor.quartz.MessageProcessorO1-job': > jobClass: > 'org.apache.synapse.message.processor.impl.forwarder.ForwardingService > concurrentExectionDisallowed: false persistJobDataAfterExecution: false > isDurable: false requestsRecovers: false with trigger Trigger > 'DEFAULT.MessageProcessorO1-trigger': triggerClass: > 'org.quartz.impl.triggers.SimpleTriggerImpl calendar: 'null' > misfireInstruction: 4 nextFireTime: Tue Jan 21 18:17:55 IST 2014 > at > org.apache.synapse.message.processor.impl.ScheduledMessageProcessor.start(ScheduledMessageProcessor.java:153) > at > org.apache.synapse.message.processor.impl.ScheduledMessageProcessor.init(ScheduledMessageProcessor.java:108) > at > org.apache.synapse.message.processor.impl.forwarder.ScheduledMessageForwardingProcessor.init(ScheduledMessageForwardingProcessor.java:43) > at > org.apache.synapse.deployers.MessageProcessorDeployer.deploySynapseArtifact(MessageProcessorDeployer.java:52) > ... 23 more > Caused by: org.quartz.ObjectAlreadyExistsException: Unable to store Job : > 'synapse.message.processor.quartz.MessageProcessorO1-job', because one > already exists with this identification. > at org.quartz.simpl.RAMJobStore.storeJob(RAMJobStore.java:277) > at > org.quartz.simpl.RAMJobStore.storeJobAndTrigger(RAMJobStore.java:249) > at > org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:840) > at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:250) > at > org.apache.synapse.message.processor.impl.ScheduledMessageProcessor.start(ScheduledMessageProcessor.java:151) > ... 26 more > > > [1] http://docs.wso2.org/display/Carbon420/C-App+Deployment+Process > > -- > Asanka Vithanage > Senior Software Engineer -QA > Mobile: +94 0716286708 > Email: asan...@wso2.com > WSO2 Inc. www.wso2.com > > > _______________________________________________ > Dev mailing list > Dev@wso2.org > http://wso2.org/cgi-bin/mailman/listinfo/dev > > -- *Kishanthan Thangarajah* Senior Software Engineer, Platform Technologies Team, WSO2, Inc. lean.enterprise.middleware Mobile - +94773426635 Blog - *http://kishanthan.wordpress.com <http://kishanthan.wordpress.com>* Twitter - *http://twitter.com/kishanthan <http://twitter.com/kishanthan>*
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev