Details

    • Release Notes Text:
      JBoss Developer Studio now supports the deployment of standalone SAR projects. To undertake this a new wizard has been created to take a user through the process. For further information see the relevant documentation accompanying this release.
    • Release Notes Docs Status:
      Documented as Resolved Issue

      Description

      While working on JBIDE-9127, it appeared to me you can not deploy standalone SAR projects (a jar with a .sar extension, capable of embedding other jars) in JBT.
      This is because the JBoss AS server adapters need a new Module type to be able to perform the actual deployment.
      But in order to add such module, we need some sort of marker to identify SAR projects, most probably a new Facet.

      Sooooo, ideally we'd need to :

      • create a new SAR Facet. Installing the SAR Facet would create, if needed, an empty jboss-service.xml file in <some configurable source folder>/META-INF/
      • add the ability to include/exclude files from being deployed (using filesets)
      • Add a new Server Module / Factory, capable of dealing with SAR projects. SAR could be deployed either as compressed archive or in an exploded form
      • Add a new Wizard, to be able to create SAR archives

      From my understanding, this is pretty similar to what's been done for ESB projects.

      Question : where would such plugins/features be kept? ESB has its own module. Adding a new SAR module or putting it under AS wouldn't feel right IMHO.
      I would suggest to rename the ESB module as JBossPackaging (similar to http://mojo.codehaus.org/jboss-packaging-maven-plugin) and put the SAR stuff next to the ESB stuff.

        Gliffy Diagrams

          Issue Links

            Activity

            Hide
            rob.stryker Rob Stryker added a comment -

            as.wtp already has the base classes required for most of this stuff. Then each component simply needs to extend those classes for their own use.

            Remember, ESB has a lot of other shit in it, like their own custom runtimes nad classpath containers, that need to be added during creation of the project, so trying to smush this all together 100% doesn't really work.

            Since the base clsases live in as.wtp.core/ui, the extensions nad overrides should live where they belong. We already have an as.mbeans plugin which is for making mbeans, and, it would make sense that mbeans live in a sar project, so I think this should live in the as.mbeans plugin.

            Show
            rob.stryker Rob Stryker added a comment - as.wtp already has the base classes required for most of this stuff. Then each component simply needs to extend those classes for their own use. Remember, ESB has a lot of other shit in it, like their own custom runtimes nad classpath containers, that need to be added during creation of the project, so trying to smush this all together 100% doesn't really work. Since the base clsases live in as.wtp.core/ui, the extensions nad overrides should live where they belong. We already have an as.mbeans plugin which is for making mbeans, and, it would make sense that mbeans live in a sar project, so I think this should live in the as.mbeans plugin.
            Hide
            rob.stryker Rob Stryker added a comment -

            I've committed a large amount of this. It still needs small cleanup like an icon and a category but in general it seems to work, and it also seems to work inside an EAR project. Feel free to test some, Fred

            Show
            rob.stryker Rob Stryker added a comment - I've committed a large amount of this. It still needs small cleanup like an icon and a category but in general it seems to work, and it also seems to work inside an EAR project. Feel free to test some, Fred
            Hide
            fbricon Fred Bricon added a comment -

            Rob,

            my initial feedback : You need to export the org.jboss.ide.eclipse.as.ui.mbeans.project, so I can call the facet provider.
            Also, If I click on "Run As" on a SAR project, I can't deploy on a server.
            And yeah, the Mozilla Icon looks like $h!7

            Show
            fbricon Fred Bricon added a comment - Rob, my initial feedback : You need to export the org.jboss.ide.eclipse.as.ui.mbeans.project, so I can call the facet provider. Also, If I click on "Run As" on a SAR project, I can't deploy on a server. And yeah, the Mozilla Icon looks like $h!7
            Hide
            fbricon Fred Bricon added a comment - - edited

            Rob, there seems to be just one big issue : the server adapter deploys .java files instead of classes.

            My .component looks like :

            <?xml version="1.0" encoding="UTF-8"?>
            <project-modules id="moduleCoreId" project-version="1.5.0">
                <wb-module deploy-name="sarproject">
                    <wb-resource deploy-path="/" source-path="/src/main/resources"/>
                    <wb-resource deploy-path="/" source-path="/src/main/java"/>
                    <dependent-module archiveName="commons-lang-2.5.jar" deploy-path="/lib" handle="module:/classpath/var/M2_REPO/commons-lang/commons-lang/2.5/commons-lang-2.5.jar">
                        <dependency-type>uses</dependency-type>
                    </dependent-module>
                    <property name="java-output-path" value="target/classes"/>
                </wb-module>
            </project-modules>
            

            This is really weird, cause it looks like standard utility projects' .component

            Show
            fbricon Fred Bricon added a comment - - edited Rob, there seems to be just one big issue : the server adapter deploys .java files instead of classes. My .component looks like : <?xml version="1.0" encoding="UTF-8"?> <project-modules id="moduleCoreId" project-version="1.5.0"> <wb-module deploy-name="sarproject"> <wb-resource deploy-path="/" source-path="/src/main/resources"/> <wb-resource deploy-path="/" source-path="/src/main/java"/> <dependent-module archiveName="commons-lang-2.5.jar" deploy-path="/lib" handle="module:/classpath/var/M2_REPO/commons-lang/commons-lang/2.5/commons-lang-2.5.jar"> <dependency-type>uses</dependency-type> </dependent-module> <property name="java-output-path" value="target/classes"/> </wb-module> </project-modules> This is really weird, cause it looks like standard utility projects' .component
            Hide
            fbricon Fred Bricon added a comment -

            I can now deploy SARs both standalone and within EARs, great stuff Rob And I also like the new SAR icon (but I thought JBoss dropped the whole colored balls thing)

            I fixed (and committed) the case when the META-INF parent folder doesn't exist (Facet installation would fail), since it broke my integration tests.

            Reassigning to you because I think we need to be able to deploy SAR projects from the project menu (Run as > Run on server).

            Show
            fbricon Fred Bricon added a comment - I can now deploy SARs both standalone and within EARs, great stuff Rob And I also like the new SAR icon (but I thought JBoss dropped the whole colored balls thing) I fixed (and committed) the case when the META-INF parent folder doesn't exist (Facet installation would fail), since it broke my integration tests. Reassigning to you because I think we need to be able to deploy SAR projects from the project menu (Run as > Run on server).
            Hide
            rob.stryker Rob Stryker added a comment -

            Fred:

            Run on Server typically has some action associated with it. Servlets, jsps, html files, etc, all open the web browser to the associated url.

            What action should SARs make upon deployment? If the answer is none, then I can fill in a stub implementation.

            Show
            rob.stryker Rob Stryker added a comment - Fred: Run on Server typically has some action associated with it. Servlets, jsps, html files, etc, all open the web browser to the associated url. What action should SARs make upon deployment? If the answer is none, then I can fill in a stub implementation.
            Hide
            fbricon Fred Bricon added a comment -

            Nothing else needs to be done, exactly the same as EAR projects.
            Run on server = publish if needed + start server if needed.

            Show
            fbricon Fred Bricon added a comment - Nothing else needs to be done, exactly the same as EAR projects. Run on server = publish if needed + start server if needed.
            Hide
            rob.stryker Rob Stryker added a comment -

            fixed it!

            Show
            rob.stryker Rob Stryker added a comment - fixed it!
            Hide
            lzoubek Libor Zoubek added a comment -

            verified on JBT 2011-09-07_05-39-13-H18

            Show
            lzoubek Libor Zoubek added a comment - verified on JBT 2011-09-07_05-39-13-H18
            Hide
            irooskov Isaac Rooskov added a comment -

            Reopening so I can set the release note status

            Show
            irooskov Isaac Rooskov added a comment - Reopening so I can set the release note status
            Hide
            irooskov Isaac Rooskov added a comment -

            re-closing the issue now

            Show
            irooskov Isaac Rooskov added a comment - re-closing the issue now
            Hide
            irooskov Isaac Rooskov added a comment -

            Darn, sorry Rob, I forgot to set the Writer to being me, which I need for filtering what I've already looked at and done.

            Re-opening to do this :S

            Show
            irooskov Isaac Rooskov added a comment - Darn, sorry Rob, I forgot to set the Writer to being me, which I need for filtering what I've already looked at and done. Re-opening to do this :S
            Hide
            irooskov Isaac Rooskov added a comment -

            Updating 'Writer' and then closing again

            Show
            irooskov Isaac Rooskov added a comment - Updating 'Writer' and then closing again

              People

              • Assignee:
                rob.stryker Rob Stryker
                Reporter:
                fbricon Fred Bricon
                Writer:
                Isaac Rooskov
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Development