Skip navigation
acoliver

Tapestry on JBoss

Posted by acoliver Oct 30, 2005

 

Back at Apache's Jakarta project some time ago, I was involved in a bit of a row over how to accept a project and its very motivated leader, Howard Lewis Ship. Howard is a cool guy with two last names. His project, Tapestry is a great alternative to JSPs and (more or less) JSP-based frameworks like struts. Recently, Tapestry has started moving from XML to annotations and has even posted about some ready to run examples distributed with JBoss 4.0.2. You can find the examples here and their instructions here.

 

Howard Lewis Ship

 

...I go a ways back with JBoss, so it was easy for me to build and package, and is a good use of my very scarce time.

 

Me to. Here are blogs and the like which have covered the event. If you know of one that I missed, please comment below.

 

Note that I'm not interested in your day 0, "Gee I'm at the airport waiting to catch a plane for JBoss World, gosh I sure do love potato chips.", posts.

 

JBoss Mail Server is so stable and the installation is so clean that after only one month of having dedicated company support for it and full time development (well 75% since all developers are expected to do 25% services), I'm already getting pressured to call it 1.0. It is a high compliment.

 

Moreover, a user emailed me saying his boss told him he was outsourcing their mail server unless they could get one up in running in 30 minutes. He installed JBoss Mail Server and wrote me to tell me about it.

 

I picked up the phone.

 

"Hello?"

 

"Andy. Marc."

 

"Hi Marc, how is it going?"

 

"Listen, this JBoss Mail Server thing...its really good...lot of people use it...but after a year of stable releases there is no business... we have to dump it... You shouldn't have made the Installer and admin tools so good."

 

"What do you mean?"

 

"Well no on needs support because it is too easy to use."

 

"Yeah, I see what you mean."

 

"Good luck in your next endeavor."

 

I woke up in a cold sweat.

 

So I thought about this seriously. Could an open source mail server be too easy to use such that it was a commercial failure? However, the more I thought about it, the more I realized how ridiculous it is. While we're already incredibly easy to use, running your mission critical software without some guarantee of support is not a smart thing to do. For most businesses an email outage costs money. Lost mails are a critical problem that affect the bottom line. Take "sales@jboss.com" as an example. They don't want to miss a potential support, consulting, training or partnership opportunity because of the latest Exchange security hole or the upgrade cycle to prevent the next 10 of them...

 

Yet despite this, we put up with outages in critical services every day and often times due to the unreliability of existing vendors (you know who I'm talking about -- remember the helicopter joke) and their support offerings, we go it alone and sometimes spend needless hours of downtime instead of getting the prompt answers we need from the experts and guys who develop the software we use.

 

I suspect if the software is good enough and the tools are good enough then there are some who will go it alone who might not have gone it alone with other software, but frankly those are the same people who drive around with no insurance or don't wear seat belts because they don't usually get into car accidents. Moreover, I don't expect to do consulting for simple installs, frankly consulting for simple installation and configuration is a cost sink not a profit center. I want to eliminate that opportunity where possible. Instead I want to open up a high end consulting service opportunity. Ultimate scalability, big organizations who need help figuring out how to structure their mail infrastructure to allow it to handle an enormous (and ever growing) messaging load. Mail based/Mail driven application developers wanting to do new and interesting things on a mail platform. Complex routing. Custom plugins. Partner integration.. Those are where I expect the project to make a profit, I hope to never have to do consulting for a simple 1-3 server configuration -- I'd rather handle that as a simple support offering (and those should be few and far between because the installer should be that good).

 

To me, in order to get to the high end, we need to make the low end a nearly brainless venture. We're not there yet, while installation and initial configuration is trivial (a mail server in 30 minutes or less supporting POP/SMTP over SSL/TLS), administration beyond initial configuration is still a jungle of XML. While I exaggerate when I say we're nearing the XML version of sendmail.cf, it is something I fear. We've made progress and have plans to solve this in the next milestone release after M4(which won't be called 1.0-final ;-) ). However, the final piece will be a bang-up GUI that dynamically configures a cluster of JBMS instances. What form the GUI will take hasn't been decided (if it can use the same stuff as is being built for the appserver or what). My take is that the counter-intuitive notion of making thing easier to use and less difficult will drive adoption and hence support (how many of you really drive with no seatbelt and no car insurance, if you're on the high end and an expert can save you weeks or months by helping out for a few hours/days/etc then are you really going to balk). We see some of the same logic happening in the Appserver world with EJB3 and the upcoming admin console, it is time we had a reliable mail server that takes 30 minutes or less for simple installation, is easy to administer, and yet flexable and scalable enough to handle anything from 1 user or a complex enterprise.

 

