6 Replies Latest reply on Mar 18, 2004 7:13 AM by Noel Rocher

    Installshield

    Noel Rocher Apprentice

      Sherman,

      Are you still working on it ?

        • 1. Re: Installshield
          Sherman Wood Apprentice


          Sorry, I have not been looking at it. Too much time helping my team ride the learning curve, Postgres, security, module packaging and JSPs.

          hxp has been pushing for using CMP auto table creation, which makes sense, but is not something I am familiar with. If we do go down that route, the installshield should contain the module ears, xmls etc, and then deploy the selected ones to server/default.

          One of the things I got lost in is how to get the modules to give the installshield build their components, so that we could get things into the installer war. Fancy, but beyond my available time.

          As you can see from the forums, there are a lot of issues with installing Nukes. A more "well-rounded" installshield would great, but a straight, by the numbers script is good too. Have you got time? If so, what do you want to do?


          Sherman

          • 2. Re: Installshield
            Sherman Wood Apprentice


            I'm assuming, Noel, that you don't have time. I'll have a cut of the installshield that deploys the selected module components to the JBoss instance by end of day tomorrow.


            Sherman

            • 3. Re: Installshield
              Sherman Wood Apprentice

              I have just committed a good cut of the updated installshield.

              In the distrib module build script, there is a "groups" property and a moduleconfig that defines what modules you want to deploy.

              Running the distrib build "installer" target runs the "deploy-to-installer" target in the selected module builds, and builds the installshield WAR. Running the distrib build "deploy-installer" target deploy the WAR to your local JBoss instance.

              Once deployed, the install happens as before:

              http://<deployment machine>/nukes-installer/install

              Accept the license.
              Set up the data source.
              Select which modules you want + whether you want to drop tables first.
              Optional: Do Advanced setup for each module.

              At this point, the database is created/updated (if selected) and then the components (EARs, SARs, MBean xml) of the selected modules are deployed to the JBoss instance (nukes directory). If the core Nukes module needs to be deployed, it will be deployed last.


              Status/Issues:

              Some of the modules are not installing for some strange reason - FAQ, journal, Quotes and Sections. Their DB creation scripts are not being run. I'll look into that.

              If you hot deploy the installer and try to rerun it, the list of datasources does not come up properly. Stop and restart JBoss.

              There is no security on the installer. It should really be removed after you have done the install.

              For MySQL and Postgres, the relevant database drivers need to be installed in server/default/lib before you run the installer.

              I have not tested out this process for Hypersonic and MySQL. I have not really changed the existing scripts, so I expect no problems.

              It may be easier for you to create the empty database you are going to install Nukes into before you run the install. I had some problems with Postgres.

              Any feedback gladly accepted!



              For module developers


              Getting a module included in the installer is easy.

              Have your DB set up XMLs have a correct module name tag. ie.



              If your module does not have specific DB tables etc, then a single simple XML file is required, indicating the module name only. ie.

              <!-- Permissions Module -->
              <module name="permission" description="Permissions Module">
               <!-- A blank just to get the module -->
               <database name="none" description="nothing"/>
              </module>
              


              Add a deploy-to-installer target in you module build, ie. for nukes, we have:

              <!--
               | Deploy the application to the installer
               -->
               <target name="deploy-to-installer"
               description="Copy deployment to installer"
               depends="output">
               <mkdir dir="/resources/deploy/nukes/services"/>
               <copy todir="/resources/deploy/nukes/services">
               <fileset dir="/services" includes="*-service.xml"/>
               </copy>
               <mkdir dir="/resources/deploy/nukes/module"/>
               <copy file="/nukes.ear" todir="/resources/deploy/nukes/module"/>
               <mkdir dir="/resources/deploy/nukes/database"/>
               <copy todir="/resources/deploy/nukes/database">
               <fileset dir="">
               <include name="hsqldb/setup.xml"/>
               <include name="mysql/setup.xml"/>
               <include name="postgresql/setup.xml"/>
               </fileset>
               </copy>
               </target>
              


              The modules and services directories in /resources/deploy/<your module> are transferred into the WAR. Currently the difference between what goes in module vs service is only relevant for the core nukes module - all files will be transferred as is to the nukes deployment directory.


              For a non-DB module like permissions, we have :

              <!--
               | Deploy the application to the installer
               -->
               <target name="deploy-to-installer"
               description="Copy deployment to installer"
               depends="output">
               <mkdir dir="/resources/deploy/permission/module"/>
               <copy file="/nukes-permission.sar" todir="/resources/deploy/permission/module"/>
               <copy file="/setup/setup.xml" todir="/resources/deploy/permission/database/hsqldb"/>
               <copy file="/setup/setup.xml" todir="/resources/deploy/permission/database/mysql"/>
               <copy file="/setup/setup.xml" todir="/resources/deploy/permission/database/postgresql"/>
               </target>
              


              Note where the simple setup.xml goes.


              Finally, add your module into the moduleconfig in the distrib module build script.

              That's it!



              Sherman


              • 4. Re: Installshield
                Sherman Wood Apprentice

                 

                Some of the modules are not installing for some strange reason - FAQ, journal, Quotes and Sections. Their DB creation scripts are not being run. I'll look into that.


                I have posted a fix for this. It needs some through testing by other folks, but I am pretty happy with the result.


                Sherman


                • 5. Re: Installshield
                  Noel Rocher Apprentice

                  OK Sherman I will test it tonight.


                  I will look why the DS list is not good.

                  We should add an installer undeploy mechanism.
                  We should also think in the download of modules from the internet.

                  Great work.

                  • 6. Re: Installshield
                    Noel Rocher Apprentice

                    Hi all,

                    All seems to work well. Even the DS list is working for me.