Return-Path: Delivered-To: apmail-maven-commits-archive@www.apache.org Received: (qmail 26745 invoked from network); 26 Jul 2009 20:35:50 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 26 Jul 2009 20:35:50 -0000 Received: (qmail 42554 invoked by uid 500); 26 Jul 2009 20:36:54 -0000 Delivered-To: apmail-maven-commits-archive@maven.apache.org Received: (qmail 42440 invoked by uid 500); 26 Jul 2009 20:36:54 -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 42431 invoked by uid 99); 26 Jul 2009 20:36:54 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 26 Jul 2009 20:36:54 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.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; Sun, 26 Jul 2009 20:36:52 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 959A923888DD; Sun, 26 Jul 2009 20:36:32 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r797988 - in /maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building: DefaultModelBuilder.java DefaultModelBuildingRequest.java ModelBuildingRequest.java Date: Sun, 26 Jul 2009 20:36:32 -0000 To: commits@maven.apache.org From: bentmann@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090726203632.959A923888DD@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: bentmann Date: Sun Jul 26 20:36:32 2009 New Revision: 797988 URL: http://svn.apache.org/viewvc?rev=797988&view=rev Log: o Enabled two-phase model building which allows to address inter-model dependencies within a reactor build Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java?rev=797988&r1=797987&r2=797988&view=diff ============================================================================== --- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java (original) +++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java Sun Jul 26 20:36:32 2009 @@ -190,7 +190,10 @@ result.setRawModel( modelId, currentData.getRawModel() ); } - build( request, result ); + if ( !request.isTwoPhaseBuilding() ) + { + build( request, result ); + } return result; } Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java?rev=797988&r1=797987&r2=797988&view=diff ============================================================================== --- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java (original) +++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java Sun Jul 26 20:36:32 2009 @@ -45,6 +45,8 @@ private boolean processPlugins; + private boolean twoPhaseBuilding; + private List profiles; private List activeProfileIds; @@ -111,6 +113,18 @@ return this; } + public boolean isTwoPhaseBuilding() + { + return twoPhaseBuilding; + } + + public DefaultModelBuildingRequest setTwoPhaseBuilding( boolean twoPhaseBuilding ) + { + this.twoPhaseBuilding = twoPhaseBuilding; + + return this; + } + public List getProfiles() { if ( profiles == null ) Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java?rev=797988&r1=797987&r2=797988&view=diff ============================================================================== --- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java (original) +++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java Sun Jul 26 20:36:32 2009 @@ -135,6 +135,27 @@ ModelBuildingRequest setProcessPlugins( boolean processPlugins ); /** + * Indicates whether the model building should happen in two phases. If enabled, the initial invocation of the model + * builder will only produce an interim result which may be used to analyze inter-model dependencies before the + * final invocation of the model builder is performed. + * + * @return {@code true} if two-phase building is enabled, {@code false} if the model should be build in a single + * step. + */ + boolean isTwoPhaseBuilding(); + + /** + * Enables/disables two-phase building. If enabled, the initial invocation of the model builder will only produce an + * interim result which may be used to analyze inter-model dependencies before the final invocation of the model + * builder is performed. + * + * @param twoPhaseBuilding {@code true} to enable two-phase building, {@code false} if the model should be build in + * a single step. + * @return This request, never {@code null}. + */ + ModelBuildingRequest setTwoPhaseBuilding( boolean twoPhaseBuilding ); + + /** * Gets the external profiles that should be considered for model building. * * @return The external profiles that should be considered for model building, never {@code null}.