I'd really be interested in talking to GUI people interested in getting involved in open source. You're a hot commodity! Join us in the JBMS forum and/or email me. I may not reply immediately as I'm conducting my 25% services in Matsuyama Japan this week, but I value you and your contributions! In addition to JBoss, we have a great bunch of volunteers I think you'll enjoy working with. I'm lucky to work on the best damn project in all of JBoss. :-)

 

JBoss Mail Server 1.0 Milestone 3 is now officially released. Many thanks to all of those who helped test the Release Candidate. I'd also like to thank the members Triangle Java Users' Group for allowing me to give a talk on the issue and for all of their great feedback. It was encouraging to see the enthusiasm building around this project.

 

You can install the JDK 5.0 version of JBMS-1.0M3-final via Java Web Start. You can also download it directly and install by typing java -jar install-jbms-1.0m3-final.jar. We do recommend JDK 5.0 (aka 1.5) as the garbage collector is significantly improved especially on enterprise grade systems.

 

If you still want to run with JDK 1.42, you can JDK 1.4 version of JBMS-1.0M3-final via Java Web Start or download the JDK 1.4 build of JBMS-1.0M3-final directly.

 

While there are already production users of earlier milestones of JBMS, it is not a "final" release, it is suggested that early adopters be cautious and undergo rigorous testing before deploying this release. We eagerly invite participation in the JBMS Forum and request your feedback on the release and project direction and thank you in advance for your continued assistance and support.

 

With this release, some emphasis has been placed on increasing the usability and graphical installation of the software (now based on izPack). You will find many answers in this set of wiki pages as well as an installation tutorial with pictorial walkthrough, and instructions on setting up Mozilla's Thunderbird Mail Client to work with JBMS.

 

 

I like to call this the "Mike Barker release", Mike is one of our volunteer developers that really got things moving while I was globetrotting. It was Mike's excellent work on our mail body persistence mechanism and his help in getting the bugs fixed that really made this release possible. As I transition from the services side of JBoss to full time development of JBMS, I look forward to continuing to work with Mike. He is a leading member of what has become known internally at JBoss as the "JBMS cult". I also look forward to having you as a new inductee.

 

There were few changes between the release candidate and this final release. Routing limited by domain group was added as was a fix to bounce messages. And thank you for your support.

 

JBoss Mail Server 1.0-M3rc1 has been released. You can install the JDK 5.0 version of JBMS-1.0M3rc1 via Java Web Start. You can also download it directly and install by typing java -jar install-jbms-1.0m3-rc1.jar. We do recommend JDK 5.0 (aka 1.5) as the garbage collector is significantly improved especially on enterprise grade systems.

 

If you still want to run with JDK 1.42, you can download the JDK 1.4 build of JBMS-1.0M3rc1 directly.

 

This is a release candidate of the third (of approximately 10) milestones of JBMS. It is primarily a stability, performance and usability release, however some significant features have been added and the architecture has gone a significant evolution. We request that early adopters assist with testing this release candidate in order to ensure the final release of this milestone (which will be released on August 20th barring major issues) is as stable and useful as possible.

 

While there are already production users of earlier milestones of JBMS, it is not a "final" release, it is suggested that early adopters be cautious and undergo rigorous testing before deploying this release. We eagerly invite participation in the JBMS Forum and request your feedback on the release and project direction and thank you in advance for your continued assistance and support.

 

With this release, some emphasis has been placed on increasing the usability and graphical installation of the software (now based on izPack). You will find many answers in this set of wiki pages as well as an installation tutorial with pictorial walkthrough, and instructions on setting up Mozilla's Thunderbird Mail Client to work with JBMS.

 

