<?xml version="1.0" encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="https://raibledesigns.com/roller-ui/styles/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" 
      xmlns:app="http://www.w3.org/2007/app"
      xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">

    <title type="html">Search for [lucene] in weblog rd</title>
    <subtitle type="html">Search results for [lucene] within weblog Raible Designs</subtitle>
    <id>https://raibledesigns.com/rd/feed/entries/atom?q=lucene</id>

    <link rel="self" type="application/atom+xml" 
        href="https://raibledesigns.com/rd/feed/entries/atom?q=lucene" />

    <link rel="alternate" type="text/html" 
        href="https://raibledesigns.com/rd/search?q=lucene" />

    <link rel="search" type="application/opensearchdescription+xml" 
        href="https://raibledesigns.com/roller-services/opensearch/rd" />
    <opensearch:Query role="request" searchTerms="lucene" startPage="1" />

    <link rel="first" type="application/atom+xml" href="https://raibledesigns.com/rd/feed/entries/atom?q=lucene" />
    <updated>2026-05-25T13:53:18-06:00</updated>
    <generator uri="http://roller.apache.org" version="5.0.3 (1388864191739:dave)">Apache Roller</generator>

        <entry>
        <id>https://raibledesigns.com/rd/entry/oscon_2008_web_frameworks_of</id>
        <title type="html">[OSCON 2008] Web Frameworks of the Future: Flex, GWT, Grails and Rails</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/oscon_2008_web_frameworks_of"/>
        <published>2008-07-23T16:25:23-06:00</published>
        <updated>2014-05-08T19:47:19-06:00</updated> 
        <category term="/Open Source" label="Open Source" />
        <category term="rails" scheme="http://roller.apache.org/ns/tags/" />
        <category term="oscon" scheme="http://roller.apache.org/ns/tags/" />
        <category term="rest" scheme="http://roller.apache.org/ns/tags/" />
        <category term="gwt" scheme="http://roller.apache.org/ns/tags/" />
        <category term="oscon08" scheme="http://roller.apache.org/ns/tags/" />
        <category term="flex" scheme="http://roller.apache.org/ns/tags/" />
        <category term="grails" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensource" scheme="http://roller.apache.org/ns/tags/" />
        <category term="webframeworks" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">Below is the presentation I&apos;m &lt;a href=&quot;http://en.oreilly.com/oscon2008/public/schedule/speaker/6444&quot;&gt;delivering at OSCON&lt;/a&gt; today. Unfortunately, I had to remove slides on GWT and Flex to fit w/in the 45 minute time limit. I hope to expand this presentation in the future, as well as continue to develop the side project I&apos;m working on using these technologies.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;object style=&quot;margin:0px&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slideshare.net/swf/ssplayer2.swf?doc=webframeworksofthefutureflexgwtrailsandgrails-1216842992390310-9&quot;/&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed src=&quot;//static.slideshare.net/swf/ssplayer2.swf?doc=webframeworksofthefutureflexgwtrailsandgrails-1216842992390310-9&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;div style=&quot;font-size: .9em; text-align: center&quot;&gt;
&lt;a href=&quot;http://www.slideshare.net/mraible/web-frameworks-of-the-future-flex-gwt-grail-and-rails-525747?src=embed&quot; title=&quot;View Web Frameworks of the Future: Flex, GWT, Grail, and Rails on SlideShare&quot;&gt;view on slideshare&lt;/a&gt; | 
&lt;a href=&quot;http://www.slideshare.net/mraible/web-frameworks-of-the-future-flex-gwt-grail-and-rails-525747/download&quot;&gt;download&lt;/a&gt;&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/integrating_compass_2_0_into</id>
        <title type="html">Integrating Compass 2.0 into AppFuse</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/integrating_compass_2_0_into"/>
        <published>2008-05-22T21:24:47-06:00</published>
        <updated>2014-05-08T19:47:26-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="displaytag" scheme="http://roller.apache.org/ns/tags/" />
        <category term="compass" scheme="http://roller.apache.org/ns/tags/" />
        <category term="appfuse" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;a href=&quot;http://appfuse.org&quot;&gt;&lt;img src=&quot;//appfuse.dev.java.net/images/icon.gif&quot; class=&quot;picture&quot; style=&quot;border: 0&quot;&gt;&lt;/a&gt;
Last week, Chris Barham showed us an example of &lt;a href=&quot;http://raibledesigns.com/rd/entry/appfuse_displaytag_external_sorting_and&quot;&gt;how to implement external sorting and paging with AppFuse + DisplayTag&lt;/a&gt;. This week, he&apos;s at it again with a tutorial titled &lt;a href=&quot;http://code.google.com/p/pagingappfuse/wiki/CompassSearching&quot;&gt;Searching in AppFuse 2.0.2 with Compass 2.0 and Lucene 2.3.2&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
From a &lt;a href=&quot;http://www.nabble.com/Appfuse-searching-with-Compass-2.0-(Lucene)-td17368089s2369.html&quot;&gt;message&lt;/a&gt; he sent to the mailing list:&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
I&apos;ve extended the previous DisplayTag external sorting and paging project to implement full search capability across the domain objects by using Compass 2.0 - &lt;a href=&quot;http://www.compass-project.org&quot;&gt;http://www.compass-project.org&lt;/a&gt;.
&lt;br/&gt;&lt;br/&gt;
Although there are a number of tutorials around for Compass and AppFuse, I thought I&apos;d update as Compass has just gone to version 2.0 and has new features, (annotations etc).
&lt;br/&gt;&lt;br/&gt;
Search results in the example are displayed in plain HTML with Compass&apos; own paging feature, and also using DisplayTag with its paging external feature, (both on the same search results page in the example).
&lt;br/&gt;&lt;br/&gt;
Code is in a branch off the original project called branches/search - check it out with:
&lt;br/&gt;&lt;br/&gt;
&lt;em&gt;svn checkout http://pagingappfuse.googlecode.com/svn/branches/search/ appfusecompass&lt;/em&gt;
&lt;br/&gt;&lt;br/&gt;
Instructions on how to implement Compass are here:&lt;br/&gt;
&lt;a href=&quot;http://code.google.com/p/pagingappfuse/wiki/CompassSearching&quot;&gt;http://code.google.com/p/pagingappfuse/wiki/CompassSearching&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;
Cheers,&lt;br/&gt;
Chris
&lt;/p&gt;
&lt;p&gt;Again, great work Chris! We really appreciate your contributions.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/migrating_a_rails_app_to</id>
        <title type="html">Migrating a Rails app to Grails</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/migrating_a_rails_app_to"/>
        <published>2008-01-22T09:37:49-07:00</published>
        <updated>2008-01-22T16:37:49-07:00</updated> 
        <category term="/Java" label="Java" />
        <category term="grails" scheme="http://roller.apache.org/ns/tags/" />
        <category term="webframeworks" scheme="http://roller.apache.org/ns/tags/" />
        <category term="rails" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">There&apos;s an interesting trend I&apos;ve seen happening at companies over the last year. More and more, they&apos;re experimenting with Rails and/or Grails for both prototyping and real applications. I think this is an excellent use for these frameworks as they both are very productive. The reasons for their productivity is simple: &lt;a href=&quot;http://www.theserverside.com/news/thread.tss?thread_id=35538&quot;&gt;zero turnaround&lt;/a&gt; and less code.&lt;/p&gt;
&lt;p&gt;For a Java-based company that&apos;s built their bread and butter applications on Java and been successful with it, both frameworks can be disruptive. Bread and butter applications tend to be large and somewhat difficult to maintain. In my experience, the biggest maintenance headache is &lt;em&gt;not&lt;/em&gt; writing code or fixing bugs, it&apos;s the turnaround time required to make changes, run tests and build the application to test in your browser. Since Rails and Grails eliminate the turnaround, it&apos;s only natural for developers at companies with a lengthy build process to love their increased productivity.
&lt;/p&gt;
&lt;p&gt;Over the next couple weeks, I&apos;m going to do some experimenting with porting a Rails application to Grails. Why? Because I think companies are going to have a difficult time choosing between these two frameworks for rapid prototyping and (possible) production deployments. While both frameworks are great for prototyping, the last thing most developers want to do is throw away the prototype and develop it with something else. They want to continue to enhance the prototype and eventually put it into production. With Rails and Grails (and many others), it&apos;s possible to build the real application in a matter of weeks, so why shouldn&apos;t it be put into production?&lt;/p&gt;
&lt;p&gt;For most Java-based companies, putting a Rails application into production is unfamiliar territory. However, a Grails application is just a WAR, so they can continue to use all the Java infrastructure they know and love. So for companies with an established, tuned and successful JVM infrastructure, does it really make sense to use Rails over Grails? The only thing I can think of is language reasons - there&apos;s a lot of Ruby fanatics out there.&lt;/p&gt;
&lt;p&gt;So again, the purpose of my experiment is simple: to see if a Grails app can do everything a Rails app can. As for language features and &lt;a href=&quot;http://www.theserverside.com/news/thread.tss?thread_id=48180&quot;&gt;scalability&lt;/a&gt;, I&apos;m not really concerned with that right now. I&apos;m not looking to prove that either framework should be used for all web applications - just certain types.&lt;/p&gt;
&lt;p&gt;
Has anyone out there ported a Rails application to Grails? If so, are there any gotchas I should watch out for?
&lt;/p&gt;
&lt;p class=&quot;smokey&quot;&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; I realize that Rails can be deployed on the JVM with JRuby. However, I think many companies have existing Java-based tools (logging, JMX, Spring backends, etc.) that more easily integrate with Grails than Rails. I could be wrong.&lt;/p&gt;
&lt;p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/introduction_to_grails_with_scott</id>
        <title type="html">Introduction to Grails with Scott Davis at the Colorado Software Summit</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/introduction_to_grails_with_scott"/>
        <published>2007-10-25T19:03:42-06:00</published>
        <updated>2014-05-08T19:47:19-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="grails" scheme="http://roller.apache.org/ns/tags/" />
        <category term="groovy" scheme="http://roller.apache.org/ns/tags/" />
        <category term="softwaresummit" scheme="http://roller.apache.org/ns/tags/" />
        <category term="webframeworks" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;a href=&quot;http://grails.org&quot;&gt;&lt;img src=&quot;//static.raibledesigns.com/repository/images/grails-logo-20070903.jpg&quot; alt=&quot;Grails&quot; width=&quot;280&quot; height=&quot;84&quot; class=&quot;picture&quot; style=&quot;border: 0&quot;/&gt;&lt;/a&gt;
