13 Replies Latest reply on Jan 18, 2005 12:41 AM by Andrew Oliver

    M2 preview 3 is now available.  Please help test/give feedba

    Andrew Oliver Master

      http://linuxintegrators.com/acoliver/code/2005/01/06/0207.html

      I got some pretty good feedback from the first pre-release of JBoss Mail server Milestone 2 that I wanted to put out a second preview release to capture more feedback.

      As some of you know, I run what is basically the HEAD of JBoss Mail server's CVS module as my personal mail server. There was a time where I claimed it was unstable. As it turned out I had a combination of hardware failures and MySQL issues. I've nearly resolved them all (my server still boots to the faulty disk) and since then JBoss Mail has been extremely stable. Previously I ran Apache's JAMES; however, I had to restart JAMES frequently (in a cron job) to keep it stable.

      One of the new pieces of JBoss Mail server is the use of the graphical installation extensions. This second preview takes this a step further, by attempting to make the installation more seamless from the start to finish. You merely unzip the distribution and then run "chmod 755 install.sh;./install.sh". The installation screens are intended to be self-explanatory (and I'd like feedback where they aren't), but are still a bit crude due to some minor problems with the Cheese layouts. After answering all of the questions, the installation outputs a reasonably configured JBoss Mail Server. The pre-requisites for this pre-release are: JDK 1.4.x (1.4.2 recommended), JBoss 3.2.4 (3.2.6 or 4.0.0 are recommended).

      I'd like some further feedback along the same lines as the first preview release:

      1. You must have the JDK as well as JBoss 3.2.6+ or 4.0+ (3.2.4+ should work but each release should target the latest for now)
      2. download: the preview
      3. /images/emoticons/angry.gifoptional) set JBOSS_HOME to your jboss directory
      4. unarchive (unzip ... or winzip should work) and cd to the mail install pack
      5. chmod 755 install.sh;./install.sh (if on unix)
      6. cd $JBOSS_HOME;
      7. bin/run.sh (or bat)

      Please exclude from your feedback:

      1. Complaints on the cosmetics of the screens (I realize the layout is not yet ideal). If you manually resize the screen the controls at least fix themselves.

      Help requested:

      1. testing installation on Windows. I kind of just "winged it" on the Windows install. I didn't have access to a win32 when I wrote the install
      2. testing security, especially POP TLS which Thunderbird doesn't seem to support (then tell me what client you used!)
      3. Assistence with making cheese's layouts/sizing work better. (from JBoss/Sourceforge CVS, checkout cheese module)
      4. Other database setups
      5. Datasource setup wizard

      The preview fixes some bugs in preview 1. It supersedes the unannounced preview 2. Namely this preview allows you to specify DNS servers, is binary based as opposed to source based, fixes problems with TLS, and includes a number of build enhancements/fixes.

      Lastly, I'd like to thank our new contributors -- in particular, Kit who has been fixing the layouts for Cheese (they aren't perfect yet, but if you saw them before -- drastic improvement) as well as Heiko Rupp whom helped point out bugs in the last pre-release. Thanks guys!

        • 1. Re: M2 preview 3 is now available.  Please help test/give fe
          Heiko Rupp Master

          Hi Andy,
          first: I personally don't think it is a good idea to include ant in the JBMail distribution.
          Second: what is the exact name of the game JBMail? JBossMail? Mail-Services?

          This time I was trying to include SSL. After the GUI asked to generate the key, the installer fails with

          ue.taskname at cheese genkey
           [genkey] Generating Key for jboss-mail
           [genkey] Erzeuge 1.024-Bit rsa Schl³sselpaar und selbstsigniertes Zertifikat
           (MD5WithRSA)
           [genkey] f³r: CN=home.pilhuhn.de, OU=Pilhuhn fun systems, O=Pilhuhn.de, L
          =Stuttgart, ST=Germany, C=DE
           [genkey] [${jboss.server.home.dir}/conf/mailkey.store wird gespeichert.]
           [genkey] Keytool-Fehler: java.io.FileNotFoundException: ${jboss.server.home.dir}\conf\mailkey.store (Das System kann den angegebenen Pfad nicht finden)
          
          
          BUILD FAILED
          D:\tmp\jboss-mail\build.xml:134: exec returned: 1


          It looks like the variable replacement of ${foo} doesn't work.

          Without using TLS, the install runs well.

          I still have to investigate the MX stuff ...

          Also: checking out jboss-mail module includes ant another time.
          I definitively hate this. (<--- personal taste)



          Perhaps the font color of the output on the gui could be a darker grey, as the actual color is a bit hard to read.

          Keep up the good work

          Heiko (pilhuhn)

          • 2. Re: M2 preview 3 is now available.  Please help test/give fe
            Andrew Oliver Master

            Actually the instructions on the screen say "if you are going to generate it you must put the absolute path here" guess its not clear.

            I know that to a java developer including ant is distasteful, however developers aren't the only audience for the GUI... Telling an admin "you must download ant" would be a bit yucky. WWBGD? (What would bill gates do?)

            The MX stuff? I added DNS stuff...

            Yes, we're still working on the screens. The layout is still rough, but thank Kit that they are sane! the text should be "enabled" color instead of "disabled".

            Thanks for all of your help!

            -Andy

            • 3. Re: M2 preview 3 is now available.  Please help test/give fe
              Heiko Rupp Master

              Andy,
              wrt ant: in a later stage, the installer might check if ant 1.6.1 can be found. If yes, use it. If not ask the user if it is somewhere. If still not, then let him download it and fire it up.
              Util then, perhaps only add the ant "binary" and not docu etc. (if licence permits).

              I still have to dig into the DNS stuff, why I am having problems here. THis might be a funny "feature" of Win2k or whatever. I will let you know what I find out.

              Heiko

              • 4. Re: M2 preview 3 is now available.  Please help test/give fe
                Heiko Rupp Master

                wrt keystore and absolute path: I got so much used to the variable replacement, that I just did not read the instruction on screen, but just though "ok, I would probably not put the keystore under conf/ myself, but lets use the given value for now". My fault.

                Heiko

                • 5. Re: M2 preview 3 is now available.  Please help test/give fe
                  Andrew Oliver Master

                  Its not possible for the installer to download ant since the installer IS ant. I'll see if I can trim it down a bit.

                  Meaning you entered some DNS servers when asked and its still not working? Are you sure said DNS servers allow you to query them?

                  The trouble is that JBoss does the variable replacement. I suppose I could do a reasonable approximation (provided you hadn't remapped JBoss's directory structure). I'll do that for RC1.

                  • 6. Re: M2 preview 3 is now available.  Please help test/give fe
                    Heiko Rupp Master

                    The search-and-download ant part would need to run in install.bat/install.sh (which probably complicates things).
                    Or offer a distribution with ant for newbies and a distribution without for pepople that already have ant.

                    I should be allowed to at least query two of the dns servers. I am still investigating.

                    Perphaps for the variable renaming: if you don't offer the ${foo} syntax in the installer, but just provide a path build from JBOSS_HOME/server/<wanted-config>/conf/keystore and let the user choose for himself. The gui could warn if the selected dir does not exist. I think, that for users that have no clue, the assumption would be true and those that remap the sturcture, would be able to select the right directory.

                    Heiko

                    • 7. Re: M2 preview 3 is now available.  Please help test/give fe
                      Heiko Rupp Master

                      I just commited a listDNSServers operation for the SMTPSend MBean to list the configured DNS servers as string. Now I can verify that the servers are set. If/when they are set, I am able to do a MX lookup and send mail to remotes. It really seems to be some issue with one of the dns servers, but I am sure, I configured the good one in the installer (and yes, it is in jboss-service.xml).

                      So after all: sending mail to remotes works. Thanks Andy.

                      • 8. Re: M2 preview 3 is now available.  Please help test/give fe
                        Andrew Oliver Master

                        I think this is mostly for Heiko -- Has anyone tested the M2-pre3 windows install.bat? I don't know if it works because I don't have windows. Let me know.

                        If it does then I think I'll promote M2-pre3 to M2-final.

                        -Andy

                        • 9. Re: M2 preview 3 is now available.  Please help test/give fe
                          Heiko Rupp Master

                          Andy,
                          the installer on windows itself is working...

                          ... but the configured dns server is not set at system startup.

                          When the system starts up and I do a mx-lookup, it fails.
                          When I then add the configured dns server through jmx-console and
                          do the mx-lookup again, it shows a result.

                          Also with my listDNSServers() method, this produces an empty list of servers after startup of the service.

                          The setDNSServer() operation is not working correctly for several reasons (I might be wrong):

                          - Passed in gets the server-element which is within the attribute tag. So getElementsByTagName() won't find anythign, as the server element has no elements as children, but only a text node.
                          - It seems to me that only one server-element will be ever passed in, even if more than one server is given in the config.

                          A solution could be to surround the server-Elements by a servers-Element, that contains 1..n server-Elements

                          <attribute name="DNSServers">
                           <servers>
                           <server>1.2.3.4</server>
                           <server>2.3.4.5</server>
                           </servers>
                          </attribtue>
                          


                          The following patch supports this and works for me:

                          Index: SMTPSender.java
                          ===================================================================
                          RCS file: /cvsroot/jboss/jboss-mail/src/java/org/jboss/mail/smtp/sender/SMTPSender.java,v
                          retrieving revision 1.18
                          diff -u -r1.18 SMTPSender.java
                          --- SMTPSender.java 8 Jan 2005 20:32:27 -0000 1.18
                          +++ SMTPSender.java 15 Jan 2005 12:43:13 -0000
                          @@ -75,7 +75,7 @@
                           };
                          
                           public SMTPSender() {
                          - resolvers = new HashMap();
                          + resolvers = new HashMap();
                           }
                          
                           protected void startService() throws Exception {
                          @@ -93,6 +93,8 @@
                          
                           public void addDNSServer(String dns) throws UnknownHostException {
                           SimpleResolver sr = new SimpleResolver(dns);
                          + if (resolver==null)
                          + resolver = new ExtendedResolver(); // setting attributes need this and they get set very early in the lifecycle
                           resolver.addResolver(sr);
                           resolvers.put(dns, sr);
                           }
                          @@ -506,20 +508,13 @@
                           * @see org.jboss.mail.smtp.sender.SMTPSenderMBean#setDNSServers(org.w3c.dom.Element)
                           */
                           public void setDNSServers(Element servers) throws Exception {
                          - NodeList list = servers.getElementsByTagName("server");
                          - for (int k = 0; k < list.getLength(); k++) {
                          - String server = getNodeText((Node)list.item(k)).trim();
                          - resolvers.put(server,server);
                          - }
                          -
                          - if (resolvers.values().size() > 0) {
                          - Resolver[] r =
                          - (Resolver[]) resolvers.values().toArray(
                          - new Resolver[resolvers.values().size()]);
                          - this.resolver = new ExtendedResolver(r);
                          - } else {
                          - this.resolver = new ExtendedResolver();
                          - }
                          +
                          + NodeList list = servers.getElementsByTagName("server");
                          + for (int k = 0; k < list.getLength(); k++) {
                          + String server = getNodeText((Node)list.item(k)).trim();
                          + System.out.println("--> Server found is " + server);
                          + addDNSServer(server);
                          + }
                           }
                          
                           //todo move to util class
                          


                          If wanted I can commit it to HEAD.
                          Unfortunately I have no clue on what to do wrt the installer to support this.

                          Heiko


                          • 10. Re: M2 preview 3 is now available.  Please help test/give fe
                            Heiko Rupp Master

                            I found the place in the template jboss-service.xml, so I commited the change there and in SMTPSender.java. Both on HEAD.

                            • 11. Re: M2 preview 3 is now available.  Please help test/give fe
                              Andrew Oliver Master

                              can you fix the M2 branch as well?

                              thanks,

                              aNdy

                              • 12. Re: M2 preview 3 is now available.  Please help test/give fe
                                Heiko Rupp Master

                                Done. mmm another copy of ant on my system...

                                • 13. Re: M2 preview 3 is now available.  Please help test/give fe
                                  Andrew Oliver Master

                                  Thanks. Hey Heiko, do you like how we checked ant in to the CVS repository. I'm not sure how you feel about this. ;-)

                                  Actually I guess it is mean for the bandwidth impared (which can be me sometimes in hotels). We can enhance the build to say "YOU MUST STICK ANT IN THE ANT DIRECTORY BEFORE BUILDING DIST TARGET DUMMY -- ANDY: THIS MEANS YOU!" when someone does "ant dist" with out ant in the dist directory...

                                  The bin-release should still include it (because sysadmins don't know java).