diff --git a/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java b/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java
index 65675df..416832c 100644
--- a/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java
+++ b/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java
@@ -25,8 +25,6 @@
 import java.util.List;
 import java.util.Map;
 
-import javax.annotation.Resource;
-
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.continuum.buildagent.buildcontext.BuildContext;
 import org.apache.continuum.buildagent.buildcontext.manager.BuildContextManager;
@@ -43,24 +41,33 @@
 import org.codehaus.plexus.util.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Service;
 
-@Service("continuumBuildAgentService")
+/**
+ * @plexus.component role="org.apache.continuum.buildagent.ContinuumBuildAgentService"
+ */
 public class ContinuumBuildAgentServiceImpl
     implements ContinuumBuildAgentService
 {
     private Logger log = LoggerFactory.getLogger( this.getClass() );
 
-    @Resource
+    /**
+     * @plexus.requirement
+     */
     private BuildAgentConfigurationService buildAgentConfigurationService;
 
-    @Resource
+    /**
+     * @plexus.requirement
+     */
     private BuildAgentManager buildAgentManager;
 
-    @Resource
+    /**
+     * @plexus.requirement
+     */
     private BuildAgentTaskQueueManager buildAgentTaskQueueManager;
 
-    @Resource
+    /**
+     * @plexus.requirement
+     */
     private BuildContextManager buildContextManager;
 
     public void buildProjects( List<Map> projectsBuildContext )
diff --git a/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/DefaultBuildAgentManager.java b/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/DefaultBuildAgentManager.java
index a3cc13f..98cafcf 100644
--- a/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/DefaultBuildAgentManager.java
+++ b/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/DefaultBuildAgentManager.java
@@ -25,8 +25,6 @@
 import java.util.List;
 import java.util.Map;
 
-import javax.annotation.Resource;
-
 import org.apache.continuum.buildagent.buildcontext.BuildContext;
 import org.apache.continuum.buildagent.configuration.BuildAgentConfigurationService;
 import org.apache.continuum.buildagent.taskqueue.manager.BuildAgentTaskQueueManager;
@@ -47,21 +45,28 @@
 import org.codehaus.plexus.util.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Service;
 
-@Service("buildAgentManager")
+/**
+ * @plexus.component role="org.apache.continuum.buildagent.manager.BuildAgentManager" role-hint="default"
+ */
 public class DefaultBuildAgentManager
     implements BuildAgentManager
 {
     private Logger log = LoggerFactory.getLogger( this.getClass() );
 
-    @Resource
+    /**
+     * @plexus.requirement
+     */
     private ActionManager actionManager;
 
-    @Resource
+    /**
+     * @plexus.requirement
+     */
     private BuildAgentConfigurationService buildAgentConfigurationService;
 
-    @Resource
+    /**
+     * @plexus.requirement
+     */
     private BuildAgentTaskQueueManager buildAgentTaskQueueManager;
 
     public void prepareBuildProjects( List<BuildContext> buildContexts)