According to Scott, today&apos;s Java-based web frameworks are partial solutions at best. They&apos;re only solving one piece of the puzzle - you still need to manage persistence, deployment, etc. &lt;em&gt;all by yourself&lt;/em&gt;.
&lt;/p&gt;&lt;p&gt;
We&apos;re moving into a new era of web frameworks. The expectation now is a full-stack solution. Grails is a fully integrated modern Java web application in a box. It contains Spring, Hibernate, Quartz, Log4J, Jetty, HSQL, JUnit and Ant. You&apos;re not limited to using Jetty, you can type &quot;grails war&quot; and create a WAR that you can deploy to any application server. In a single zip/tar, you get the whole thing - including the database and servlet container. You get a lot of good default for free, but you&apos;re not limited to those defaults.
&lt;/p&gt;&lt;p&gt;
What does &quot;modern&quot; in a framework mean? It means it uses Convention over Configuration - Grails autowires components together based on naming conventions. Struts 1.x uses Configuration over Configuration - the more XML the better. 
&lt;/p&gt;&lt;p&gt;
The Wisdom of Crowds - why are the many smarter than the few? What is the wisdom of crowds when it comes to web frameworks. &lt;strong&gt;Struts&lt;/strong&gt; is the wisdom of crowds when it comes to web frameworks. It&apos;s based on sound principles (MVC) and was written by Craig McClanahan. He was the architect of &quot;Catalina&quot; Tomcat 4 and wrote Struts shortly thereafter. David Geary was contributor #2 to Struts. It has a proven track record and has a 60%-70% market share. Struts must be the perfect framework - especially since it has such a great pedigree.
&lt;/p&gt;&lt;p&gt;
So what&apos;s wrong with Struts? 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It&apos;s 7 years old&lt;/li&gt;
&lt;li&gt;It&apos;s verbose and overly complex (reflective of the EJB 2.x era)&lt;/li&gt;
&lt;li&gt;Splintered community: Craig moved on to JSF -&gt; created Shale, then the WebWork merger&lt;/li&gt;
&lt;li&gt;While Struts 1.x was an unqualified success, Struts 2.x can&apos;t seem to build that critical mass - it can&apos;t seem to reach The Tipping Point like Struts 1.x did&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Recipe for a Tipping Point: Contagiousness / viral, tiny &quot;tweaks&quot; to a proven model can yield big, disproportionate effects, the rise is not &quot;slow and steady&quot; - the effect is dramatic and immediate.
&lt;/p&gt;&lt;p&gt;
Ruby on Rails won the hype award. It&apos;s largely worth the hype, but it&apos;s not revolutionary - it&apos;s &lt;em&gt;evolutionary&lt;/em&gt;. It has tiny tweaks to the proven MVC-driven approach: Convention over Configuration, Scaffolding and Unified Technology Stack. 
&lt;/p&gt;&lt;p&gt;
The one thing that Rails is lacking is Java support. Grails, on the other hand, offers the same experience using known, proven Java solutions.
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;
Rails =&gt; &quot;replacement&quot;&lt;/li&gt;
&lt;li&gt;Grails =&gt; &quot;upgrade&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Scott drank the Rails Kool-Aid for a while and enjoyed it, but found it difficult to switch from Ruby in the morning to Java in the afternoon. With Grails, he doesn&apos;t have to do as much context switching, as well as all the Java libraries are available - the ones you know and love.
&lt;/p&gt;&lt;p&gt;
You can drop groovy.jar into your classpath and write Groovy code. One nice thing about Groovy is you can rename your existing .java files to .groovy and they&apos;ll work just fine. Included Ajax support: Script.aculo.us and Protoype as well as YUI. YUI is battle-tested since it&apos;s used by Yahoo and very well documented.  You can use &quot;grails install-dojo&quot; to install the Dojo toolkit. Grails has a wealth of plugins available at &lt;a href=&quot;http://grails.org/plugins&quot;&gt;http://grails.org/plugins&lt;/a&gt;. 
&lt;/p&gt;&lt;p&gt;
Now we&apos;re going to crack our nuckles and build some code - slides are over.

&lt;pre&gt;
 grails create-app conference
 cd conference
 grails create-domain-class Speaker (add some fields)
 grails generate-all Speaker
 grails run-app
&lt;/pre&gt;
&lt;p&gt;The impressive things about this set of commands is I was able to 1) download Grails and 2) run all these commands at the same time that Scott did. I was definitely impressed (I knew I would be).

Auto-scaffolding - you can get the same thing as &quot;generate-all&quot;, but it generates controllers and views at runtime &lt;em&gt;in-memory&lt;/em&gt;. All you need to do is create a domain object (i.e. Talk) and then create a TalkController that has the following line in it:
&lt;/p&gt;
&lt;pre&gt;
def scaffold = Talk
&lt;/pre&gt;
&lt;p&gt;As a test, I tried this at the same time that Scott did and got the following error. It looks like Grails/Jetty isn&apos;t smart enough to pick up new classes as they&apos;re added. 
&lt;/p&gt;
&lt;pre&gt;
[263102] commons.DefaultGrailsApplication Class not found attempting to load class Talk
java.lang.ClassNotFoundException: Talk
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
&lt;/pre&gt;
&lt;p&gt;Grails comes with a number of environments. &lt;strong&gt;Dev&lt;/strong&gt; (the default) auto-reloads changes to Controllers, Views and even the Model (this is helpful for rapid development). &lt;strong&gt;Prod&lt;/strong&gt; loads all items statically for maximum performance. To change the environments - you can change DataSource.groovy.
&lt;/p&gt;
&lt;p&gt;For some reason, adding/removing some properties on my Talk object and my application hasn&apos;t been the same since. Now when I try to access my TalkController, I see the following stack trace:
&lt;/p&gt;
&lt;pre&gt;
org.springframework.orm.hibernate3.HibernateQueryException: could not resolve property: difficulty of: Talk; nested exception is org.hibernate.QueryException: could not resolve property: difficulty of: Talk
	at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:640)
	at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
	at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:378)
	at org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:342)
	at org.codehaus.groovy.grails.scaffolding.DefaultScaffoldDomain.list(DefaultScaffoldDomain.java:112)
&lt;/pre&gt;
&lt;p&gt;I asked Scott about this error and he proved that removing properties from domain objects should work. I told him restarting Jetty didn&apos;t fix the problem and he suggested dropping the &quot;Talk&quot; table and letting Grails re-create it. Unfortunately, I have no idea where this database is, so that&apos;s difficult to do. Doh - now I realize what was causing the problem. Before I dropped the &quot;difficulty&quot; property, I had clicked on the column and that property was still referenced in the URL. When I&apos;d refresh the browser, the stack trace occurred. I don&apos;t know if I&apos;d consider this a bug or not.
&lt;/p&gt;
&lt;p&gt;
dbCreate = hibernate.hbm2ddl.auto is used. When in development &lt;strong&gt;create-drop&lt;/strong&gt; is used. In production and test environments, it uses &lt;strong&gt;update&lt;/strong&gt; and saves the data between restarts.
&lt;/p&gt;
&lt;p&gt;
You can turn off Hibernate&apos;s automatic schema alteration by commenting out &quot;dbCreate&quot; line in DataSource.groovy. 
&lt;/p&gt;
&lt;p&gt;To run your application in Tomcat instead of Jetty, you can run &quot;grails war&quot; and copy the WAR to Tomcat. The WAR is created with the production environment by default, so you may need to pass in arguments or set environment variables if you want the WAR created in dev mode.
&lt;/p&gt;
&lt;p&gt;At this point, my battery died. Scott continued to cover how to order form elements (when using scaffolding) with &quot;static constraints&quot; and how to add validation rules. It was an excellent presentation and Grails definitely looks like a really cool web framework. The best part is I learned most of what you need to know to use it - in an hour!
&lt;/p&gt;
&lt;p&gt;
I might have to try Grails soon - I love the concept of &lt;a href=&quot;http://www.theserverside.com/news/thread.tss?thread_id=47213&quot;&gt;Life above the Service Tier&lt;/a&gt; and Grails would work nicely for serving up &lt;a href=&quot;http://grails.codehaus.org/REST+plugin&quot;&gt;REST&lt;/a&gt;. I think YUI, GWT-Ext and Flex are probably the best frameworks for developing a SOFEA client. The question is - when using YUI, how do you download all pages in the application at once?</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/choosing_a_jvm_web_framework1</id>
        <title type="html">Choosing a JVM Web Framework: Stories Wanted</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/choosing_a_jvm_web_framework1"/>
        <published>2007-08-22T12:02:58-06:00</published>
        <updated>2007-08-22T18:03:56-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="webframeworks" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">My &lt;a href=&quot;http://raibledesigns.com/rd/entry/choosing_a_jvm_web_framework&quot;&gt;last post&lt;/a&gt; on choosing a web framework got quite a few comments. Some seemed to like the application categorization technique as a means to narrow the choices. However, others seemed to disagree. So if application categorization is not a good methodology for narrowing the choices, what is?&lt;/p&gt;
&lt;p&gt;I think one of the best ways to figure out a good methodology is to find out what people have done to choose their web framework. I&apos;m looking for stories from developers who have evaluated 2-3+ frameworks for a project. I&apos;d like to come up with 3-5 stories as part of my talk to highlight how some teams have chosen their web framework. What were your important criteria? What made you choose the one you did? Was it a tight race between a few of them? Did industry buzz or application categorization play a part in your decision?&lt;/p&gt;
&lt;p&gt;Please send any stories you&apos;d like to share to &lt;a href=&quot;mailto:matt@raibledesigns.com?subject=How we chose our JVM Web Framework&quot;&gt;matt@raibledesigns.com&lt;/a&gt;. Of course, you can also post your story in the comments - but an e-mail gives it a bit more validity. If you&apos;d like to share your company name, that&apos;d be great, but it&apos;s by no means required. I haven&apos;t decided if I&apos;m going to prevent all cases as anonymous companies or not. If you do send a story, I&apos;ll make sure and ask your permission before I share any of your personal/company information. &lt;em&gt;Thanks!&lt;/em&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/ant_vs_maven</id>
        <title type="html">Ant vs. Maven</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/ant_vs_maven"/>
        <published>2007-04-16T11:26:13-06:00</published>
        <updated>2007-04-16T17:27:10-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="ant" scheme="http://roller.apache.org/ns/tags/" />
        <category term="appfuse" scheme="http://roller.apache.org/ns/tags/" />
        <category term="maven" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">I found a good post from Steve Loughran on &lt;a href=&quot;http://www.1060.org/blogxter/entry?publicid=9EE3794599F42C4E1D9BF2F2FE655180&quot;&gt;what&apos;s wrong with Maven&apos;s repositories&lt;/a&gt;. I agree with most of his points, but would like to point out &lt;a href=&quot;http://mvnrepository.com/&quot;&gt;mvnrepository.com&lt;/a&gt;. This site seems to provide good XML Feeds for what&apos;s been uploaded to Maven&apos;s Central Repository. If you&apos;re using Maven, you should probably subscribe to its &lt;a href=&quot;http://mvnrepository.com/feeds/atom.xml&quot;&gt;Atom Feed&lt;/a&gt;.
&lt;br/&gt;&lt;br/&gt;
In related news, Timothy M. O&apos;Brien has an entry about &lt;a href=&quot;http://www.oreillynet.com/onjava/blog/2007/04/upcoming_book_ant_in_action_1.html&quot;&gt;Steve&apos;s upcoming book: Ant in Action&lt;/a&gt;. This book is the 2nd edition of &lt;a href=&quot;http://www.manning.com/hatcher/&quot;&gt;Java Development with Ant&lt;/a&gt;. I have a hard time believing Erik Hatcher is helping Steve write Ant in Action - AFAIK, he&apos;s off in Rails-land enjoying himself. Regardless, I&apos;m sure Ant in Action will be an excellent book. Java Development with Ant is one of my favorite technical books of all time and is largely responsible for inspiring me to write &lt;a href=&quot;http://appfuse.org&quot;&gt;AppFuse&lt;/a&gt;. I read JDwA way back in October 2002 and used a lot of its code to develop AppFuse 1.x&apos;s Ant-based build system.&lt;br/&gt;&lt;br/&gt;
Like Tim, I still like Ant. However, AppFuse 2.x uses Maven 2 and most of the projects I work on these days use Maven 2. It may surprise some folks, but I actually like Maven 2 (not Maven 1). Sure it has issues, but after a year of using it in anger, I know how to solve most of its quirks. AppFuse 2.x users will benefit from this greatly and I&apos;m thinking of changing its tagline to &quot;We make Maven work.&quot; &lt;img src=&quot;https://raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;
&lt;br/&gt;&lt;br/&gt;
One of the most interesting things about moving to Maven is we were easily able to make AppFuse more like a framework than a project starter kit.  We &lt;em&gt;thought&lt;/em&gt; this is what most folks wanted - especially the ability to upgrade a project to the latest version of AppFuse. While &lt;em&gt;some&lt;/em&gt; folks wanted this, it seems like &lt;em&gt;most&lt;/em&gt; folks liked the full-source version that was a pain-in-the-ass to upgrade. I don&apos;t blame them. On the project I&apos;m on, I&apos;ll likely be converting to a full-source version before the project is over. That&apos;s why &lt;a href=&quot;http://issues.appfuse.org/browse/APF-675&quot;&gt;APF-675&lt;/a&gt; exists. I doubt we&apos;ll make it happen for the 2.0 final release, but it &lt;em&gt;is&lt;/em&gt; on our radar of things to do shortly after. With any luck, we&apos;ll create a way to migrate projects using embedded AppFuse to full-source AppFuse.
&lt;br/&gt;&lt;br/&gt;
I&apos;d also like to point out something ironic. With AppFuse 1.x, there were a &lt;em&gt;lot&lt;/em&gt; of folks that advocated we move to Maven. Their primary reasoning - the Ant build scripts were too long and complicated. How about a good ol&apos; lines of XML comparison for those folks:
&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;Lines of Ant-related XML in AppFuse 1.x: 1655&lt;/li&gt;
&lt;li&gt;Lines of Maven-related XML in AppFuse 2.x: 2847&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Oh wait, that&apos;s not a fair comparison. The above number is for AppFuse in SVN, which end users won&apos;t deal with. A new project created with AppFuse 2.x will likely have a pom.xml with 634 lines. That&apos;s about 1/3 of the amount needed for Ant in AppFuse 1.x. Maven hasn&apos;t exactly gotten us away from XML hell though. How about a LOC count for archetypes vs. installers:&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;Lines of Ant-related XML for AppFuse 1.x framework installers: 2786&lt;/li&gt;
&lt;li&gt;Lines of Maven-related XML for AppFuse 2.x archetypes (including archetype&apos;s pom.xml files): Too much to count. Creating archetypes is &lt;em&gt;waayyyy&lt;/em&gt; too complicated IMO. Basic archetypes seem to be around 740 lines (pom.xml for archetype project, archetype.xml and archetype&apos;s pom.xml), modular archetypes are around 870. 740 x 4 + 870 x 4 = 6440. I&apos;m guessing the full-source archetypes will add another 5000 lines of XML. Ugh.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This XML-for-archetypes comparison might be unfair as well. With 1.x, you could only create a webapp, with 2.x, you can create a modular application and chop off the web-portion if you so choose.&lt;/p&gt;
&lt;p&gt;
Of course, the real benefits of moving to Maven are elsewhere. We&apos;ve seen quite an uptick on the mailing list in the last few months. There&apos;s &lt;a href=&quot;http://candy4appfuse.sf.net&quot;&gt;tools cropping up&lt;/a&gt; and I&apos;ve gotten quite a few inquiries about training (yes, I do have a 3-day course on Spring, Hibernate, Ajax, Maven and AppFuse). To me, AppFuse 2.x seems more complicated than 1.x, but it seems the community thinks otherwise. Judging from the increased amount of developer activity on the project, developers seem more interested in a Maven-based system too. Then again, we are &lt;em&gt;making Maven work!&lt;/em&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/open_source_cms_evaluation_part</id>
        <title type="html">Open Source CMS Evaluation - Part I: Installation</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/open_source_cms_evaluation_part"/>
        <published>2005-09-23T17:39:04-06:00</published>
        <updated>2007-02-10T20:07:57-07:00</updated> 
        <category term="/Open Source" label="Open Source" />
        <content type="html">Today I began my journey in evaluating Open Source CMS applications.  The motivation for this adventure can be found in my post titled &quot;&lt;a href=&quot;http://raibledesigns.com/page/rd?anchor=building_a_website_with_an&quot;&gt;Building a website with an Open Source CMS&lt;/a&gt;&quot;.  Basically, I&apos;d like to find a good solution to build small-to-medium size websites.  I want full-control over the design and features, and it shouldn&apos;t be too hard to configure, install or administer.  I received many suggestions on my initial post, and thanks to these comments, I&apos;m considering the following CMS solutions:
