Michael Masters a écrit :
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.

If you added a irc notifier to your project group or your project, it will be 
used by continuum for each build. You don't need more configuration.


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.

To add a notifier in the UI, you can follow this steps:

- modify WEB-INF/jsp/notifier/notifierSelectType.jsp to add your notifier in 
the select field, the key is the role_hint of your component(rally-continuum)
- In WEB-INF/classes/xwork.xml, add a new result in addProjectNotifier and in addProjectGroupNotifier 
actions (<result 
name="rally-continuum_input">/WEB-INF/jsp/notifier/notifierRally.jsp</result>)
- Create the jsp WEB-INF/jsp/notifier/notifierRally.jsp
- Create IrcProjectNotifierEditAction and IrcGroupNotifierEditAction classes 
with edit and save methods
- Declare edit and save actions for the group in xwork.xml:
    <action name="rallyProjectGroupNotifierEdit" class="rallyGroupNotifierEdit" 
method="edit">
      <result name="success">/WEB-INF/jsp/notifier/notifierRally.jsp</result>
    </action>

    <action name="rallyProjectGroupNotifierSave" class="rallyGroupNotifierEdit" 
method="save">
      <result name="input">/WEB-INF/jsp/notifier/notifierRally.jsp</result>
      <result name="success" type="chain">projectGroupNotifier</result>
    </action>
- Add <result name="rally-component_input" 
type="chain">rallyProjectGroupNotifierEdit</result> in editProjectGroupNotifier action in 
xwork.xml
- Declare edit and save actions for the project in xwork.xml:
    <action name="rallyProjectNotifierEdit" class="rallyNotifierEdit" 
method="edit">
      <result name="success">/WEB-INF/jsp/notifier/notifierRally.jsp</result>
    </action>

    <action name="rallyProjectNotifierSave" class="rallyNotifierEdit" 
method="save">
      <result name="success" type="chain">projectView</result>
      <result name="to_group_page" type="chain">projectGroupNotifier</result>
    </action>
- Add <result name="rally-component_input" 
type="chain">rallyProjectNotifierEdit</result> in editProjectNotifier action in xwork.xml

- Restart Continuum

Emmanuel


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.RallyContinuumNotifier</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





Reply via email to