Friday, August 22, 2008

Continuum 1.1 on Tomcat 6 with GMail notification

I "just" wanted to use my gmail account to send build errors to my real account until the integration server is in the right network that i can configure right the mailserver. Making this work took a bit longer. As you can see in the previous post, I skipped mailserver config in archiva. This time, I had to do it. First, you need activation-1.1.jar and mail.jar in your tomcat lib directory. ("folder" is windows-speak, isn't it?)

The jndi mail config in context.xml looks like this:

<Resource name="mail/Session"
           type="javax.mail.Session"
           mail.transport.protocol="smtp"
           mail.smtp.host="smtp.gmail.com"
           mail.smtp.auth="true"
           mail.smtp.port="465"
           mail.smtp.socketFactory.port="465"
           mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
           mail.smtp.user="something@gmail.com"
           password="makemyday"
           mail.smtp.starttls.enable="true"/>


Note the user is "mail.smtp.user" but the password is just "password". (For more on this, check here and here.

Great. But that's not all. There's a bug in the mailing system causing the password
not to be set right. Or something. With the patch provided, you'll have to recreate some jars.

Get the source:

svn co http://svn.codehaus.org/plexus/tags/plexus-mail-sender-1.0-alpha-7

find JndiJavamailMailSender.java and change the return line to return s; according to the patch (or just use the patch).
Run mvn package and copy the resulting jar files plexus-mail-sender-javamail-1.0-alpha-7.jar and plexus-mail-sender-api-1.0-alpha-7.jar to your continuum installations lib directory. (er, i extracted the .war file into my $CATALINA_HOME/webapps, if you're running the war itself, you need to repackage it).

Finally, tweak the sender in WEB-INF/classes/META-INF/plexus/application.xml, look
for the tags from-mailbox and from-name.
That's about it.

Wednesday, August 20, 2008

Installing archiva/continuum with tomcat+mysql on ubuntu

continuum documentation is kinda ... not finished yet. I'm in the process of installing the archiva/continuum double on an recent ubuntu server (hardy).
Database is a mysql 5.0 which I installed before.

Some trouble occurred when trying to connect the archiva webapp (which i installed first) to the database. For this, check /etc/my.cnf for the bind address as well as
the connect properties of the archiva database user (self-reminder). It can make a
difference if you connect at 127.0.0.1, localhost or the "real" IP.
Also, you may have to allow the port through the firewall (the "ufw allow" thing).

For archiva, I created the file /usr/local/tomcat/conf/Catalina/localhost/archiva.xml (with /usr/local/tomcat being my CATALINA_HOME):

<Context path="/archiva"quot;>
<Resource name="jdbc/users"
auth="Container"
type="javax.sql.DataSource"
username="archiva"
password="freetibet"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/archiva" />

<Resource name="jdbc/archiva"
auth="Container"
type="javax.sql.DataSource"
username="archiva"
password="freetibet"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/archiva" />

<Resource name="mail/Session"
auth="Container"
type="javax.mail.Session"
mail.smtp.host="localhost"/>
</Context>


For continuum, just copy the file, rename it to continuum.xml, change the username
accordingly and switch jdbc/archiva to jdbc/continuum.

If you are using Tomcat 6.0.18 beware. Due to these bugs (MRM-905 and CONTINUUM-1844) you will have to apply
two patches or just fire up some sed commands to replace "empty(" with "empty ("
and "not(" with "not (" in the jsp and tag directories.

I didn't put the webapps into the CATALINA_HOME like the documentation tell you to,
but into the standard CATALINA_HOME/webapps Folder.

Be sure to put the necessary libs into CATALINA_HOME/lib: mail.jar, activation.jar
and the mysql-connector.

Boy, this post is a mess.