The GBuild Agent is essentially an extension to Continuum as it reuses several Continuum and Maven components. As these components are written against the Plexus component architecture, the GBuild Agent is also written as a Plexus application. In Plexus, the configuration of the components in the application can be overridden in the application.xml.
The application.xml of the GBuild Agent can be found at this location once the agent has been started for the first time.
gbuild-agent-1.0-SNAPSHOT/apps/gbuild-agent/conf/application.xml
application.xml
<application> <load-on-start> <component> <role>org.apache.geronimo.gbuild.agent.BuildAgent</role> <role-hint>build-executor</role-hint> </component> <!-- <component> <role>org.apache.geronimo.gbuild.agent.BuildAgent</role> <role-hint>build-producer</role-hint> </component> <component> <role>org.apache.geronimo.gbuild.agent.BuildAgent</role> <role-hint>build-results</role-hint> </component> <component> <role>org.apache.geronimo.gbuild.agent.BuildAgent</role> <role-hint>ping-monitor</role-hint> </component> <component> <role>org.apache.geronimo.gbuild.agent.BuildAgent</role> <role-hint>build-activity</role-hint> </component> --> </load-on-start> <resources> <jar-repository>${plexus.home}/lib</jar-repository> </resources> <components> <component> <role>org.apache.geronimo.gbuild.agent.ClientManager</role> <implementation>org.apache.geronimo.gbuild.agent.ClientManager</implementation> <configuration> <broker-url>tcp://ci.gbuild.org:16161</broker-url> <ping-interval>300000</ping-interval> <reconnect-attempts>10</reconnect-attempts> <reconnect-delay>600000</reconnect-delay> </configuration> </component> <component> <role>org.apache.geronimo.gbuild.agent.BuildAgent</role> <role-hint>build-executor</role-hint> <implementation>org.apache.geronimo.gbuild.agent.ContinuumBuildAgent</implementation> <requirements> <requirement> <role>org.apache.geronimo.gbuild.agent.ClientManager</role> </requirement> <requirement> <role>org.apache.geronimo.gbuild.agent.BuildAgentExtentionManager</role> </requirement> <requirement> <role>org.apache.maven.continuum.buildcontroller.BuildController</role> </requirement> <requirement> <role>org.apache.maven.continuum.configuration.ConfigurationService</role> </requirement> </requirements> <configuration> <contributor>Unknown</contributor> <admin-address>scm@geronimo.apache.org</admin-address> <build-task-queue>BUILD.TASKS</build-task-queue> <build-results-topic>BUILD.RESULTS</build-results-topic> <working-directory>${plexus.home}/agent/work</working-directory> <build-output-directory>${plexus.home}/agent/output</build-output-directory> </configuration> </component> <component> <role>org.apache.maven.continuum.store.ContinuumStore</role> <role-hint>agent-store</role-hint> <implementation>org.apache.geronimo.gbuild.agent.ThreadContextContinuumStore</implementation> </component> <component> <role>org.apache.maven.continuum.notification.ContinuumNotificationDispatcher</role> <implementation>org.apache.geronimo.gbuild.agent.MockContinuumNotificationDispatcher</implementation> </component> <component> <role>org.apache.geronimo.gbuild.agent.BuildAgentExtension</role> <role-hint>file-include</role-hint> <implementation>org.apache.geronimo.gbuild.agent.FileIncludeExtension</implementation> <requirements> <requirement> <role>org.apache.maven.continuum.configuration.ConfigurationService</role> </requirement> </requirements> <configuration> <pattern>^include.*</pattern> </configuration> </component> <component> <role>org.apache.geronimo.gbuild.agent.BuildAgentExtension</role> <role-hint>general-headers</role-hint> <implementation>org.apache.geronimo.gbuild.agent.HeaderIncludeExtension</implementation> <configuration> <pattern>^(project|build|header).*</pattern> </configuration> </component> <!-- | Build Producer --> <component> <role>org.apache.geronimo.gbuild.agent.BuildAgent</role> <role-hint>build-producer</role-hint> <implementation>org.apache.geronimo.gbuild.agent.PropertiesBuildTaskProducer</implementation> <requirements> <requirement> <role>org.apache.geronimo.gbuild.agent.ClientManager</role> </requirement> </requirements> <configuration> <build-task-queue>BUILD.TASKS</build-task-queue> <include-prefix>include.</include-prefix> <header-prefix>header.</header-prefix> <watch-directory>${plexus.home}/tasks</watch-directory> <poll-interval>10000</poll-interval> </configuration> </component> <!-- | Build Results --> <component> <role>org.apache.geronimo.gbuild.agent.BuildAgent</role> <role-hint>build-results</role-hint> <implementation>org.apache.geronimo.gbuild.agent.BuildResultsContinuumAgent</implementation> <requirements> <requirement> <role>org.apache.geronimo.gbuild.agent.ClientManager</role> </requirement> <requirement> <role>org.apache.geronimo.gbuild.agent.BuildResultsExtensionManager</role> </requirement> </requirements> <configuration> <build-results-topic>BUILD.RESULTS</build-results-topic> </configuration> </component> <component> <role>org.apache.geronimo.gbuild.agent.BuildResultsExtension</role> <role-hint>write-include-file</role-hint> <implementation>org.apache.geronimo.gbuild.agent.WriteIncludeFileExtension</implementation> <configuration> <include-pattern>^include.*</include-pattern> <results-directory>${plexus.home}/results</results-directory> <date-format>yyyy-MM</date-format> <file-name-template>{date}/{project.name}/{project.version}/{build.name}-{build.id}.properties</file-name-template> </configuration> </component> <!-- | Ping monitor --> <component> <role>org.apache.geronimo.gbuild.agent.BuildAgent</role> <role-hint>ping-monitor</role-hint> <implementation>org.apache.geronimo.gbuild.agent.PingMonitorAgent</implementation> <requirements> <requirement> <role>org.apache.geronimo.gbuild.agent.ClientManager</role> </requirement> </requirements> </component> <!-- | Logger manager --> <component> <role>org.codehaus.plexus.logging.LoggerManager</role> <implementation>org.codehaus.plexus.logging.log4j.Log4JLoggerManager</implementation> <lifecycle-handler>basic</lifecycle-handler> <configuration> <threshold>DEBUG</threshold> <default-appender>console,rolling</default-appender> <appenders> <appender> <id>console</id> <threshold>DEBUG</threshold> <type>org.apache.log4j.ConsoleAppender</type> <conversion-pattern>%d [%t] %-5p %-30c{1} - %m%n</conversion-pattern> </appender> <appender> <id>rolling</id> <threshold>DEBUG</threshold> <type>org.apache.log4j.RollingFileAppender</type> <conversion-pattern>%-4r [%t] %-5p %c %x - %m%n</conversion-pattern> <properties> <property> <name>file</name> <value>${plexus.home}/logs/gbuild-agent.log</value> </property> <property> <name>append</name> <value>true</value> </property> <property> <name>maxBackupIndex</name> <value>10</value> </property> <property> <name>maxFileSize</name> <value>100KB</value> </property> </properties> </appender> </appenders> <levels> <level> <hierarchy>org.apache.geronimo.gbuild.agent.BuildAgent:build-activity</hierarchy> <level>INFO</level> </level> <level> <hierarchy>org.apache.geronimo.gbuild.agent.BuildAgentExtension:file-include</hierarchy> <level>INFO</level> </level> <level> <hierarchy>org.apache.geronimo.gbuild.agent.BuildAgentExtension:general-headers</hierarchy> <level>INFO</level> </level> <level> <hierarchy>org.apache.geronimo.gbuild.agent.BuildResultsExtension:write-include-file</hierarchy> <level>INFO</level> </level> <level> <hierarchy>org.apache.geronimo.gbuild.agent.BuildAgentExtension:file-include</hierarchy> <level>INFO</level> </level> <level> <hierarchy>org.activemq</hierarchy> <level>WARN</level> </level> </levels> </configuration> </component> </components> </application>