Hi, I don't think manually touching the artifacts is a wise solution. As mentioned by Lasantha artifacts are not deployed until tenant is loaded. Imagine a production setup with a large number of tenants and each tenant has artifacts, then it will takes a long time to deploy all artifacts. Delaying artifact deployment is called ghost deployment [1]. Try sending a request to the not deployed artifacts and check if deploy() is get called.
[1] http://blog.afkham.org/2011/11/lazy-loading-deployment-artifacts-in.html?m=1 Touched, not typed. Erroneous words are a feature, not a typo. On Nov 15, 2014 1:49 PM, "Firzhan Naqash" <[email protected]> wrote: > Hi Lahiru, > > You can get the carbon tenant repository by > using CarbonUtils.getCarbonTenantsDirPath(). > > With in the the tenant repository you can get the array of folder names ( > tenant ID ). > > There after you can iterate the tenant id array and access the event-sinks > folder for each tenant. > > > Regards, > Firzhan > > On Sat, Nov 15, 2014 at 1:32 PM, Lahiru Chandima <[email protected]> wrote: > >> Thanks Frizhan for the nice solution :) >> >> Do you know a way to programmatically get deployment directory path of a >> tenant? >> >> Thanks >> >> On Sat, Nov 15, 2014 at 1:12 PM, Firzhan Naqash <[email protected]> wrote: >> >>> Hi Lahiru, >>> >>> On that case, you can touch(update) the artifacts of tenanat's once the >>> bundle get activated :) . This is not an elegant solution. >>> >>> There might be other better proper ways to achieve this. >>> >>> Regards, >>> Firzhan >>> >>> On Sat, Nov 15, 2014 at 12:35 PM, Lahiru Chandima <[email protected]> >>> wrote: >>> >>>> Hi Frizhan, >>>> >>>> Thanks for the information. >>>> >>>> Is there any way I can automatically re-deploy artifacts for tenants on >>>> startup? If I log in using a tenant user to ESB, I can see the proxy >>>> service artifacts that were added earlier, showing that they were somehow >>>> re-deployed. So I think there should be a way. >>>> >>>> Thanks >>>> >>>> On Sat, Nov 15, 2014 at 10:31 AM, Firzhan Naqash <[email protected]> >>>> wrote: >>>> >>>>> Hi Lahiru, >>>>> >>>>> Deployer's deploy() method will get trigger only when artifacts are >>>>> being deployed. >>>>> >>>>> For super-tenant during the server start-up axis2 re-deploys the >>>>> artifacts, thus triggering deploy(). But for tenants nothing happens like >>>>> that unless you do it manually. >>>>> >>>>> >>>>> >>>>> Regards, >>>>> Firzhan >>>>> >>>>> On Sat, Nov 15, 2014 at 7:33 AM, Lahiru Chandima <[email protected]> >>>>> wrote: >>>>> >>>>>> Hi Lasantha, >>>>>> >>>>>> Thanks for the solution. >>>>>> >>>>>> logging in as a tenant user solved the problem. Now new artifacts >>>>>> that I add after tenant is loaded get deployed. >>>>>> >>>>>> But, the artifacts that were already there in my tenant artifact >>>>>> directory neither gets deployed at server startup nor when a tenant user >>>>>> is >>>>>> logged in. But these artifacts get deployed if I do some change to them >>>>>> after a tenant user logs in. >>>>>> >>>>>> What may be the reason for this? >>>>>> >>>>>> Thanks >>>>>> >>>>>> >>>>>> On Sat, Nov 15, 2014 at 12:08 AM, Lasantha Fernando < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi Lahiru, >>>>>>> >>>>>>> Can you verify whether your tenant is loaded in the server? (If you >>>>>>> simply login as a tenant user, the tenant should be loaded) >>>>>>> >>>>>>> If your tenant is not loaded, the deployment of artifacts for that >>>>>>> particular tenant will not happen. AFAIK, this is the expected behaviour >>>>>>> for a carbon server since we load tenants lazily. >>>>>>> >>>>>>> Thanks, >>>>>>> Lasantha >>>>>>> >>>>>>> On 14 November 2014 22:58, Lahiru Chandima <[email protected]> wrote: >>>>>>> >>>>>>>> Hi Firzhan, >>>>>>>> >>>>>>>> Thanks for the reply. >>>>>>>> >>>>>>>> Tried your method and its working for files deployed in >>>>>>>> repository/deployment/server/event-sinks. But still no luck with >>>>>>>> deploying >>>>>>>> for a tenant (in repository/tenants/1/event-sinks) >>>>>>>> >>>>>>>> Any idea why? >>>>>>>> >>>>>>>> Thanks >>>>>>>> >>>>>>>> On Fri, Nov 14, 2014 at 8:10 PM, Firzhan Naqash <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi Lahiru, >>>>>>>>> >>>>>>>>> Rathern than defining them in axis2.xml, you can define them in >>>>>>>>> compnent.xml and pom.xml file which worked for me [1] >>>>>>>>> >>>>>>>>> [1] >>>>>>>>> http://architects.dzone.com/articles/writing-axis2-custom-deployers >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Firzhan >>>>>>>>> >>>>>>>>> On Fri, Nov 14, 2014 at 7:14 PM, Lahiru Chandima <[email protected] >>>>>>>>> > wrote: >>>>>>>>> >>>>>>>>>> Hi All, >>>>>>>>>> >>>>>>>>>> I have created an Axis2 deployer to deploy an xml artifact. I >>>>>>>>>> have added following to repository/conf/axis2/axis2.xml >>>>>>>>>> >>>>>>>>>> <deployer extension=".xml" >>>>>>>>>> class="org.wso2.carbon.event.sink.EventSinkDeployer" >>>>>>>>>> directory="event-sinks"/> >>>>>>>>>> >>>>>>>>>> And I have created a directory named event-sinks for my new >>>>>>>>>> artifact type in repository/deployment/server >>>>>>>>>> >>>>>>>>>> When I add a new xml artifact to the event-sinks directory, >>>>>>>>>> deploy(DeploymentFileData deploymentFileData) in my deployer gets >>>>>>>>>> called >>>>>>>>>> without a problem. >>>>>>>>>> >>>>>>>>>> But, if I deploy an artifact for a tenant (eg: in directory >>>>>>>>>> repository/tenants/1/event-sinks for tenant 1), deploy() method of my >>>>>>>>>> deployer doesn't get called. >>>>>>>>>> >>>>>>>>>> What have I done wrong? Have I created event-sinks directory in >>>>>>>>>> the wrong location for tenant 1? >>>>>>>>>> >>>>>>>>>> Thanks >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Lahiru Chandima >>>>>>>>>> *Senior Software Engineer* >>>>>>>>>> Mobile : +94 (0) 772 253283 >>>>>>>>>> [email protected] >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> Dev mailing list >>>>>>>>>> [email protected] >>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Lahiru Chandima >>>>>>>> *Senior Software Engineer* >>>>>>>> Mobile : +94 (0) 772 253283 >>>>>>>> [email protected] >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Dev mailing list >>>>>>>> [email protected] >>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Lasantha Fernando* >>>>>>> Software Engineer - Data Technologies Team >>>>>>> WSO2 Inc. http://wso2.com >>>>>>> >>>>>>> email: [email protected] >>>>>>> mobile: (+94) 71 5247551 >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Lahiru Chandima >>>>>> *Senior Software Engineer* >>>>>> Mobile : +94 (0) 772 253283 >>>>>> [email protected] >>>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Lahiru Chandima >>>> *Senior Software Engineer* >>>> Mobile : +94 (0) 772 253283 >>>> [email protected] >>>> >>> >>> >> >> >> -- >> Lahiru Chandima >> *Senior Software Engineer* >> Mobile : +94 (0) 772 253283 >> [email protected] >> > > > _______________________________________________ > Dev mailing list > [email protected] > http://wso2.org/cgi-bin/mailman/listinfo/dev > >
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