We hope that you and your organization will enjoy installing/using this milestone release and happy hunting!

 

Read this. I've had many similar experience and I suspect the economics and government bailouts Marc alludes to have a lot to do with it.

 

Just the other day I was traveling with my wife and three kids (one of which is 12 and one is 16 mos so feel extra sorry for me) and of course my personal attendant, my wife's manicurist and three nannies. I could not believe when the stewardess was rude to my personal attendant. If I hadn't been busy getting a free manicure on a dare (my wife thinks I rag too much on metrosexuals), I would have gotten up and asked my personal attendant to give them a piece of my mind. Oh well. What is worse is the stewardess made me buckle my own seat belt! I said "B*tch, you think I fly first class because I want to buckle my own seat belt. If one of my 'hot nannies' doesn't come up here and do it for me, I'm not f*cking going to buckle it" then kicked her. Can you believe that she dared take revenge by not bringing my Chardonnay properly chilled?

 

So I can really sympathize with Marc and his two nannies on his vacation to Mallorca. Life can be tough when you have to fly "everyman airlines"..

acoliver

Linux Rulez

Posted by acoliver Aug 4, 2005

 

A little while back, I put up this wiki page in order to determine what is generally viewed as:

  • The best operating system for development
  • The best operating system for production
  • The best IDE

 

Thus far, a group of passionate Windoze lovers have managed to put it at the top for development, but it seems settled that Linux is "the man" when it comes to production. Eclipse seems to take the day as well. I personally vacillate between Eclipse and the greatest editor ever, vi.

 

I have to say, Linux with a 2.6 kernel (but not the bizzare Redhat backported 2.6 threadmodel to 2.4 hybrid that they sadistically put in RHES 3.0 which mostly just crashes Java on a good day) with Sun JDK 5.0 is a pretty impressive combination for performance.

 

I am somewhat shocked that Solaris didn't make a bigger showing. I've yet to see too many really large successful deployments that weren't Solaris. Save your comments for the wiki showdown (but respect the brevity).

Check this out:

I can watch the JBoss Mail Server Forum from my Firefox feeds. Its the same way you can read your favorite blog. I wish I could say it was increadibly straightforward, but the forums don't yet put that little HTML tag at the top that advertises this feature:

     <link rel="alternate" type="application/rss+xml" title="RSS 2.0"

                      href="http://www.jboss.org/modules/bb/rss?f=186"/>

However you can just create a new live bookmark by clicking the little orange icon at the lower right-corner of the browser. Then right click on the new Live Bookmark, click properties. Then replace the feed URL with: http://www.jboss.org/modules/bb/rss?f=186 for the JBoss Mail Server forum. Since this is the most important forum, do that right now.

If you want to watch other forums you can do the same thing by just capturing the forum's id (it is displayed at the end when you go the the main page of that forum).

The feeds are listed in the same order as they are in the forum, meaning things that are stuck to the top...stay at the top here too. Its a convienient way to watch ongoing topics. It would be nice if you could get comment feeds too, but that is not yet supported.

 

Personally, I usually think that the tech industry has gotten a little too "standards happy". Moreover, I think that good standards need "extension points" that ensure extended capabillity without sacrificing compatibility. J2EE has a good and bad history with this.

 

On one hand, each appserver has different strengths and weaknesses. On the other hand, sometimes these change how you write your code. For instance, clustering options. If you are aware that you'll have a mid-tier proxyless load balanced RMI implementation (ala JBoss -- confusingly provided via dynamic proxies) you might write your code a little more liberally on its remote call usage than if you know you'll have a mid-tier proxy balanced RMI over IIOP implementation. If you know your appserver has an RMI/HTTP implementation then you might not swallow all of web services just to do site-site communication within your organization accross firewalls.

 

