I have a whole new set of questions now :)
I am using continuum Version 1.1-beta-3. I have jar'ed up my code and
added the jar to apps/continuum/webapp/WEB-INF/lib/. I have used the
web interface to continuum to set up the IRC notifier and that is
working. I don't see how to configure the project to call my notifier.
Also, can you provide some insight on what I need to do to get a gui
set up for my notifier. I assume this also requires some additional
configuration to persist values.
Thanks in advance,
Mike Masters
##################################################################
# I have created the following test class:
##################################################################
package com.rallydev.integration.build.continuum;
import
org.apache.maven.continuum.notification.AbstractContinuumNotifier;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
public class RallyContinuumNotifier
extends AbstractContinuumNotifier
{
public void sendNotification( String source, Set recipients, Map
configuration, Map context ) {
getLogger().info("THIS IS MY TEST from sendNotification 4
arg");
}
public void sendNotification( String arg0, Set arg1, Properties
arg2 ) {
getLogger().info("THIS IS MY TEST from sendNotification 3
arg");
}
}
##################################################################
# I have the following in apps/continuum/conf/application.xml
##################################################################
<application>
<services>
<service>
<id>jetty</id>
<configuration>
<webapps>
<webapp>
<file>${plexus.home}/lib/continuum-webapp-1.1-
beta-3.war</file>
<context>/continuum</context>
<extraction-path>${plexus.home}/webapp</extraction-path>
<standardWebappClassloader>true</standardWebappClassloader>
<listeners>
<http-listener>
<port>${jetty.port}</port>
</http-listener>
<!--
<proxy-http-listener>
<port>8090</port>
<proxy-host>localhost</proxy-host>
<proxy-port>80</proxy-port>
</proxy-http-listener>
-->
</listeners>
</webapp>
</webapps>
</configuration>
</service>
</services>
<components>
<!--
| The rally notifier
|-->
<component>
<role>org.codehaus.plexus.notification.notifier.Notifier</role>
<role-hint>rally-continuum</role-hint>
<implementation>com.rallydev.integration.build.continuum.RallyContinuumN
otifier</implementation>
<requirements>
<requirement>
</requirement>
</requirements>
<configuration>
<alwaysSend>true</alwaysSend>
</configuration>
</component>
</components>
</application>
On Oct 5, 2007, at 1:15 AM, Emmanuel Venisse wrote:
Michael Masters a écrit :
I've looked at JabberContinuumNotifier and I have some questions
on how I create my own notifier.
1. Once I write my notifier by extending
AbstractContinuumNotifier, how do I install it. In other words,
where do I put it the class file? Can I jar up all my classes and
place them somewhere?
To build your notifier, run 'mvn clean install' on your notifier
project to create the jar then put it under apps/continuum/webapp/
WEB-INF/lib/
2. Can someone explain how I am suppose to configure my notifier
in apps/continuum/conf/application.xml?
<component>
<role>org.codehaus.plexus.notification.notifier.Notifier</role>
<role-hint>your_notifier_id</role-hint>
<implementation>package.notifier_class</implementation>
</component>
* It looks like the <requirement> tag is suppose to define some
classes that my notifier is dependent on. Is this true?
If you have some requirement in your class like 'ConfiguredService'
declared like that in jabber notifier class:
/**
* @plexus.requirement
*/
private ConfigurationService configurationService;
you must add it in the <requirement> tag in application.xml, so
plexus will set and initialize configurationService automatically.
* What's allowed in the <configuration> tag? For example, I need
things like login ID, password, and URL to configure the notifier.
I assume I add tags for this in <configuration>. Is this true? If
so, then how do I get to this information from my notifier?
The configuration part is to initialize your notifier when it is
created by plexus. If in your configuration, you add
<password>myPassword</password>, plexus will initialize the private
password field in your class automatically.
Plexus site: http://plexus.codehaus.org
If you want to use your notifier from the UI, you'll need to add
some new JSPs in the webapp and modify some other to add your
notifier.
Emmanuel