[jbosstools-issues] [JBoss JIRA] (JBIDE-13405) Deploying a RAR with JAR inside fails using remote systems via SSH

Rob Stryker (JIRA) jira-events at lists.jboss.org
Fri Nov 15 14:33:05 EST 2013


    [ https://issues.jboss.org/browse/JBIDE-13405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12924160#comment-12924160 ] 

Rob Stryker commented on JBIDE-13405:
-------------------------------------

I found the error.

There's a single-use protected method in the publishers that returns an incorrect value for the case of child modules. The method is getParentDeployPath(IModule[] moduleTree, IDeployableServer server);

The error here is that this method should be returning the module's deploy root's PARENT, for example, given a web (MyWeb.war) with a nested utility project (MyUtil.jar)  with relative path "WEB-INF/lib",  This method should be returning {rootDeployDir}/MyWeb.war/WEB-INF/lib,  but is actually returning {rootDeployDir}/MyWeb.war/WEB-INF/lib/MyUtil.jar

This method is only called during child projects that are to be published zipped (like utility jars, java projects, etc).  

The effect this has is that the file-transfer util is instantiated with a root directory, and each file in that module is transferred relative to the root its instantiated with.  This transfer util is being instantiated with {rootDeployDir}/MyWeb.war/WEB-INF/lib/MyUtil.jar.   The utility is then being asked to move the zipped jar file to relative path "".  

This is obviously wrong. It should be instantiated with {rootDeployDir}/MyWeb.war/WEB-INF/lib/   and the relative path for the zip should be "MyUtil.jar".

The local copy utility is able to handle this error. The RSE handler is not capable of handling this. 

The fix is to either fix the method to return the correct value, or ensure that RSE can also work around it. Obviously, the first solution is correct. 

PR:  https://github.com/jbosstools/jbosstools-server/pull/174
                
> Deploying a RAR with JAR inside fails using remote systems via SSH
> ------------------------------------------------------------------
>
>                 Key: JBIDE-13405
>                 URL: https://issues.jboss.org/browse/JBIDE-13405
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 4.0.0.Final
>         Environment: JBoss AS 7.1.1 Final, Eclipse Juno SR1, JBoss Tools 4.0.0 Final
>            Reporter: Chris Roberts
>            Assignee: Rob Stryker
>             Fix For: 4.1.1.CR1
>
>         Attachments: maven-broken.tar.gz
>
>
> Exploding dependant jars seems to have issues for rars. I didn't work out if this is a problem in JBoss Tools or RSE. I suspect a little of both. It seems looking at the source that only the 'Local' RSE adapter correctly explodes deployments?
> 1) Create a maven project, set the packaging to rar
> 2) Create a second maven project, set the packaging to jar
> 3) Include the jar as a maven compile dependency of the rar
> 4) Import both into eclipse
> 5) Deploy to a remote (JBoss AS) server via RSE SSH/dstore/FTP fails
> It seems the JBoss Server Adapter (I think) creates the directory:
> xxxxx-1.0.rar/xxxxx-1.0.jar/
> on deployment. It then requests upload for the jar over the top of the directory which fails. With FTP this looks like:
> CD xxxxx-1.0.rar/
> MKD xxxxx-1.0.jar
> STOR xxxxx-1.0.jar <fails because directory exists>
> This is my first bug opened on JBoss/eclipse, so please point me on if you think this should be opened on RSE, but I think looking at the source it belongs here.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jbosstools-issues mailing list