I will implement and provide a patch. Thanks, Nipuni
On Mon, Jun 2, 2014 at 6:14 PM, Sameera Jayasoma <same...@wso2.com> wrote: > Looks like we have a solution this problem. We simply need to way to > register deployers which cannot be declared in component.xml, because users > should be able add or remove deployers. > > Axis2DeployerRegistry.register() method registers all the Deployers > declared in the component.xml files. These are static Deployers. Now we > need to improve the Axis2DeployerRegistry.register() method handle the > other type of deployers. e.g. Webapp deployers for registered virtual > hosts. > > In this solution Axis2DeployerRegistry asks the dynamic webapp deployer > list from the webapp-mgt component using an OSGi service registered by the > webapp-mgt component. In order to achieve this we can introduce a generic > interface. Say Axis2DeployerProvider. webapp-mgt component implements this > interface and register an OSGi service. Say > VirtualHostWebappDeployerProvider. > > Now Axis2DeployerRegistry.register() method can get all the OSGi services > which implement the Axis2DeployerProvider interface and get the deployer > list and register them. Easy.. > > I guess Nipuni can implement this and provide a patch to Carbon kernel > 4.3.0. > > Thanks, > Sameera. > > On Mon, Jun 2, 2014 at 5:28 PM, Sameera Jayasoma <same...@wso2.com> wrote: > >> We do no recommend to register deployers programmatically. The >> recommended approach is to declare them in the component.xml. This allows >> Carbon kernel to read and register deployers before initializing Apache >> Axis2 engine. If you register deployers programmatically, Carbon kernel >> does not have any control. Your artifacts may get deployed after server has >> been started. I.e. after the transports are started. >> >> The above approach perfectly fits if the deployers do not get added or >> removed dynamically. But in your case, we cannot predict the number of >> deployers. I.e. for every new virtual host, there will be a new webapp >> deployer. Therefore we cannot list all the deployers in the component.xml. >> Now we need to come up with a solution to support this requirement. >> >> Thanks, >> Sameera. >> >> >> >> On Mon, Jun 2, 2014 at 2:43 PM, Kasun Gajasinghe <kas...@wso2.com> wrote: >> >>> >>> >>> >>> On Mon, Jun 2, 2014 at 2:05 PM, Nipuni Perera <nip...@wso2.com> wrote: >>> >>>> I didn't change the default deployer. I only read appBase values of >>>> virtual hosts and added them to the deployment engine. But the webapp >>>> deployment take place just after management console is started. >>>> >>>> >>> This happens if the deployers got added after axis2 has started IIRC. >>> So, we need to make sure of the order. But unfortunately, we do not have a >>> proper way to force this order currently. >>> >>> @Sameera, any ideas? >>> >>> >>>> Thanks, >>>> Nipuni >>>> >>>> >>>> On Mon, Jun 2, 2014 at 12:28 PM, Kasun Gajasinghe <kas...@wso2.com> >>>> wrote: >>>> >>>>> >>>>> I do not think that you should remove the default webapp deployer from >>>>> component.xml. Your should be in effect only for the additional virtual >>>>> hosts. >>>>> >>>>> >>>>> On Mon, Jun 2, 2014 at 9:25 AM, Nipuni Perera <nip...@wso2.com> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> This is working. This was due to an ip address conflict. >>>>>> >>>>>> Thanks, >>>>>> Nipuni >>>>>> >>>>>> >>>>>> On Sun, Jun 1, 2014 at 3:41 PM, Nipuni Perera <nip...@wso2.com> >>>>>> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> I am working on the $subject. According to the current >>>>>>> implementation users has to put webapps inside >>>>>>> repositro/depolment/server/webapss and access them via host name >>>>>>> "localhost" only. I have modified carbontomcat.java to deploy webapps >>>>>>> in a >>>>>>> location defined inside appBase of virtualhosts. But this needs to add >>>>>>> an >>>>>>> entry to component.xml to direct the name of webapps directory to the >>>>>>> relevent WebAppDeployer class. (Adding an entry to component.xml each >>>>>>> time >>>>>>> a new appBase is created is not preferred) >>>>>>> >>>>>>> I have tried following steps when adding deployers to deployment >>>>>>> engine without reading component.xml file. When reading component.xml >>>>>>> file, >>>>>>> the Axis2DeployerRegistry class adds the deployers and relevant >>>>>>> directory >>>>>>> names to a deploymentEngine. In order to skip reading component.xml, >>>>>>> deployment engine should be updated using the virtual host appBase >>>>>>> values >>>>>>> and deployer names. >>>>>>> >>>>>>> *Scenario 1* >>>>>>> >>>>>>> >>>>>>> 1. I created a new service component class inside >>>>>>> /org/wso2/carbon/webapp/deployer/internal/ and added following, >>>>>>> >>>>>>> CarbonTomcatService >>>>>>> carbonTomcatService = DataHolder.getCarbonTomcatService(); >>>>>>> DeploymentEngine deploymentEngine = >>>>>>> (DeploymentEngine)(DataHolder.getServerConfigContext().getAxisConfiguration()).getConfigurator(); >>>>>>> >>>>>>> This gave null values to both variables. >>>>>>> ("serverConfigContext" and "carbonTomcatService" variables initialize >>>>>>> inside service components in /org/wso2/carbon/webapp/mgt/internal. So it >>>>>>> seems the newly created service component classes executes first) >>>>>>> >>>>>>> *Scenario 2* >>>>>>> >>>>>>> 1. I have created a new OSGI bundle which tries to read above >>>>>>> two variables inside its Activator class and service component >>>>>>> class. I >>>>>>> could read proper values inside the service component class and >>>>>>> update >>>>>>> deployment engine. But according to logs, this executes after >>>>>>> starting the >>>>>>> wso2 carbon. But, the following statement does deploy the webapps >>>>>>> inside >>>>>>> the appBase. >>>>>>> >>>>>>> >>>>>>> deploymentEngine.addDeployer(deployer, directory, extension); >>>>>>> >>>>>>> But I am able to access webapps using host name "localhost" only, >>>>>>> What could be the issue here? >>>>>>> >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> Nipuni >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Nipuni Perera >>>>>>> Software Engineer; WSO2 Inc.; http://wso2.com >>>>>>> Email: nip...@wso2.com >>>>>>> Git hub profile: https://github.com/nipuni >>>>>>> Mobile: +94 (71) 5626680 >>>>>>> <http://wso2.com> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Nipuni Perera >>>>>> Software Engineer; WSO2 Inc.; http://wso2.com >>>>>> Email: nip...@wso2.com >>>>>> Git hub profile: https://github.com/nipuni >>>>>> Mobile: +94 (71) 5626680 >>>>>> <http://wso2.com> >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> *Kasun Gajasinghe*Senior Software Engineer, WSO2 Inc. >>>>> email: kasung AT spamfree wso2.com >>>>> linked-in: http://lk.linkedin.com/in/gajasinghe >>>>> blog: http://kasunbg.org >>>>> >>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> Nipuni Perera >>>> Software Engineer; WSO2 Inc.; http://wso2.com >>>> Email: nip...@wso2.com >>>> Git hub profile: https://github.com/nipuni >>>> Mobile: +94 (71) 5626680 >>>> <http://wso2.com> >>>> >>>> >>> >>> >>> -- >>> >>> *Kasun Gajasinghe*Senior Software Engineer, WSO2 Inc. >>> email: kasung AT spamfree wso2.com >>> linked-in: http://lk.linkedin.com/in/gajasinghe >>> blog: http://kasunbg.org >>> >>> >>> >> >> >> >> -- >> Sameera Jayasoma, >> Software Architect, >> >> WSO2, Inc. (http://wso2.com) >> email: same...@wso2.com >> blog: http://sameera.adahas.org >> twitter: https://twitter.com/sameerajayasoma >> flickr: http://www.flickr.com/photos/sameera-jayasoma/collections >> Mobile: 0094776364456 >> >> Lean . Enterprise . Middleware >> >> > > > -- > Sameera Jayasoma, > Software Architect, > > WSO2, Inc. (http://wso2.com) > email: same...@wso2.com > blog: http://sameera.adahas.org > twitter: https://twitter.com/sameerajayasoma > flickr: http://www.flickr.com/photos/sameera-jayasoma/collections > Mobile: 0094776364456 > > Lean . Enterprise . Middleware > > -- Nipuni Perera Software Engineer; WSO2 Inc.; http://wso2.com Email: nip...@wso2.com Git hub profile: https://github.com/nipuni Mobile: +94 (71) 5626680 <http://wso2.com>
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev