ふ~、ようやくたどり着いた。大変だったよ。LiferayがGlassFishで動くと、いい顔をさせておくわけにはいかんし。WebLogic では作るのが面倒でやめたけど、GlassFishの方ではがんばって、GlassFish用のログインモジュールを作った(これで結構、クラスローダーにはまったけど)。あとは、GlassFishが:をURLに使わせてくれないので、これまた、GlassFish用のPortalURLを用意した。ポートレットの配備方法については、まだ、改善の余地がある気がするけど、それはまた今度。PALポータルで動くので Jetspeed2でも動くと思うのだけど、いくつか追加したものをPALポータルから持っていく必要があります(たぶん、Jetspeed 2.2 にはそれらを入れると思います)。そんな感じで、手順は以下のような感じで、PALポータル 1.0.3 で動くと思います(今月中に1.0.3をリリースするつもり)。
$ java -Xmx256m -jar /tmp/glassfish-installer-v2ur1-b09d-linux.jar $ mv glassfish/ glassfish-v2ur1 $ cd glassfish-v2ur1/ $ chmod -R +x lib/ant/bin $ lib/ant/bin/ant -f setup.xml $ cp /tmp/Portal/shared/lib/jetspeed-* domains/domain1/lib/ $ cp /tmp/Portal/shared/lib/p* domains/domain1/lib/ $ cp -r /tmp/Portal/webapps/palportal webapps/ $ vi webapps/palportal/WEB-INF/assembly/security-providers.xml <!--constructor-arg index="2"><value>login.conf</value></constructor-arg--> <constructor-arg index="2"><ref bean="org.apache.jetspeed.security.spi.CredentialHandler"/></constructor-arg> <constructor-arg index="3"><ref bean="org.apache.jetspeed.security.spi.UserSecurityHandler"/></constructor-arg> $ vi domains/domain1/config/login.conf Jetspeed { org.apache.jetspeed.security.impl.GlassFishLoginModule required; }; $ vi webapps/palportal/WEB-INF/assembly/deployment.xml <!-- <bean id="org.apache.jetspeed.tools.pamanager.servletcontainer.ApplicationServerManager" class="org.apache.jetspeed.tools.pamanager.servletcontainer.TomcatManager" init-method="start" destroy-method="stop" > <constructor-arg index="0"><value>${autodeployment.catalina.base}</value></constructor-arg> <constructor-arg index="1"><value>${autodeployment.catalina.engine}</value></constructor-arg> <constructor-arg index="2"><value>${autodeployment.server}</value></constructor-arg> <constructor-arg index="3"><value>${autodeployment.port}</value></constructor-arg> <constructor-arg index="4"><value>${autodeployment.user}</value></constructor-arg> <constructor-arg index="5"><value>${autodeployment.password}</value></constructor-arg> </bean> --> <bean id="org.apache.jetspeed.tools.pamanager.servletcontainer.ApplicationServerManager" class="org.apache.jetspeed.tools.pamanager.servletcontainer.GlassFishManager" init-method="start" /> $ vi webapps/palportal/WEB-INF/assembly/portal-url-generation.xml <bean id="PortalURL" class="org.apache.jetspeed.container.url.impl.GlassFishPathInfoEncodingPortalURL" $ cp /tmp/jetspeed-security-glassfish-2.1.3.jar domains/domain1/lib/ $ pushd domains/domain1/lib/classes/ $ jar xvf ../jetspeed-security-glassfish-2.1.3.jar $ rm -r META-INF/ $ mkdir -p ../../../../webapps/palportal/WEB-INF/classes/org/apache/jetspeed/security/impl/ $ mv ./org/apache/jetspeed/security/impl/GlassFishLoginModule.class ../../../../webapps/palportal/WEB-INF/classes/org/apache/jetspeed/security/impl/ $ rm ../jetspeed-security-glassfish-2.1.3.jar $ popd $ cp /tmp/mysql-connector-java-5.0.4.jar domains/domain1/lib/ $ vi domains/domain1/config/domain.xml <java-config classpath-suffix="${com.sun.aas.instanceRoot}/lib/classes" ... $ ./bin/asadmin start-domain domain1 $ echo adminadmin > passwordfile $ ./bin/asadmin create-auth-realm --classname org.apache.jetspeed.security.impl.GlassFishRealm --user admin --passwordfile passwordfile --host localhost --port 4848 --property "jaas-context=Jetspeed:auth-type=jetspeed" Jetspeed $ ./bin/asadmin stop-domain domain1 $ ./bin/asadmin start-domain domain1 -> Create Connection Pool(JetspeedDSPool) and JDBC Resource(jdbc/jetspeed) $ ./bin/asadmin deploydir --user admin --passwordfile passwordfile webapps/palportal/ $ pushd webapps/ $ mkdir pal-admin $ mkdir pal-wcm $ cd pal-admin $ jar xvf ../pal-admin.war $ cd ../pal-wcm $ jar xvf ../pal-wcm.war $ popd $ rm webapps/pal-admin/WEB-INF/lib/geronimo-ejb_2.1_spec-1.0.jar $ ./bin/asadmin deploydir --user admin --passwordfile passwordfile webapps/pal-admin $ ./bin/asadmin deploydir --user admin --passwordfile passwordfile webapps/pal-wcm
そうそう、Teeda なポートレットの pal-admin が動いているので、Teeda のアプリも GlassFish で動くと思う(たぶん)。