Tuesday, June 23, 2009

Building portlets with Jetspeed 2.0

If you are looking at open source based portlet 2.0 development, then a good starting point could be jetspeed 2.0

You can create a maven project with the custom archetype of jetspeed by following similar syntax as below.

mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-4:generate -DarchetypeGroupId=org.apache.portals.jetspeed-2 -DarchetypeArtifactId=jetspeed-archetype -DarchetypeVersion=2.2.0 -DartifactId=hello -Dpackage=com.springboard -DgroupId=com.springboard -Dversion=1.0-SNAPSHOT

You might come across an exception something like this

Caused by: java.lang.ClassNotFoundException: org.apache.jetspeed.tools.db.serializer.JetspeedSerializerApplicationImpl
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255)
at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274)
at org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at org.apache.jetspeed.maven.utils.Serializer.execute(Serializer.java:73)
... 19 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9 seconds


the fix is that db plugin dependency is missing, I got rid of it by adding the dependency.


org.apache.portals.jetspeed-2
jetspeed-db-tools
${org.apache.portals.jetspeed.version}



Do not forget to add repository (might be optional).

central
central
http://repo1.maven.org/maven2