&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://www.alfresco.org/&quot;&gt;Alfresco&lt;/a&gt; (Java)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://cocoondev.org/daisy/&quot;&gt;Daisy&lt;/a&gt; (Java)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.magnolia.info/en/magnolia.html&quot;&gt;Magnolia&lt;/a&gt; (Java)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bricolage.cc&quot;&gt;Bricolage&lt;/a&gt; (Perl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cromoteca.com/meshcms/&quot;&gt;MeshCMS&lt;/a&gt; (Java)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://atleap.dev.java.net/&quot;&gt;AtLeap&lt;/a&gt; (Java)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://joomla.org/&quot;&gt;Mambo/Joomla&lt;/a&gt; (PHP)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/&quot;&gt;Drupal&lt;/a&gt; (PHP)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The reason &lt;a href=&quot;http://www.opencms.org/opencms/en/&quot;&gt;OpenCms&lt;/a&gt; didn&apos;t make this list is because of Tim Howland&apos;s &lt;a href=&quot;http://www.watchdogsystems.com/opencms/opencms/demos/index.jsp&quot;&gt;first demo&lt;/a&gt; (he left the link in a comment).  As soon as he dropped into a shell, I gave up.  I also tried OpenCMS a couple of years ago and couldn&apos;t get it to work.  I still have a bad taste in my mouth from that experience.
&lt;br /&gt;&lt;br /&gt;Of this list, I was able to eliminate 3 options quite quickly: Bricolage, MeshCMS and AtLeap.  Bricolage b/c their site was down for &lt;em&gt;days&lt;/em&gt; when I first started looking at CMSs.  In addition, it&apos;s written in Perl - of which I&apos;ve never written a single line - and I don&apos;t feel like I&apos;d be well suited to customize a Perl product.  As for MeshCMS and AtLeap, both of these were eliminated b/c of the lack of mailing list traffic. This represents a small community IMO and I&apos;d hate to start using a product that&apos;s not well supported or well documented.  This is unfortunate b/c I could probably customize these products easier than the rest.  Nevertheless, it&apos;s my &lt;em&gt;customers&lt;/em&gt; that are important, not me.
&lt;br /&gt;&lt;br /&gt;
This leaves me with three Java solutions (Alfresco, Daisy, Magnolia) and two PHP solutions (Joomla, Drupal).  I&apos;m not too keen on including Alfresco b/c I&apos;ve never heard of it, but readers of my last post recommended it, as well as my colleague &lt;a href=&quot;http://bill.dudney.net/roller/page/bill/Weblog&quot;&gt;Bill Dudney&lt;/a&gt; (another friend who forgot how to blog).  At first glance, there are a couple of major differences between the Java and PHP solutions.  The Java ones definitely take the cake on download size:
&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;Daisy 1.3.1: 59 MB&lt;/li&gt;
&lt;li&gt;Magnolia 2.1: 13.4 MB&lt;/li&gt;
&lt;li&gt;Alfresco 0.6 (with Tomcat): 30.3 MB&lt;/li&gt;
&lt;li&gt;Joomla 1.0.1: 1.7 MB&lt;/li&gt;
&lt;li&gt;Drupal 4.6.3: 447 KB&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Yes, large downloads is the nature of Java applications - but it&apos;s interesting to see the wide discrepancy b/c the 3 Java options listed here.  In addition, it&apos;s a little disappointing that I can&apos;t download Alfresco standalone - why does it *&lt;a href=&quot;http://www.alfresco.org/download.html&quot;&gt;have&lt;/a&gt;* to come with Tomcat or JBoss? Looking through the Tomcat directories and files - there doesn&apos;t seem to be any Alfresco-specific settings or files.  Why can&apos;t I just download the WAR?&lt;br /&gt;&lt;br /&gt;
My goal in this session was to install these different CMSs and see which were the easiest to install - as well as which had the features I need to continue evaluated them.  What I found was that &lt;strong&gt;Daisy is out of the running&lt;/strong&gt;.  This is primarily because it&apos;s a &lt;em&gt;wiki&lt;/em&gt;, not a CMS. No wonder the JSPWiki guy was impressed with Daisy a few weeks back.  Furthermore, the &lt;a href=&quot;http://cocoondev.org/daisydocs-1_3/13.html&quot;&gt;number of things you have to do&lt;/a&gt; to get Daisy installed is &lt;em&gt;very&lt;/em&gt; long.  
&lt;br /&gt;&lt;br /&gt;
Magnolia, on the other hand, was &lt;em&gt;very&lt;/em&gt; easy to install.  Drop two WAR files into Tomcat and 10 minutes later you have a CMS.  Yeah, that&apos;s a little scary - it took &lt;em&gt;10 minutes&lt;/em&gt; (647740 ms to be exact) to startup Tomcat after installing Magnolia.  While I appreciate the easy installation, I&apos;m still interested to see what kind of data store Magnolia is using.  Is it using an embedded database or what?  I didn&apos;t have time to look, but rather played around with the admin console a bit.  I was &lt;em&gt;very&lt;/em&gt; impressed with the admin console - even though I didn&apos;t figure out how to edit the homepage.  It appears to be using Ajax everywhere. Right-clicking to edit a page even brings up an application menu (rather than a browser menu).  Magnolia is impressive at first glance and will be included in Part II of my evaluation.
&lt;br /&gt;&lt;br /&gt;
Alfresco, with a 0.6 release, was almost off my radar.  The version number makes it seem like a very immature product - and the fact that it requires JDK 5 makes it seem even more immature.  Upon startup, it spit out a number of errors - but they seem to be well documented in its &quot;README_tomcat_linux.txt&quot; file.  I used OS X and despite the errors - everything appeared to be working OK.  However, when I pulled up http://localhost:8080/alfresco, I immediately understood why Bill likes it.  It looks like it&apos;s using JSF, and I&apos;m willing to bet it&apos;s using &lt;a href=&quot;http://myfaces.apache.org&quot;&gt;MyFaces&lt;/a&gt; (he&apos;s a committer on the project). The disappointing thing I noticed after pulling up the initial page is that it&apos;s a login page.  I&apos;d expect to see a &lt;em&gt;reader view&lt;/em&gt; initially rather than an &lt;em&gt;admin view&lt;/em&gt;. After logging in, the interface seems very nice and easy to work with.  However, after 30 seconds of clicking on stuff, I can&apos;t figure out how to get the reader view to show up - so I give up.  I&apos;m going to let this CMS graduate to Part II, but only because I didn&apos;t spend much time with it - and also because the UI looks quite polished.
&lt;br /&gt;&lt;br /&gt;
I installed and played around with Daisy, Magnolia and Alfresco all in a 3-hour period today.  First of all, I&apos;d like to give props to all the authors of these OS projects as each was installable according to its instructions and I didn&apos;t have to google for a single setting.  I installed Joomla and Drupal last week - both in under 10 minutes.  Joomla was definitely more impressive - mainly because it&apos;s &lt;a href=&quot;http://demo.joomla.org/&quot;&gt;default homepage&lt;/a&gt; (note: this can change every hour) looks pretty cool. Drupal, on the other hand, is a bit more &lt;em&gt;plain jane&lt;/em&gt;.  This is not a bad thing necessarily - as it might be easier to design with a clean slate rather than remove-features, then-design.  I did have to install PHP4 on my Mac to run both of these packages, but &lt;a href=&quot;http://serverlogistics.com/downloads.php&quot;&gt;Server Logistics&lt;/a&gt; made that super easy.  I also tried to install Joomla 1.0 on my Windows box (which has Apache 4.0.7 and PHP 4.3.3 from &lt;a href=&quot;http://openlogic.com/page.php?pname=software/overview&quot;&gt;BlueGlue&lt;/a&gt;), but it failed halfway through the install with errors that my user/pass for the database were wrong. Not a big deal, but frustrating since it works fine on the Mac (and yes, the user/pass I&apos;m using are correct).
&lt;br /&gt;&lt;br /&gt; 
Watch this space.  Part II will address customizing each CMS to use an already-created theme, as well as playing around with each&apos;s features.  I&apos;d prefer a package that has built-in support for multi-author blogs - so that might make Magnolia and Alfresco look bad.  However, I&apos;m not going to hold it against them since I&apos;m a &lt;a href=&quot;http://www.rollerweblogger.org/page/project&quot;&gt;Roller&lt;/a&gt; fan and committer.  I don&apos;t mind using a 2nd application for blogging - especially if the built-in package is less than full-featured.
&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;Conclusion:&lt;/strong&gt; Alfresco, Magnolia, Joomla and Drupal are the easiest open source CMS applications to install (of the ones I looked at). Daisy was easy to install according to its instructions (of which there were many), but it&apos;s more of a Wiki than a CMS.
&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;Update on Saturday at 1:00 p.m.&lt;/strong&gt; - Based on reader&apos;s feedback to this post, I went ahead and installed three more: &lt;a href=&quot;http://plone.org/&quot;&gt;Plone&lt;/a&gt;, &lt;a href=&quot;http://ez.no&quot;&gt;eZ publish&lt;/a&gt; (gotta love the domain name) and &lt;a href=&quot;http://www.opencms.org&quot;&gt;OpenCMS&lt;/a&gt;.  All the previous CMS applications I installed on OS X, and I installed these 3 on Windows XP. I installed OpenCMS first, and while the setup was easy, it took &lt;em&gt;18 minutes&lt;/em&gt; to finish its importing of data.  My Windows machine is easily 2x as fast as my PowerBook, so my guess is this would&apos;ve been quite painful on the ol&apos; Mac.  Regardless, it&apos;s a one time wait-fee, so I can&apos;t really ding them for that.  I played around with the Admin UI for about 5 minutes and found it &lt;em&gt;extremely&lt;/em&gt; easy to use - as well as intuitive.  I dig how you can view the content and edit it very easily.  I never had to read any documentation to figure out how to work this system.&lt;br /&gt;&lt;br /&gt;
Next up was eZ publish.  It took a bit of fiddling to get the installation to work.  I had PHP 4.3.3 installed with Apache 2.0.47, and I upgraded to PHP 4.4 before trying anything.  While setting up eZ publish, it told me it didn&apos;t work with 4.4, so I backed down to 4.3.3, after which it told me I needed &lt;em&gt;at least&lt;/em&gt; 4.3.4.  Thankfully, PHP is easy to install and upgrade on Windows and I got it all working fairly quickly.  Of the three (and all the CMS&apos;s in fact), eZ publish has the nicest installer.  The whole application and process gave me the feeling that it was the product I was looking for.  It&apos;s designed to help you setup a website, and allows you to choose templates, features, etc. along the way.  At the end, it stalls for a couple minutes - probably b/c it&apos;s creating everything and populating the database.  The first thing I didn&apos;t like was the URLs (/index.php/feature). I wonder if that can be changed to be more path-based?  Having an extension followed by additional slashes just doesn&apos;t seem right to me.  From there, I logged in as an administrator and started playing around with things a bit.  The Weblog feature seems very inadequate and doesn&apos;t even seem to support RSS.  In addition, I couldn&apos;t figure out how to edit any of the templates in my browser.  But the worst part was the admin UI was &lt;em&gt;sssllloooowwww&lt;/em&gt;.  It could have been b/c I had other stuff running, but I don&apos;t think so.  eZ publish seems like a good system to recommend to friends who want quick and easy websites, but I don&apos;t think it&apos;s one for me.
&lt;br /&gt;&lt;br /&gt;
The last CMS I installed was Plone.  It was easy to install on Windows, but only b/c it has an all-in-one installer.  I found it a bit strange that it doesn&apos;t install in a web server, but rather contains everything as part of the package.  This includes Python, its own web server, and its own database (I&apos;m assuming).  It&apos;s an easy install, but I like the idea of installing a CMS into an existing web server rather than having a CMS with an embedded web server.  The admin UI is simple enough to use, but it&apos;s very boxy and seems like it would be difficult to customize into a corporate or small business website.  Please let me know if you feel this to be untrue (pointing to existing &lt;em&gt;nice-looking&lt;/em&gt; installations would help).  I didn&apos;t like the fact that it highlights &lt;em&gt;members&lt;/em&gt; quite prominently, but that can probably be fixed with some good template-tweaking.  The most disappointing thing I found was that I was unable to edit &quot;skins&quot; within the admin console.  You have to download a separate package, customize it yourself, and then install it.  What a pain, especially since I&apos;d really like to be able to 1) modify template, 2) save and 3) view - just like this site allows me to do.  For this reason, as well as the embedded server feature, I&apos;m going to have to pass on Plone as well. 
&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;Conclusion 2:&lt;/strong&gt; Alfresco, Magnolia, Joomla, Drupal and OpenCMS are the CMS applications I will continue to evaluate this weekend.  I have to make a decision by Monday morning so I can start building a site with it.  If any of these CMS&apos;es don&apos;t allow me to customize its templates from a browser, please let me know so I can take it off my list.
&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;Update on Sunday at 9:30 a.m.&lt;/strong&gt; - I&apos;m going to drop Alfresco and add MeshCMS for &lt;a href=&quot;http://raibledesigns.com/comments/rd/sunsets/open_source_cms_evaluation_part#comment21&quot;&gt;reasons stated here&lt;/a&gt;.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/building_a_website_with_an</id>
        <title type="html">Building a website with an Open Source CMS</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/building_a_website_with_an"/>
        <published>2005-09-12T11:48:14-06:00</published>
        <updated>2007-02-10T20:07:57-07:00</updated> 
        <category term="/Open Source" label="Open Source" />
        <content type="html">I think the open source community has done an excellent job of figuring out how to create frameworks for developing web applications.  But what about &lt;em&gt;websites&lt;/em&gt;.  You know, the web presence that every company wants - for minimal cost.  For most companies, it&apos;s nothing more than 5-10 pages that tells a bit about the company, show some management folks and tells you how to get to their offices.&lt;br /&gt;&lt;br /&gt;
I&apos;ve developed many websites over the years, many that were static, but more that were dynamic. The unfortunate thing about all of them is they required someone technical to update them.  Often, the client had to contact me if they wanted anything new on the site.  I&apos;ve often thought there was a better solution - and I think I&apos;m at a point where I know what customers want, and I know how to provide it.  The solution is a Content Management Solution (CMS). One of the biggest problems with static websites is they&apos;re not dynamic enough.  A CMS can alleviate this problem by reducing the bottleneck that a traditional &quot;webmaster&quot; creates.
&lt;br /&gt;&lt;br /&gt;
In my mind, there are a couple of things that make a good CMS: 1) it&apos;s open source (to minimize costs to the client) and 2) it&apos;s easy to customize.  On the customization front, my demands are a bit more rigorous - mainly because I know what many folks want in a website.  Here are my main criteria for a good open source CMS  - when it&apos;s used to power a regular ol&apos; client-updateable website:
&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;&lt;strong&gt;Design customization:&lt;/strong&gt; I should be able to customize all the (X)HTML that&apos;s generated using one or two files (like SiteMesh allows). It should be possible to change the look and feel of *everything* by modifying some CSS.  It should also be possible to use Mike Stenhouse&apos;s &lt;a href=&quot;http://www.contentwithstyle.co.uk/Articles/17/a-css-framework&quot;&gt;CSS Framework&lt;/a&gt; to simplify layout choices for clients. Ideally, a web designer or regular ol&apos; HTML person could do the customization.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Static-looking URLs:&lt;/strong&gt; The site should look like a static site.  The URLs should be all lowercase and end with .html.  It should be possible to modify all the URLs to look as if all pages are static.  Apache&apos;s mod_rewrite and the URL Rewrite Filter are great tools for making this happen, but it&apos;d be nice if the administration of the application allowed for setting these rules.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It shouldn&apos;t look like a CMS:&lt;/strong&gt; No login links, no registration links, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ability to easily add dynamic content:&lt;/strong&gt; It should be easy to add dynamic content - such as RSS Feed headlines to pages.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Menu Customization:&lt;/strong&gt; In the application, it should be possible to create menus (both main and local navigation) and configure a page to highlight a menu when a particular page is shown.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Versioning of pages:&lt;/strong&gt; In case someone messes something up, it should be easy enough to revert back to a previous version.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy to use:&lt;/strong&gt; It should be possible to train a marketing person (with little technical knowledge) how to use the system in 10-15 minutes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For technical companies (such as &lt;a href=&quot;http://virtuas.com&quot;&gt;Virtuas&lt;/a&gt;), there are a few additional requirements I&apos;d like to see:&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;&lt;strong&gt;Articles with syntax highlighting:&lt;/strong&gt; It should be easy to publish articles with code that&apos;s colorized.  The &lt;a href=&quot;http://www.java2html.de/&quot;&gt;Java2HtmlPlugin for JSPWiki&lt;/a&gt; is a good example of this.  I currently don&apos;t know of any for XHTML, XML or scripting languages like Ruby or Python.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File Upload:&lt;/strong&gt; For uploading white papers and other technical publications.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
So I&apos;ve started looking at open source CMS&apos;s that fill my requirements.  Last weekend, I wrote a solution that fills all of these requirements using SiteMesh, JSPWiki, CSS Framework, Acegi Security and the URL Rewrite Filter. It only took me about 6 hours to complete, but after completing it - I started wondering if I really wanted to start another open source project and maintain it.  The answer is no, I don&apos;t want to create something new - I want to use something that&apos;s already out there.  However, since I do have something that satisfies all my requirements, I will use it if I can&apos;t tweak an existing OS CMS enough.
&lt;br /&gt;&lt;br /&gt;
Here are a list of CMS&apos;s that I&apos;ll be looking at in the next week or so.  If you&apos;re associated with any of these projects, please leave a comment and let me know how many of my requirements you satisfy.&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://cocoondev.org/daisy/&quot;&gt;Daisy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.magnolia.info/en/magnolia.html&quot;&gt;Magnolia&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bricolage.cc&quot;&gt;Bricolage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://phpwebsite.appstate.edu&quot;&gt;phpWebsite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://joomla.org/&quot;&gt;Mambo/Joomla&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I&apos;m a bit hesitant on Daisy b/c it requires XSLT knowledge for design customization. Magnolia has long URLs and doesn&apos;t appear like a static site - and the PHP ones often have .php in their URLs.  It should be an interesting investigation to see if these (seemingly) heavyweight solutions can solve a few simple requirements.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/integrating_lucene_with_hibernate</id>
        <title type="html">Integrating Lucene with Hibernate</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/integrating_lucene_with_hibernate"/>
        <published>2005-08-17T22:19:09-06:00</published>
        <updated>2007-02-10T20:07:57-07:00</updated> 
        <category term="/Java" label="Java" />
        <content type="html">The &lt;a href=&quot;http://jroller.com/page/wireframe?entry=simple_hibernate_search_engine&quot;&gt;code_poet&lt;/a&gt; has an interesting post on using a Hibernate interceptor to index objects for Lucene searching.  I&apos;ve been thinking about integrating Lucene into AppFuse (or at least providing a tutorial) for quite some time.  Hopefully this post will serve as a starting point when I do.  I wonder how much the Lucene code can be simplified by the Spring support in the &lt;a href=&quot;https://springmodules.dev.java.net/&quot;&gt;Spring Modules&lt;/a&gt; project?</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/oscon_wednesday_morning</id>
        <title type="html">[OSCON] Wednesday Morning</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/oscon_wednesday_morning"/>
        <published>2005-08-03T11:15:08-06:00</published>
        <updated>2007-02-10T20:07:57-07:00</updated> 
        <category term="/Open Source" label="Open Source" />
        <content type="html">I got a good night&apos;s sleep last night so I&apos;d be fresh and ready for the &lt;em&gt;&lt;a href=&quot;http://conferences.oreillynet.com/cs/os2005/view/e_sess/6831&quot;&gt;Smackdown&lt;/a&gt;&lt;/em&gt; today.
    Matthew Porter, Scott Delap and I visited &lt;a href=&quot;http://www.jivesoftware.com/&quot;&gt;Jive
    Software&apos;s&lt;/a&gt; offices last night and had a great time sipping suds in their
    beautiful downtown office. 
