Return-Path: X-Original-To: apmail-maven-commits-archive@www.apache.org Delivered-To: apmail-maven-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1F6B4C34F for ; Tue, 8 May 2012 11:45:07 +0000 (UTC) Received: (qmail 23975 invoked by uid 500); 8 May 2012 11:45:06 -0000 Delivered-To: apmail-maven-commits-archive@maven.apache.org Received: (qmail 23907 invoked by uid 500); 8 May 2012 11:45:06 -0000 Mailing-List: contact commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@maven.apache.org Delivered-To: mailing list commits@maven.apache.org Received: (qmail 23899 invoked by uid 99); 8 May 2012 11:45:06 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 08 May 2012 11:45:06 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 08 May 2012 11:44:59 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id E1FC12388CAE for ; Tue, 8 May 2012 11:42:54 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r816538 [28/32] - in /websites/production/maventest/content/plugins/maven-release-plugin-latest: ./ apidocs/ apidocs/org/apache/maven/plugins/release/ apidocs/org/apache/maven/plugins/release/class-use/ cobertura/ css/ examples/ testapidocs... Date: Tue, 08 May 2012 11:42:45 -0000 To: commits@maven.apache.org From: hboutemy@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120508114254.E1FC12388CAE@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Modified: websites/production/maventest/content/plugins/maven-release-plugin-latest/xref/org/apache/maven/plugins/release/AbstractReleaseMojo.html ============================================================================== --- websites/production/maventest/content/plugins/maven-release-plugin-latest/xref/org/apache/maven/plugins/release/AbstractReleaseMojo.html (original) +++ websites/production/maventest/content/plugins/maven-release-plugin-latest/xref/org/apache/maven/plugins/release/AbstractReleaseMojo.html Tue May 8 11:42:40 2012 @@ -103,21 +103,21 @@ 93 private String tagBase; 94 95 /** -96 * @parameter expression="${basedir}" +96 * @parameter default-value="${basedir}" 97 * @required 98 * @readonly 99 */ -100 protected File basedir; +100 private File basedir; 101 102 /** -103 * @parameter expression="${settings}" +103 * @parameter default-value="${settings}" 104 * @required 105 * @readonly 106 */ -107 protected Settings settings; +107 private Settings settings; 108 109 /** -110 * @parameter expression="${project}" +110 * @parameter default-value="${project}" 111 * @required 112 * @readonly 113 */ @@ -151,117 +151,117 @@ 141 private String scmCommentPrefix; 142 143 /** -144 * @parameter expression="${reactorProjects}" +144 * @parameter default-value="${reactorProjects}" 145 * @required 146 * @readonly 147 */ -148 protected List reactorProjects; +148 private List<MavenProject> reactorProjects; 149 150 /** -151 * List of provider implementations. -152 * -153 * @parameter -154 * @since 2.0-beta-6 -155 */ -156 private Map providerImplementations; -157 -158 /** -159 * The M2_HOME parameter to use for forked Maven invocations. -160 * -161 * @parameter default-value="${maven.home}" -162 * @since 2.0-beta-8 -163 */ -164 protected File mavenHome; -165 -166 /** -167 * The JAVA_HOME parameter to use for forked Maven invocations. -168 * -169 * @parameter default-value="${java.home}" -170 * @since 2.0-beta-8 -171 */ -172 protected File javaHome; -173 -174 /** -175 * The command-line local repository directory in use for this build (if specified). -176 * -177 * @parameter default-value="${maven.repo.local}" -178 * @since 2.0-beta-8 -179 */ -180 protected File localRepoDirectory; -181 -182 /** -183 * Role hint of the {@link org.apache.maven.shared.release.exec.MavenExecutor} implementation to use. -184 * -185 * @parameter expression="${mavenExecutorId}" default-value="invoker" -186 * @since 2.0-beta-8 -187 */ -188 protected String mavenExecutorId; -189 -190 /** -191 * Use a local checkout instead of doing a checkout from the upstream repository. -192 * ATTENTION: This will only work with distributed SCMs which support the file:// protocol -193 * like e.g. git, jgit or hg! -194 * -195 * TODO: we should think about having the defaults for the various SCM providers provided via modello! +151 * Add a new or overwrite the default implementation per provider. +152 * The key is the scm prefix and the value is the role hint of the {@link org.apache.maven.scm.provider.ScmProvider}. +153 * +154 * @parameter +155 * @since 2.0-beta-6 +156 * @see ScmManager#setScmProviderImplementation(String, String) +157 */ +158 private Map<String, String> providerImplementations; +159 +160 /** +161 * The {@code M2_HOME} parameter to use for forked Maven invocations. +162 * +163 * @parameter default-value="${maven.home}" +164 * @since 2.0-beta-8 +165 */ +166 protected File mavenHome; +167 +168 /** +169 * The {@code JAVA_HOME} parameter to use for forked Maven invocations. +170 * +171 * @parameter default-value="${java.home}" +172 * @since 2.0-beta-8 +173 */ +174 private File javaHome; +175 +176 /** +177 * The command-line local repository directory in use for this build (if specified). +178 * +179 * @parameter default-value="${maven.repo.local}" +180 * @since 2.0-beta-8 +181 */ +182 private File localRepoDirectory; +183 +184 /** +185 * Role hint of the {@link org.apache.maven.shared.release.exec.MavenExecutor} implementation to use. +186 * +187 * @parameter expression="${mavenExecutorId}" default-value="invoker" +188 * @since 2.0-beta-8 +189 */ +190 private String mavenExecutorId; +191 +192 /** +193 * Use a local checkout instead of doing a checkout from the upstream repository. +194 * ATTENTION: This will only work with distributed SCMs which support the file:// protocol +195 * like e.g. git, jgit or hg! 196 * -197 * @parameter expression="${localCheckout}" default-value="false" -198 * @since 2.0 -199 */ -200 private boolean localCheckout; -201 -202 /** -203 * Implemented with git will or not push changes to the upstream repository. -204 * <code>true</code> by default to preserve backward compatibility. -205 * @parameter expression="${pushChanges}" default-value="true" -206 * @since 2.1 -207 */ -208 private boolean pushChanges = true; -209 -210 /** -211 * The SCM manager. -212 * -213 * @component -214 */ -215 private ScmManager scmManager; -216 -217 /** -218 * @parameter expression="${session}" -219 * @readonly -220 * @required -221 * @since 2.0 -222 */ -223 protected MavenSession session; -224 -225 -226 /** -227 * Gets the enviroment settings configured for this release. -228 * -229 * @return The release environment, never <code>null</code>. -230 */ -231 protected ReleaseEnvironment getReleaseEnvironment() -232 { -233 return new DefaultReleaseEnvironment().setSettings( settings ) -234 .setJavaHome( javaHome ) -235 .setMavenHome( mavenHome ) -236 .setLocalRepositoryDirectory( localRepoDirectory ) -237 .setMavenExecutorId( mavenExecutorId ); -238 } -239 -240 /** -241 * {@inheritDoc} -242 */ -243 public void execute() -244 throws MojoExecutionException, MojoFailureException -245 { -246 if ( providerImplementations != null ) -247 { -248 for ( Iterator i = providerImplementations.keySet().iterator(); i.hasNext(); ) -249 { -250 String providerType = (String) i.next(); -251 String providerImplementation = (String) providerImplementations.get( providerType ); -252 getLog().info( "Change the default '" + providerType + "' provider implementation to '" -253 + providerImplementation + "'." ); -254 scmManager.setScmProviderImplementation( providerType, providerImplementation ); +197 * TODO: we should think about having the defaults for the various SCM providers provided via modello! +198 * +199 * @parameter expression="${localCheckout}" default-value="false" +200 * @since 2.0 +201 */ +202 private boolean localCheckout; +203 +204 /** +205 * Implemented with git will or not push changes to the upstream repository. +206 * <code>true</code> by default to preserve backward compatibility. +207 * @parameter expression="${pushChanges}" default-value="true" +208 * @since 2.1 +209 */ +210 private boolean pushChanges = true; +211 +212 /** +213 * The SCM manager. +214 * +215 * @component +216 */ +217 private ScmManager scmManager; +218 +219 /** +220 * @parameter default-value="${session}" +221 * @readonly +222 * @required +223 * @since 2.0 +224 */ +225 protected MavenSession session; +226 +227 +228 /** +229 * Gets the enviroment settings configured for this release. +230 * +231 * @return The release environment, never <code>null</code>. +232 */ +233 protected ReleaseEnvironment getReleaseEnvironment() +234 { +235 return new DefaultReleaseEnvironment().setSettings( settings ) +236 .setJavaHome( javaHome ) +237 .setMavenHome( mavenHome ) +238 .setLocalRepositoryDirectory( localRepoDirectory ) +239 .setMavenExecutorId( mavenExecutorId ); +240 } +241 +242 /** +243 * {@inheritDoc} +244 */ +245 public void execute() +246 throws MojoExecutionException, MojoFailureException +247 { +248 if ( providerImplementations != null ) +249 { +250 for ( Map.Entry<String, String> providerEntry : providerImplementations.entrySet() ) +251 { +252 getLog().info( "Change the default '" + providerEntry.getKey() + "' provider implementation to '" +253 + providerEntry.getValue() + "'." ); +254 scmManager.setScmProviderImplementation( providerEntry.getKey(), providerEntry.getValue() ); 255 } 256 } 257 } @@ -292,134 +292,140 @@ 282 283 descriptor.setPushChanges( pushChanges ); 284 -285 List profiles = project.getActiveProfiles(); -286 -287 String arguments = this.arguments; -288 if ( profiles != null && !profiles.isEmpty() ) -289 { -290 if ( !StringUtils.isEmpty( arguments ) ) -291 { -292 arguments += " -P "; -293 } -294 else -295 { -296 arguments = "-P "; -297 } -298 -299 for ( Iterator it = profiles.iterator(); it.hasNext(); ) -300 { -301 Profile profile = (Profile) it.next(); -302 -303 arguments += profile.getId(); -304 if ( it.hasNext() ) -305 { -306 arguments += ","; -307 } -308 } -309 -310 String additionalProfiles = getAdditionalProfiles(); -311 if ( additionalProfiles != null ) -312 { -313 if ( !profiles.isEmpty() ) -314 { -315 arguments += ","; -316 } -317 arguments += additionalProfiles; -318 } -319 } -320 descriptor.setAdditionalArguments( arguments ); -321 -322 return descriptor; -323 } -324 -325 /** -326 * Gets the comma separated list of additional profiles for the release build. -327 * -328 * @return additional profiles to enable during release -329 */ -330 protected String getAdditionalProfiles() -331 { -332 return null; -333 } -334 -335 /** -336 * Sets the component used to perform release actions. -337 * -338 * @param releaseManager The release manager implementation to use, must not be <code>null</code>. -339 */ -340 void setReleaseManager( ReleaseManager releaseManager ) -341 { -342 this.releaseManager = releaseManager; -343 } -344 -345 /** -346 * Gets the effective settings for this build. -347 * -348 * @return The effective settings for this build, never <code>null</code>. -349 */ -350 Settings getSettings() -351 { -352 return settings; -353 } -354 -355 /** -356 * Sets the base directory of the build. -357 * -358 * @param basedir The build's base directory, must not be <code>null</code>. -359 */ -360 public void setBasedir( File basedir ) -361 { -362 this.basedir = basedir; -363 } -364 -365 /** -366 * Gets the list of projects in the build reactor. -367 * -368 * @return The list of reactor project, never <code>null</code>. -369 */ -370 public List getReactorProjects() -371 { -372 return reactorProjects; -373 } -374 -375 /** -376 * Add additional arguments. -377 * -378 * @param argument The argument to add, must not be <code>null</code>. -379 */ -380 protected void addArgument( String argument ) -381 { -382 if ( arguments != null ) -383 { -384 arguments += " " + argument; -385 } -386 else -387 { -388 arguments = argument; -389 } -390 } -391 -392 /** -393 * This method takes some of the release configuration picked up from the command line system properties and copies -394 * it into the release config object. -395 * -396 * @param config The release configuration to merge the system properties into, must not be <code>null</code>. -397 * @param sysPropertiesConfig The configuration from the system properties to merge in, must not be -398 * <code>null</code>. -399 */ -400 protected void mergeCommandLineConfig( ReleaseDescriptor config, ReleaseDescriptor sysPropertiesConfig ) -401 { -402 // If the user specifies versions, these should override the existing versions -403 if ( sysPropertiesConfig.getReleaseVersions() != null ) -404 { -405 config.getReleaseVersions().putAll( sysPropertiesConfig.getReleaseVersions() ); -406 } -407 if ( sysPropertiesConfig.getDevelopmentVersions() != null ) -408 { -409 config.getDevelopmentVersions().putAll( sysPropertiesConfig.getDevelopmentVersions() ); -410 } -411 } -412 } +285 @SuppressWarnings("unchecked") +286 List<Profile> profiles = project.getActiveProfiles(); +287 +288 String arguments = this.arguments; +289 if ( profiles != null && !profiles.isEmpty() ) +290 { +291 if ( !StringUtils.isEmpty( arguments ) ) +292 { +293 arguments += " -P "; +294 } +295 else +296 { +297 arguments = "-P "; +298 } +299 +300 for ( Iterator<Profile> it = profiles.iterator(); it.hasNext(); ) +301 { +302 Profile profile = it.next(); +303 +304 arguments += profile.getId(); +305 if ( it.hasNext() ) +306 { +307 arguments += ","; +308 } +309 } +310 +311 String additionalProfiles = getAdditionalProfiles(); +312 if ( additionalProfiles != null ) +313 { +314 if ( !profiles.isEmpty() ) +315 { +316 arguments += ","; +317 } +318 arguments += additionalProfiles; +319 } +320 } +321 descriptor.setAdditionalArguments( arguments ); +322 +323 return descriptor; +324 } +325 +326 /** +327 * Gets the comma separated list of additional profiles for the release build. +328 * +329 * @return additional profiles to enable during release +330 */ +331 protected String getAdditionalProfiles() +332 { +333 return null; +334 } +335 +336 /** +337 * Sets the component used to perform release actions. +338 * +339 * @param releaseManager The release manager implementation to use, must not be <code>null</code>. +340 */ +341 void setReleaseManager( ReleaseManager releaseManager ) +342 { +343 this.releaseManager = releaseManager; +344 } +345 +346 /** +347 * Gets the effective settings for this build. +348 * +349 * @return The effective settings for this build, never <code>null</code>. +350 */ +351 Settings getSettings() +352 { +353 return settings; +354 } +355 +356 protected final File getBasedir() +357 { +358 return basedir; +359 } +360 +361 /** +362 * Sets the base directory of the build. +363 * +364 * @param basedir The build's base directory, must not be <code>null</code>. +365 */ +366 public void setBasedir( File basedir ) +367 { +368 this.basedir = basedir; +369 } +370 +371 /** +372 * Gets the list of projects in the build reactor. +373 * +374 * @return The list of reactor project, never <code>null</code>. +375 */ +376 public List<MavenProject> getReactorProjects() +377 { +378 return reactorProjects; +379 } +380 +381 /** +382 * Add additional arguments. +383 * +384 * @param argument The argument to add, must not be <code>null</code>. +385 */ +386 protected void addArgument( String argument ) +387 { +388 if ( arguments != null ) +389 { +390 arguments += " " + argument; +391 } +392 else +393 { +394 arguments = argument; +395 } +396 } +397 +398 /** +399 * This method takes some of the release configuration picked up from the command line system properties and copies +400 * it into the release config object. +401 * +402 * @param config The release configuration to merge the system properties into, must not be <code>null</code>. +403 * @param sysPropertiesConfig The configuration from the system properties to merge in, must not be +404 * <code>null</code>. +405 */ +406 protected void mergeCommandLineConfig( ReleaseDescriptor config, ReleaseDescriptor sysPropertiesConfig ) +407 { +408 // If the user specifies versions, these should override the existing versions +409 if ( sysPropertiesConfig.getReleaseVersions() != null ) +410 { +411 config.getReleaseVersions().putAll( sysPropertiesConfig.getReleaseVersions() ); +412 } +413 if ( sysPropertiesConfig.getDevelopmentVersions() != null ) +414 { +415 config.getDevelopmentVersions().putAll( sysPropertiesConfig.getDevelopmentVersions() ); +416 } +417 } +418 }
Modified: websites/production/maventest/content/plugins/maven-release-plugin-latest/xref/org/apache/maven/plugins/release/BranchReleaseMojo.html ============================================================================== --- websites/production/maventest/content/plugins/maven-release-plugin-latest/xref/org/apache/maven/plugins/release/BranchReleaseMojo.html (original) +++ websites/production/maventest/content/plugins/maven-release-plugin-latest/xref/org/apache/maven/plugins/release/BranchReleaseMojo.html Tue May 8 11:42:40 2012 @@ -164,95 +164,93 @@ 154 private boolean remoteTagging; 155 156 /** -157 * Additional files that will skipped when checking for +157 * A list of additional exclude filters that will be skipped when checking for 158 * modifications on the working copy. 159 * 160 * Is ignored, when checkModificationExcludes is set. 161 * -162 * -163 * @parameter -164 * @since 2.1 -165 */ -166 private String[] checkModificationExcludes; -167 -168 /** -169 * Command-line version of checkModificationExcludes -170 * -171 * -172 * @parameter expression="${checkModificationExcludeList}" -173 * @since 2.1 -174 */ -175 private String checkModificationExcludeList; -176 -177 /** -178 * Default version to use when preparing a release or a branch. -179 * -180 * @parameter expression="${releaseVersion}" -181 * @since 2.0 -182 */ -183 private String releaseVersion; -184 -185 /** -186 * Default version to use for new local working copy. -187 * -188 * @parameter expression="${developmentVersion}" -189 * @since 2.0 -190 */ -191 private String developmentVersion; -192 -193 /** -194 * {@inheritDoc} -195 */ -196 public void execute() -197 throws MojoExecutionException, MojoFailureException -198 { -199 super.execute(); -200 -201 ReleaseDescriptor config = createReleaseDescriptor(); -202 config.setAddSchema( addSchema ); -203 config.setScmUseEditMode( useEditMode ); -204 config.setUpdateDependencies( updateDependencies ); -205 config.setAutoVersionSubmodules( autoVersionSubmodules ); -206 config.setScmReleaseLabel( branchName ); -207 config.setScmBranchBase( branchBase ); -208 config.setBranchCreation( true ); -209 config.setUpdateBranchVersions( updateBranchVersions ); -210 config.setUpdateWorkingCopyVersions( updateWorkingCopyVersions ); -211 config.setUpdateVersionsToSnapshot( updateVersionsToSnapshot ); -212 config.setRemoteTagging( remoteTagging ); -213 config.setDefaultReleaseVersion( releaseVersion ); -214 config.setDefaultDevelopmentVersion( developmentVersion ); -215 config.setSuppressCommitBeforeTagOrBranch( suppressCommitBeforeBranch ); -216 -217 // Create a config containing values from the session properties (ie command line properties with cli). -218 ReleaseDescriptor sysPropertiesConfig -219 = ReleaseUtils.copyPropertiesToReleaseDescriptor( session.getExecutionProperties() ); -220 mergeCommandLineConfig( config, sysPropertiesConfig ); -221 -222 if ( checkModificationExcludeList != null ) -223 { -224 checkModificationExcludes = checkModificationExcludeList.replaceAll( "\\s", "" ).split( "," ); -225 } -226 -227 if ( checkModificationExcludes != null ) -228 { -229 config.setCheckModificationExcludes( Arrays.asList( checkModificationExcludes ) ); -230 } -231 -232 try -233 { -234 releaseManager.branch( config, getReleaseEnvironment(), reactorProjects, dryRun ); -235 } -236 catch ( ReleaseExecutionException e ) -237 { -238 throw new MojoExecutionException( e.getMessage(), e ); -239 } -240 catch ( ReleaseFailureException e ) -241 { -242 throw new MojoFailureException( e.getMessage(), e ); -243 } -244 } -245 } +162 * @parameter +163 * @since 2.1 +164 */ +165 private String[] checkModificationExcludes; +166 +167 /** +168 * Command-line version of checkModificationExcludes. +169 * +170 * @parameter expression="${checkModificationExcludeList}" +171 * @since 2.1 +172 */ +173 private String checkModificationExcludeList; +174 +175 /** +176 * Default version to use when preparing a release or a branch. +177 * +178 * @parameter expression="${releaseVersion}" +179 * @since 2.0 +180 */ +181 private String releaseVersion; +182 +183 /** +184 * Default version to use for new local working copy. +185 * +186 * @parameter expression="${developmentVersion}" +187 * @since 2.0 +188 */ +189 private String developmentVersion; +190 +191 /** +192 * {@inheritDoc} +193 */ +194 public void execute() +195 throws MojoExecutionException, MojoFailureException +196 { +197 super.execute(); +198 +199 ReleaseDescriptor config = createReleaseDescriptor(); +200 config.setAddSchema( addSchema ); +201 config.setScmUseEditMode( useEditMode ); +202 config.setUpdateDependencies( updateDependencies ); +203 config.setAutoVersionSubmodules( autoVersionSubmodules ); +204 config.setScmReleaseLabel( branchName ); +205 config.setScmBranchBase( branchBase ); +206 config.setBranchCreation( true ); +207 config.setUpdateBranchVersions( updateBranchVersions ); +208 config.setUpdateWorkingCopyVersions( updateWorkingCopyVersions ); +209 config.setUpdateVersionsToSnapshot( updateVersionsToSnapshot ); +210 config.setRemoteTagging( remoteTagging ); +211 config.setDefaultReleaseVersion( releaseVersion ); +212 config.setDefaultDevelopmentVersion( developmentVersion ); +213 config.setSuppressCommitBeforeTagOrBranch( suppressCommitBeforeBranch ); +214 +215 // Create a config containing values from the session properties (ie command line properties with cli). +216 ReleaseDescriptor sysPropertiesConfig +217 = ReleaseUtils.copyPropertiesToReleaseDescriptor( session.getExecutionProperties() ); +218 mergeCommandLineConfig( config, sysPropertiesConfig ); +219 +220 if ( checkModificationExcludeList != null ) +221 { +222 checkModificationExcludes = checkModificationExcludeList.replaceAll( "\\s", "" ).split( "," ); +223 } +224 +225 if ( checkModificationExcludes != null ) +226 { +227 config.setCheckModificationExcludes( Arrays.asList( checkModificationExcludes ) ); +228 } +229 +230 try +231 { +232 releaseManager.branch( config, getReleaseEnvironment(), getReactorProjects(), dryRun ); +233 } +234 catch ( ReleaseExecutionException e ) +235 { +236 throw new MojoExecutionException( e.getMessage(), e ); +237 } +238 catch ( ReleaseFailureException e ) +239 { +240 throw new MojoFailureException( e.getMessage(), e ); +241 } +242 } +243 }
Modified: websites/production/maventest/content/plugins/maven-release-plugin-latest/xref/org/apache/maven/plugins/release/CleanReleaseMojo.html ============================================================================== --- websites/production/maventest/content/plugins/maven-release-plugin-latest/xref/org/apache/maven/plugins/release/CleanReleaseMojo.html (original) +++ websites/production/maventest/content/plugins/maven-release-plugin-latest/xref/org/apache/maven/plugins/release/CleanReleaseMojo.html Tue May 8 11:42:40 2012 @@ -57,8 +57,8 @@ 47 super.execute(); 48 49 ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor(); -50 releaseDescriptor.setWorkingDirectory( basedir.getAbsolutePath() ); -51 releaseManager.clean( releaseDescriptor, null, reactorProjects ); +50 releaseDescriptor.setWorkingDirectory( getBasedir().getAbsolutePath() ); +51 releaseManager.clean( releaseDescriptor, null, getReactorProjects() ); 52 } 53 54 }