[ 
https://issues.apache.org/jira/browse/AXIS2-4101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12978186#action_12978186
 ] 

Isuru Eranga Suriarachchi commented on AXIS2-4101:
--------------------------------------------------

Hi Jarek,

I agree that RepositoryListener.findServicesInDirectory() should not try to 
deploy non Axis2 service artifacts. That is because, the key for each deployer 
is derived by using folder name and the file extension. So when we find service 
in the repository/services folder, if we find a file with some other extension 
(say .bar), we don't know whether there are more than one deployers registered 
in the DeploymentEngine for that extension with different folder names. In that 
case, according to following code in 
RepositoryListener.findServicesInDirectory(), last deployer registered for that 
particular extension is selected. That is completely wrong. 

                    } else {
                        String ext = 
DeploymentFileData.getFileExtension(file.getName());
                        Deployer deployer = 
deploymentEngine.getDeployerForExtension(ext);
                        // If we found a deployer for this type of file, use 
it.  Otherwise
                        // ignore the file.
                        if (deployer != null) {
                            
deployer.setDirectory(deploymentEngine.getServicesDir().getName());
                            addFileToDeploy(file, deployer, 
WSInfo.TYPE_SERVICE);
                        }
                     }


So we should not try to deploy non Axis2 services within the repository/service 
folder.

Thanks,
~Isuru



> Conflict with multiple deployers for the same extension 
> --------------------------------------------------------
>
>                 Key: AXIS2-4101
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4101
>             Project: Axis2
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: nightly
>            Reporter: Jarek Gawor
>            Assignee: Isuru Eranga Suriarachchi
>            Priority: Critical
>
> The axis2.xml contains the following entries for two deployers for the same 
> extension:
>     <deployer extension=".jar" directory="servicejars"
>               class="org.apache.axis2.jaxws.framework.JAXWSDeployer"/>
>     <deployer extension=".jar" directory="transports"
>               class="org.apache.axis2.deployment.TransportDeployer"/>
> Once would think that any jar files found in the "servicejars" directory 
> would be handled by the JAXWSDeployer and jar files found in the "transports" 
> directory would be handled by the TransportDeployer. However, this is not 
> implemented that way. In fact, the code assumes that there is only one 
> Deployer for a given extension. So effectively the JAXWSDeployer will never 
> be called/used. See AxisConfigBuilder.processDeployers() or 
> DeploymentEngine.getDeployerForExtension(). 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to