Still, standards should assure the code will still run (at least badly) between servers provided you've been careful ("import com.bea.*" would be a good clue). And where that falls apart they should assure that the "able" in "portable" (meaning able to be ported which isn't a synonym for "plug n' play") isn't a huge effort. I think despite all of the whining, J2EE deserves a lot of credit here. Personally, I've been a long time critic of the Java Community Process (my own opinion only) mainly because I think good APIs are designed via code not by committee discussions, but getting the major players to come to the table deserves some commendation (whoa did I say something nice about the JCP). Open source is really starting to thrive and drive this. Let's face it. The programming model and even some of the technical decisions behind EJB 1.x-2.x sucked. EJB 3 is really a whole different beast. Built on the core provided by J2EE but really kind of a "how real Java developers think" approach.

 

Lastly, standards should assure integration at the protocol layer. The W3C and really open source has done a lot in this area. Examples from Apache to Sam Ruby's spawning the Atom effort (originally called Pie and then NPie IIRC) among many other examples. However, I think this is an area we have a lot further to go. Web Services has created a huge number of specs and I'm getting a bit of de ja vu from the CORBA days (though I mostly observed). Now we are approaching a potential integration brick wall as companies create road blocks in the form of software patents. Moreover, not all web services implementations actually work together properly the way they are supposed to. Standards are a good faith effort and sometimes the faith isn't that good and other times... well... we kinda screw it all up, as is probably the case with Apple's iTunes syndication and Disney's Gears behind the Ears (there you go Sam).

 

Driving this process has been new techniques of communication. When I first installed this blog and invited the other JBoss guys to post on it, it was treated with some trepidation as was the JBossWiki. However, I think you can see they've been fully embraced here, especially by management. I'm not going to hype cluetrain because it was written like some kind of weird manifesto anyhow, but new standards like syndication are changing the way we communicate. It even appears to be working...mostly! More importantly the way we communicate is changing the way standards and technology in general are created. I think this is why things tend to fall short of our expectations. Conway's Law is nearly inescapable and we need to create better communication and structures of communication to counter balance this or we are just stuck.

 

That's actually one of my major goals for JBoss Mail Server. I want to do more than build just a mail server but to really change the way we communicate. I want to do more than kill spam for good, but find ways to make effective communication easier. Of course, we have to walk before we run, but I think we'll get there. Its really about trying to think different and drive the standard forward. For instance, why are IM and mail different at the lower levels? Why can't we syndicate our HAM to kill our spam? Why do 12 copies of the same attachment get sent rather than one get syndicated and why do I have to deal with that oppressive document management system just to make that happen? Why can't my email just arrange itself topically and appropriate materials syndicate automatically? Drag the standards forward kicking and screaming if we must, while making sure we stay compatible and continue to communicate.

 