&lt;br /&gt;&lt;br /&gt;
My AppFuse tutorial yesterday was well-received by a packed room of developers.  Rather than writing code the whole time and doing a measly 30-slides, I added a bit more meat about Spring, Hibernate and testing. Most of audience was unfamiliar with Spring, so this seemed like the right thing to do.  
Of course, this led to more talking and less coding, but most of the folks I talked to were nevertheless very happy with the tutorial.  If you&apos;d like, you can &lt;a href=&quot;http://appfuse.dev.java.net/TDDWithAppFuse.pdf&quot;&gt;download my presentation&lt;/a&gt; from the event.
&lt;br /&gt;&lt;br /&gt;
Thanks to &lt;a href=&quot;http://www.robharrop.com/blojsom/blog/&quot;&gt;Rob Harrop&lt;/a&gt; and &lt;a href=&quot;http://www.jroller.com/page/buggybean&quot;&gt;Thomas Risberg&lt;/a&gt; for both letting me know about the lack of Spring experience, as well as sitting in on my session.  It was pretty cool having these guys in the room, as well as SiteMesh/jMock inventor &lt;a href=&quot;http://joe.truemesh.com/blog/&quot;&gt;Joe Walnes&lt;/a&gt;. Without these guys, many of the cool features in AppFuse would not be possible.
&lt;/p&gt;
&lt;p&gt;Now I&apos;m sitting in the beginning Keynote session at OSCON, where they&apos;ve announced
    they have a record 2000 attendees this year. In addition, it looks like OSCON
    is in Portland for the long run - this is the 3rd year it&apos;s been in Portland.
    Rather than moving to a new city like they used to, they&apos;ve decided to stay
    b/c conference attendees like it so much. &lt;/p&gt;
&lt;p&gt;The &amp;quot;unofficial&amp;quot; tagline of the conference is &lt;em&gt;fun.&lt;/em&gt; Open
    source is fun and exciting - both to develop and use. This is in stark contrast
    to closed source software that tries to stay stable and boring, with no surprises. &lt;/p&gt;
&lt;p&gt;When O&apos;Reilly&apos;s &lt;a href=&quot;http://codezoo.com&quot;&gt;CodeZoo&lt;/a&gt; launched, it only
    listed Java open source projects. As of today, they&apos;ve added 
    &lt;a href=&quot;http://python.codezoo.com&quot;&gt;python.codezoo.com&lt;/a&gt; and &lt;a href=&quot;http://ruby.codezoo.com&quot;&gt;ruby.codezoo.com&lt;/a&gt;, in addition to &lt;a href=&quot;http://java.codezoo.com&quot;&gt;java.codezoo.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tim O&apos;Reilly &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;O&apos;Reilly is not just book publisher or conference producer - but also a company
    that looks to the future and tries to figure out what&apos;s next. To highlight
    this vision, they&apos;ve created &lt;a href=&quot;http://radar.oreilly.com/&quot;&gt;O&apos;Reilly
    Radar&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;We&apos;re currently going through &amp;quot;The Open Source Paradigm Shift&amp;quot;. Integration
    of commodity components has led to a new model where value gets captured.
    Rather than being at the software level, it&apos;s at the services level.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Questions for Open Source Advocates&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
    &lt;li&gt;Will &amp;quot;web 2.0&amp;quot; be an open system? What do &amp;quot;open services&amp;quot; look like?&lt;/li&gt;
    &lt;li&gt;Data as the &amp;quot;Intel Inside&amp;quot; - will we end up needing a Free Data Foundation
            in 2010?&lt;/li&gt;
    &lt;li&gt;How does the paradigm shift change our business models and development
        practices?&lt;/li&gt;
    &lt;li&gt;Who shoujld we be watching and learning from? &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Things on O&apos;Reilly&apos;s Radar&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
    &lt;li&gt;&lt;strong&gt;Ruby on Rails:&lt;/strong&gt; new platform and new language. May well be the Perl of
        Web 2.0.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;GreaseMonkey:&lt;/strong&gt;  a Firefox extension that alters websites to fit your
        view. A website is traditionally closed. GreaseMonkey &amp;quot;opens up&amp;quot; a website
        and rewrites it for the user.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;HousingMaps.com:&lt;/strong&gt; leveraging Google Maps and existing data from a
        bunch of different webservices to build a better website.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Ajax:&lt;/strong&gt; html, javascript and css. The &amp;quot;css&amp;quot; tag on del.icio.us has gone
        down as the &amp;quot;ajax&amp;quot; tag has gone up.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Findory:&lt;/strong&gt; Uses the articles you like in blogs and news, and finds similar
        articles. Similar to Amazon&apos;s recommendation system. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Internet Telephony:&lt;/strong&gt; Asterisk in particular. Skype and Broadvoice. Broadvoice
        is pushing BYOD (Bring Your Own Device). &lt;/li&gt;
    &lt;li&gt; &lt;strong&gt;HomeBrew&lt;/strong&gt;: similar to Tivo.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Firefox&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Opening up hardware&lt;/strong&gt;, not just software - i.e. Car PC Hacks, Smart Home
        Hacks. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more, go to the Visualizing Technology Trends on Thursday afternoon.
        For the first time, the computer book market has stabilized. This is
        a good sign that the computer industry is about to start rebounding.
        As far as the book market goes, it&apos;s market share and growth - Java still
        leads the pack by a pretty wide margin. A large reason of this is due
        to Open Source Java. &lt;a href=&quot;http://www.simplyhired.com/&quot;&gt;SimplyHired.com&lt;/a&gt; spiders
        7.9M jobs on 755 different job boards. General books on Linux are up,
        especially non-RedHat distros. Books on RedHat have decreased significantly.        &lt;/p&gt;
&lt;p&gt;This is an interesting conference to be at when you&apos;re a Java developer.
            For the most part, everyone seems to be Perl fans, followed by Python,
            and a few Ruby guys. Most of these developers are very vocal about
    the fact that they don&apos;t like Java. Then again, Java is the leader in many
            areas - and it&apos;s the &lt;em&gt;open source way&lt;/em&gt; to hate the guy on
            top.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Kim Polese, SpikeSource&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Building on the Architecture of Participation. A transformation from Do It
    Yourself (DIY) to Do It Together (DIT). Thanks to the architecture of participation,
    open source has achieved World Domination - as evident by governments mandating
    it and IBM pouring billions into it. &lt;/p&gt;
&lt;p&gt;The architecture is characterized by:&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
    &lt;li&gt;Commoditization of software&lt;/li&gt;
    &lt;li&gt;Network-enabled
                        collaboration&lt;/li&gt;
    &lt;li&gt;Software customizability&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In Phase I, we built and we built with. Open source had DIY origins. Now we&apos;re
    in Phase II, where increasingly the action is out in the &lt;em&gt;long tail&lt;/em&gt;.
    Countless new building materials are piling up on the long tail. Now it&apos;s
    possible to build just about anything with anything. IT shops are building
    a phenomenal set of DIY &amp;quot;packages&amp;quot; that combine components from both ends
    of the curve.&lt;/p&gt;
&lt;p&gt;The two problems with this:&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
    &lt;li&gt;&lt;strong&gt;Velocity mismatch: &lt;/strong&gt;all components are on different release schedules.
        Linux, Apache, MySQL - all on a different release schedule. In addition,
        the ones on the other side (Lucene, Struts, Mambo) are on a different
        cycle.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Dependencies:&lt;/strong&gt; When one version of one product changes
        - what happens to all the dependencies?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To solve these problems, companies are developing formalized proceses like
    review boards, support centers, OSS incubation centers, testing groups and
    they&apos;re certifiying / defining stacks internally. Most of
    this work is laborius and not related to the core competency of the business. &lt;/p&gt;
&lt;p&gt;What&apos;s next? Phase III - IT becomes core. They do this by offloading critical
    but non-strategic work to independent service companies. DIY evolves into
    DIT with the help of independent service companies. Of course, this is all
    leading up to the fact that SpikeSource provides these services. It&apos;s funny
    that as soon as Kim said &amp;quot;SpikeSource&amp;quot; - all the presentation screens in
    the room quit working (not on purpose). A minute later they&apos;re back. This
    goes to show that marketing is not liked by the Open Source Gods. &lt;img src=&quot;https://raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&amp;quot;Testing is the single biggest refactoring shift in sofware.&amp;quot; - J.P. Rangaswami,
    CIO, DrKW. &lt;/p&gt;
&lt;p&gt;We need testing on a massive skale. For this reason, Murugan Pal
        and Ray Lane started SpikeSource. They saw the next phase is testing
    open source software so we can scale testing, together. Solve velocity mismatch
        and dependency problems with rapid per-defect patch management and dynamic
        stack configuration. &lt;/p&gt;
&lt;p&gt;Testing has always been the software&apos;s ugly stepchild.
        We need to scale open source testing the way we scaled open source development.
        Some perspective: Microsoft has a 1:1 ratio of developers to QA Engineers.
    There&apos;s no Microsoft for open source software, nor should there be. To solve
    testing on a massive scale, you need participation &lt;em&gt;plus&lt;/em&gt; automation.
    For models of how both scale, think eBay, Google and Amazon. Their best assets
        were their customers that supplied data that made their services more
    useful. &lt;/p&gt;
&lt;p&gt;Testing is just one service among many. The Linux distros and middleware core
    building blocks have been there for awhile. Now we have applications and
    service companies as well. Who benefits when we have abundant integrated,
    tested, validated automatically patched stacks? IT and ISVs shift high-value
    development resources to customer-faces - differentiating features and services.
    In addition, many other groups benefit and higher quality software gets developed. &lt;/p&gt;
&lt;p&gt;Testing will do for open source what it did for chip design a generation earlier.
    Testing is what catapulted the chip industry forward in the 80s. The new
    testing tools moved VLSI foward. Countless new IC-powered products were made
    possible and at much faster development speeds. Solving the testing problem
    can&apos;t be done by one company alone. &amp;quot;Come Test with Us...&amp;quot;&lt;/p&gt;
&lt;p&gt;After Kim, another speaker (Andrew from &lt;a href=&quot;http://www.osdl.org/&quot;&gt;OSDL&lt;/a&gt;)
    began his talk. He talked in a monotone and lacked a presentation. The room
    quickly began to leak people, me being one of them.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/jug_central_and_bpel</id>
        <title type="html">[DJUG] JUG Central and BPEL</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/jug_central_and_bpel"/>
        <published>2005-02-10T07:05:39-07:00</published>
        <updated>2007-02-10T20:07:56-07:00</updated> 
        <category term="/Java" label="Java" />
        <content type="html">Last night, I attended Denver&apos;s JUG meeting.  Below are my notes from the event.
&lt;br /&gt;&lt;br /&gt;
I&apos;m at DJUG listening to Christian and Kris (from &lt;a href=&quot;http://adigio.com/&quot;&gt;Adigio&lt;/a&gt;)
    talk about their experience with using Spring, WebWork, Hibernate, Lucene
    and SiteMesh to develop &lt;a href=&quot;http://www.jugcentral.com/jug_find.jsp&quot;&gt;JUG
    Central&lt;/a&gt; (I wonder if they knew
    &lt;a href=&quot;http://www.jadcentral.com/jugcentral/&quot;&gt;this name and concept already
    exists&lt;/a&gt;?). JSPs are for the view and MySQL powers
    the data. This presentation is designed to explain a bit about each framework,
    and also tips/tricks and pitfalls they experienced when developing the site.
    They started working on the application in August of last year and deployed
    it into production in December. &lt;/p&gt;
&lt;p&gt;Christian said they weren&apos;t going to go into the &lt;em&gt;how &lt;/em&gt;for each framework,
    but Kris has had quite a few slides on SiteMesh so far. I don&apos;t blame him
    - it&apos;s a great tool and only a handful of folks (of about 50-60) have heard
    of it. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SiteMesh Pitfalls: &lt;/strong&gt;Poor integration with Velocity and some
    other frameworks. BTW, if you&apos;re using Tapestry - &lt;a href=&quot;http://www.blogscene.org/erik&quot;&gt;Erik
    Hatcher &lt;/a&gt;recently
    created a JIRA patch with a &lt;a href=&quot;http://jira.opensymphony.com/browse/SIM-165&quot;&gt;Tapestry
    Decorator&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now Kris is talking about WebWork and since he&apos;s a &lt;em&gt;framework
        junkie&lt;/em&gt;, apparently
    this is going to be the largest part of the presentation. I think one of
        the nicest parts of WebWork is its auto-type conversion. The only other
        frameworks I&apos;ve seen that have this is are JSF and Tapestry. For those
        that like WebWork and don&apos;t like JSF - you might find it disturbing that
        the WebWork actions (and their tests) in AppFuse are &lt;em&gt;very&lt;/em&gt; similar to
        the JSF managed beans. I would take it as a compliment if I were a WebWork
        developer.&lt;/p&gt;
&lt;p&gt;One nice thing about XWork&apos;s action configuration is you can specify a &amp;quot;method&amp;quot;
    parameter for a particular action. Struts recently added this with its &lt;code&gt;&lt;a href=&quot;http://struts.apache.org/api/org/apache/struts/actions/MappingDispatchAction.html&quot;&gt;MappingDispatchAction&lt;/a&gt;&lt;/code&gt;.
    I&apos;m using this on my current project and it works quite well. Kris really
    likes WebWork&apos;s front-page controller pattern - where you use the &amp;lt;ww:action&amp;gt;
    tag to execute the action when the page is loaded. Personally, I don&apos;t have
    a problem with going through actions to get to my view templates. Kris finished
    up his WebWork piece with a plug for AppFuse (thanks!) and WebWork in Action.
    Congrats to all the authors - wonder if it&apos;ll be published before &lt;a href=&quot;http://www.sourcebeat.com/TitleAction.do?id=6&quot;&gt;WebWork
    Live&lt;/a&gt;? &lt;/p&gt;
&lt;p&gt;Now Christian is talking about Hibernate and its mapping files - and how you
    can generate your database schema from them - or generate your mapping files
    from a database. They used XDoclet to generate the mapping files in this
    particular project.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hibernate Pitfalls: &lt;/strong&gt;Think about lazy-loading early. Problems
    arise when you try to share Hibernate-managed objects across (Hibernate)
    sessions transparently. Christian mentions that Spring&apos;s &lt;a href=&quot;http://www.springframework.org/docs/api/org/springframework/orm/hibernate/support/OpenSessionInViewFilter.html&quot;&gt;&lt;code&gt;OpenSessionInViewFilter&lt;/code&gt;&lt;/a&gt;    is a nice way to solve the problem. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hibernate Tips:&lt;/strong&gt; Spring simplifies using Hibernate and makes
    declarative transactions easy. Read &lt;a href=&quot;http://www.manning.com/bauer/&quot;&gt;Hibernate
    in Action&lt;/a&gt; before starting
    development. Plan to spend some time learning how to express your data model
    with Hibernate relationships (one-to-one, one-to-many, many-to-many, etc.).&lt;/p&gt;
&lt;p&gt;Christian is now talking about Spring and how it works. After thinking and
    writing about Spring so much in the last year, I&apos;ll just skip over regurgitating
    this part. ;-) His main recommendation: use real injection instead of &lt;code&gt;appContext.getBean(&amp;quot;beanName&amp;quot;)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Other tools used: Lucene for searching and POI for indexing Word, Excel and
    PowerPoint files. Velocity used for templating e-mail messages. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Service-oriented Architecture (SOA) with Business Process Execution
        Language (BPEL)&lt;br /&gt;
        &lt;/strong&gt;Presented by Kevin Geminiuc and Owen Newnan from &lt;a href=&quot;http://policy-studies.com/&quot;&gt;Policy Studies&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This point of this presentation is to communicate what it&apos;s like to implement
    BPEL in a J2EE Container. BPEL is a layer on top of web services. BPEL is
    a programming language that you can use to program business processes. Allows
    you to divorce your business process from being human-centric to being document-centric.
    At Policy Studies, they&apos;re using iLog JRules rules engine and Oracle&apos;s BPEL
    implementation. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Process Visiblity&lt;/li&gt;
    &lt;li&gt;Process Agility&lt;/li&gt;
    &lt;li&gt;Powerful Language&lt;/li&gt;
    &lt;li&gt;Open&lt;/li&gt;
    &lt;li&gt;Backed by &amp;quot;the Big Boys&amp;quot; (BEA, Microsoft, IBM) &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;History: &lt;/strong&gt;Formerly knows as BPEL4WS, WSBPEL. Open standards
    based. Orchestrates web services with SOA.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where we are today: &lt;/strong&gt;Emerging technology (prepare to bang
    your head against the wall). .NET and Java products exist, as well as J2EE
    container integration.&lt;/p&gt;
&lt;table width=&quot;600&quot; class=&quot;comparison&quot;&gt;
    &lt;tr&gt;
        &lt;th&gt;BPEL is:&lt;/th&gt;
        &lt;th&gt;BPEL is not:&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td style=&quot;vertical-align: top&quot;&gt;&lt;ul&gt;
            &lt;li&gt;A programming language for business processes&lt;/li&gt;
            &lt;li&gt;A language for specifying e-business transactions&lt;/li&gt;
            &lt;li&gt;XML-based layer atop WSDL&lt;/li&gt;
            &lt;li&gt;A declarative and procedural language &lt;/li&gt;
        &lt;/ul&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align: top&quot;&gt;&lt;ul&gt;
            &lt;li&gt;Designed for human workflow&lt;/li&gt;
            &lt;li&gt;A JSR spec (&lt;a href=&quot;http://www.jcp.org/en/jsr/detail?id=207&quot;&gt;207&lt;/a&gt; and &lt;a href=&quot;http://www.jcp.org/en/jsr/detail?id=208&quot;&gt;208&lt;/a&gt; are related though)&lt;/li&gt;
            &lt;li&gt;Mature Technology&lt;/li&gt;
            &lt;li&gt;Your typical web services application
                    &lt;ul&gt;
                        &lt;li&gt;asynchrony as well as synchrony&lt;/li&gt;
                        &lt;li&gt;callbacks&lt;/li&gt;
                        &lt;li&gt;composite synchronous services&lt;/li&gt;
                    &lt;/ul&gt;
            &lt;/li&gt;
        &lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;BPEL &amp;amp; WS Standards: &lt;/strong&gt;BPEL, XPath, WSDL, WS-Addressing,
    SOAP, XML-Schema, WSIF (Axis), TBD (WS-ReliableMessaging and JSRs 207/208).
    Note that since BPEL depends on web services (which is not a truly reliable
    service). Because of this, there are some proprietary extensions
    available.&lt;/p&gt;
&lt;p&gt;At this point, I became bored with the presentation and quit taking notes.
    While the speakers had good intentions with their knowledge sharing, their
    delivery needed some work. The code walkthrough and demos were presented
    with a monotonous and unexcited tone, and a handful of folks left during
    this part. In summary, BPEL looks like a good way to orchestrate your various
    business processes. It allows you to call web services, EJBs and whatnot
    simply by defining their locations and methods in XML. &lt;/p&gt;
&lt;p&gt;In his demo, Kevin
        used Oracle&apos;s BPEL Designer, which is an &lt;a href=&quot;http://www.oracle.com/technology/products/ias/bpel/index.html&quot;&gt;Eclipse
        plugin&lt;/a&gt; that has
        a nice drag-n-drop editor for managing your BPEL XML files. He also used
        Oracle&apos;s &lt;a href=&quot;http://www.oracle.com/technology/products/ias/bpel/index.html&quot;&gt;BPEL
        Process Manager&lt;/a&gt;, which seemed to be a lot like Jetspeed - you just

        drop in the .ear and then deploy your processes to it. The only bad part
        about the Process Manager is it&apos;s administration/deployment interface
        only runs in IE. &lt;/p&gt;
&lt;p&gt;If you&apos;re using BPEL in your projects, I&apos;d be interested to hear the tools
    you&apos;re using. As far as open-source BPEL process engines, they mentioned
    &lt;a href=&quot;http://www.smartcomps.org/twister/&quot;&gt;Twister&lt;/a&gt; and &lt;a href=&quot;http://www.activebpel.org/&quot;&gt;ActiveBPEL&lt;/a&gt;.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/denver_s_no_fluff_just1</id>
        <title type="html">Denver&apos;s No Fluff Just Stuff starts today</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/denver_s_no_fluff_just1"/>
        <published>2004-11-12T09:11:55-07:00</published>
        <updated>2007-02-10T20:07:56-07:00</updated> 
        <category term="/Java/NFJS" label="NFJS" />
        <content type="html">It&apos;s time for another NFJS conference.  I &lt;a href=&quot;http://raibledesigns.com/page/rd/20040521#denver_s_no_fluff_just&quot;&gt;attended&lt;/a&gt; the one in June and had an awesome experience.  I doubt I&apos;ll cover it as much as I did last time, that&apos;s just a lot of work - not to mention my cell phone&apos;s data bill was $300!  As I look through the sessions, I&apos;m noticing that it&apos;s a great thing to attend 2 of these conferences - b/c you can skip all the sessions you saw the first time.  Since there&apos;s usually 2-3 good ones per time slot, reducing that down to 1-2 is nice.
&lt;br /&gt;&lt;br /&gt;
This afternoon, I&apos;m planning to attend sessions by Erik Hatcher and Stuart Halloway.  Erik for Ant 1.6 and Subversion (maybe even Lucene) and Stuart for &quot;dynamic, reflective languages&quot;.  Since much of AppFuse&apos;s build.xml is based on Erik&apos;s Java Dev with Ant sample app, it&apos;d be nice to figure out how to take advantage of 1.6 features (especially since &lt;a href=&quot;http://raibledesigns.com/page/rd?anchor=aren_t_out_of_container&quot;&gt;1.6.2 is required&lt;/a&gt;). I&apos;ve never seen Stuart speak before, but I&apos;ve heard he&apos;s excellent.
&lt;br /&gt;&lt;br /&gt;
Saturday I plan on learning more about Tapestry from Erik (in a 3-hour session!).  Since adding Tapestry to AppFuse is my next open-source development effort, this weekend and ApacheCon are good opportunities to learn more about it.  I know, I should just buck up and read the book (I made it to page 100 a couple of weeks ago, nothing since), but it&apos;s tough to find the time.
&lt;br /&gt;&lt;br /&gt;I&apos;ll probably skip out tomorrow afternoon and work on Spring Live since Chapter 10 is due by Monday and I&apos;m not done yet.  Sunday, I&apos;ll be talking about AppFuse making open-source easier.  &quot;Brain, get ready to be stuffed.&quot;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/tapestry_and_hibernate_tutorial</id>
        <title type="html">Tapestry and Hibernate Tutorial</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/tapestry_and_hibernate_tutorial"/>
        <published>2004-08-24T21:40:49-06:00</published>
        <updated>2007-02-10T20:07:56-07:00</updated> 
        <category term="/Java" label="Java" />
        <content type="html">Wanna use Hibernate with your Tapestry application?  Or maybe learn about Tapestry for the first time?  If so, &lt;a href=&quot;http://www.warneronstine.com/cgi-bin/blosxom.cgi/&quot;&gt;Warner&lt;/a&gt; has a &lt;a href=&quot;http://www.sandcastsoftware.com/articlesandtutorials/brownbag/index.html#tapestry&quot;&gt;great set of tutorials&lt;/a&gt;.  His first tutorial on creating a CRUD application with Tapestry was exactly what I needed - right when I needed it - thanks Warner!  I&apos;m looking forward to his next tutorials, especially Spring, Hivemind and Lucene.  Integrating Spring with Tapestry  is pretty simple - we&apos;ll have to see how Hivemind compares.</content>
    </entry>
</feed>