That being said, what do I do about how bad JavaMail sucks, especially performance-wise (maybe a big synchronized singleton hashmap for all the mime types wasn't such a great idea)?

acoliver

Hey Google!

Posted by acoliver May 4, 2005
Hey Google, the JBoss Wiki has been moved to http://wiki.jboss.org. I submitted it but I figured this might help get your attention. I just wanted you to know that the JBoss Wiki has moved and would like you to pick it up at that address so that people can search on site:wiki.jboss.org instead of picking up the whole site. Thanks for listening, google. You know I love you. In fact, I'd be afraid not to. It'd be the internet equivilent of being promoted to be the head commandant of the Siberian outpost or as the Brits say "sent to Coventry". Not that I don't genuinely love you, I just wanted to point out that my love is doubleplusgood. (j/k)

For people who use the "shorthand" form of xmbean descriptors and embed it directly in their -service.xml descriptor here is a quick hint. This is something that regularly trips me up at least.

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE server

    PUBLIC "-//JBoss//DTD MBean Service 3.2//EN"

    "http://www.jboss.org/j2ee/dtd/jboss-service_3_2.dtd">

 

<server>

    <mbean code="org.jboss.mail.MailListenerChainService"

           name="mail.test:service=mlchain">

           <xmbean>

   <class>org.jboss.mail.MailListenerChainService</class>     

      <constructor>

       <description>The no-arg constructor</description>

       <name>org.jboss.mail.MailListenerChainService</name>

      </constructor>

               

   <attribute access="read-write" 

                                         setMethod="setListeners" 

                                         getMethod="getListeners">

     <name>Listeners</name>

 <type>org.w3c.dom.Element</type>

   </attribute>        

           

           <attribute access="read-only" getMethod="getNumberListeners">

            <name>NumberListeners</name>

            <type>org.w3c.dom.Element</type>

           </attribute>

           

           <operation>

            <name>processMail</name>

            <parameter>

            <name>mail</name>

            <type>org.jboss.mail.message.Mail</type>

            </parameter>

            <return-type>org.jboss.mail.message.Mail</return-type>

           </operation>

           

               &defaultOperations;

           </xmbean>          

    </mbean>

</server>

The problem is that for the JBoss deployer to detect that "yes, it is an xmbean" and not a "regular mbean" it requires the xmbean-dd attribute on the "mbean" element even though you've embedded the xmbean element. If you forget it (like I did above) you get a very unsatisfying "org.jboss.deployment.DeploymentException: Class does not expose a management interface: java.lang.Object;".

meaning:

...

<server>

    <mbean code="org.jboss.mail.MailListenerChainService"

           name="mail.test:service=mlchain" xmbean-dd="">

...

 

For many moons I've been running what is basically JBoss Mail Server 1.0-M2 as my personal mail server as well as the mail server of choice for a few friends and collegues. Not only has it run quite nicely, but its held up to the load and been quite stable as well. Now you may think "so what", but my server is a cheesy little Athlon PC box and chances are my friends and I get more mail in a day than most people get in a week between mail lists, spam and more. I get a few thousand a day. Many of which include large attachments.

 

While this is by no means up to our ultimate goal, its pretty darn good for a milestone release. My prevous mail server was Apache JAMES which tended to choke when I got a lot of email and had some kind of weird leak where I had to restart it all of the time. Moreover, its nice to get the occassional fan mail with my usual collection of medical anatomical enhancement ads. A colleague wrote me and told me how easy it was to install and how well it worked for him immediately.

 

We're a bit behind on the M3 release but committers have been hard at it. I'm working on getting the unit tests to work in JBoss 4.0.x (there was a feature regression that prevents JBoss microkernel from being started inside of JUnit). The M3 release is going to cut memory consumption and increase performance and scalability pretty dramatically. I'll need to get a more formal benchmarking systme up at that point because we're already able to handle the load of a small enterprise.

 

One important thing we'll need to get working soon is some form of conventional spam filter, probably just a mailListener or two. Just to save my sanity. I'd prefer a Java solution, but possibly one that can use data from more popular ones. Suggestions would of course be welcome (contributions more welcome).

 

All in all, things are progressing better than expected. We'll probably trim the feature set of 1.0 and release it sooner rather than wait for stuff like calendaring and preliminary Exchange protocol support (I'd planned 1.0 to happen at the end of the year). So take a look at JBoss Mail Server and stay tuned to the JBMS forum.

acoliver

Congrats to Heiko

Posted by acoliver Apr 27, 2005

 

I want to offer my congratulations to Heiko W. Rupp. Heiko announced that his book JBoss Server-Handbuch für J2EE-Entwickler und Administratoren is hitting the presses.

 

Today I got the first copy of my JBoss book from the publisher. Really neat. Within the next days the printing plant will supply more copies to the distributors and stores, so it will be available until around the start of next week in stores.

 

Maybe I'll pick up a copy so I can work on my kaput-Deutsch.

 

JBoss has been featured in the New York Times.

 

I would have liked to see a bit more analysis into the differences in various open source ventures and their business models. Other articles have been a bit more in depth on the evolution of JBoss and its business model, here are a few in "Google Knows Best" order:

acoliver

NoFollow enabled

Posted by acoliver Apr 26, 2005

 

For those of you hoping to use JBoss Blog to enhance your google ratings for you medical enhancement products, I have enabled Google's nofollow feature for trackbacks and comments. This is a feature of Blojsom, the weblog software that we use. This will hopefully restore the PG-13 rating of older posts to which these unscrupulous persons have added. If it doesn't get better than maybe Roy "Backstreet Boys are cool" Russo can help me require registration for comments and trackbacks.

Filter Blog

By date: