thanks benjamin :-) 2009/9/29 <[email protected]>: > Author: bentmann > Date: Tue Sep 29 14:51:28 2009 > New Revision: 819974 > > URL: http://svn.apache.org/viewvc?rev=819974&view=rev > Log: > [MNG-4162] Removal of all reporting logic from the core of Maven > > o Started converter to populate new site plugin configuration from legacy > reporting section > > Added: > > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java > (with props) > > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/plugin/ReportingConverter.java > (with props) > Modified: > > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java > > Modified: > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java > URL: > http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java?rev=819974&r1=819973&r2=819974&view=diff > ============================================================================== > --- > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java > (original) > +++ > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java > Tue Sep 29 14:51:28 2009 > @@ -46,6 +46,7 @@ > import org.apache.maven.model.path.ModelPathTranslator; > import org.apache.maven.model.plugin.LifecycleBindingsInjector; > import org.apache.maven.model.plugin.PluginConfigurationExpander; > +import org.apache.maven.model.plugin.ReportingConverter; > import org.apache.maven.model.profile.DefaultProfileActivationContext; > import org.apache.maven.model.profile.ProfileActivationContext; > import org.apache.maven.model.profile.ProfileInjector; > @@ -108,6 +109,9 @@ > @Requirement > private PluginConfigurationExpander pluginConfigurationExpander; > > + �...@requirement > + private ReportingConverter reportingConverter; > + > public ModelBuildingResult build( ModelBuildingRequest request ) > throws ModelBuildingException > { > @@ -254,6 +258,8 @@ > if ( request.isProcessPlugins() ) > { > pluginConfigurationExpander.expandPluginConfiguration( > resultModel, request, problems ); > + > + reportingConverter.convertReporting( resultModel, request, > problems ); > } > > modelValidator.validateEffectiveModel( resultModel, request, problems > ); > > Added: > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java > URL: > http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java?rev=819974&view=auto > ============================================================================== > --- > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java > (added) > +++ > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java > Tue Sep 29 14:51:28 2009 > @@ -0,0 +1,193 @@ > +package org.apache.maven.model.plugin; > + > +/* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + */ > + > +import org.apache.maven.model.Build; > +import org.apache.maven.model.Model; > +import org.apache.maven.model.Plugin; > +import org.apache.maven.model.PluginManagement; > +import org.apache.maven.model.ReportPlugin; > +import org.apache.maven.model.ReportSet; > +import org.apache.maven.model.Reporting; > +import org.apache.maven.model.building.ModelBuildingRequest; > +import org.apache.maven.model.building.ModelProblemCollector; > +import org.codehaus.plexus.component.annotations.Component; > +import org.codehaus.plexus.util.StringUtils; > +import org.codehaus.plexus.util.xml.Xpp3Dom; > + > +/** > + * Handles conversion of the legacy reporting section into the configuration > of the new Maven Site Plugin. > + * > + * @author Benjamin Bentmann > + */ > +...@component( role = ReportingConverter.class ) > +public class DefaultReportingConverter > + implements ReportingConverter > +{ > + > + public void convertReporting( Model model, ModelBuildingRequest request, > ModelProblemCollector problems ) > + { > + Reporting reporting = model.getReporting(); > + > + if ( reporting == null ) > + { > + return; > + } > + > + Build build = model.getBuild(); > + > + if ( build == null ) > + { > + build = new Build(); > + model.setBuild( build ); > + } > + > + Plugin sitePlugin = findSitePlugin( build ); > + > + if ( sitePlugin == null ) > + { > + sitePlugin = new Plugin(); > + sitePlugin.setArtifactId( "maven-site-plugin" ); > + build.addPlugin( sitePlugin ); > + } > + > + Xpp3Dom configuration = (Xpp3Dom) sitePlugin.getConfiguration(); > + > + if ( configuration == null ) > + { > + configuration = new Xpp3Dom( "configuration" ); > + sitePlugin.setConfiguration( configuration ); > + } > + > + Xpp3Dom reportPlugins = configuration.getChild( "reportPlugins" ); > + > + if ( reportPlugins != null ) > + { > + // new-style report configuration already present, assume user > handled entire conversion > + return; > + } > + > + problems.addWarning( "The <reporting> section is deprecated" > + + ", please move the reports to the <configuration> section of > the new Maven Site Plugin." ); > + > + if ( configuration.getChild( "outputDirectory" ) == null ) > + { > + addDom( configuration, "outputDirectory", > reporting.getOutputDirectory() ); > + } > + > + reportPlugins = new Xpp3Dom( "reportPlugins" ); > + configuration.addChild( reportPlugins ); > + > + boolean hasMavenProjectInfoReportsPlugin = false; > + > + for ( ReportPlugin plugin : reporting.getPlugins() ) > + { > + Xpp3Dom reportPlugin = convert( plugin ); > + reportPlugins.addChild( reportPlugin ); > + > + if ( !reporting.isExcludeDefaults() > + && "org.apache.maven.plugins".equals( reportPlugin.getChild( > "groupId" ).getValue() ) > + && "maven-project-info-reports-plugin".equals( > reportPlugin.getChild( "artifactId" ).getValue() ) ) > + { > + hasMavenProjectInfoReportsPlugin = true; > + } > + } > + > + if ( !reporting.isExcludeDefaults() && > !hasMavenProjectInfoReportsPlugin ) > + { > + Xpp3Dom dom = new Xpp3Dom( "plugin" ); > + > + addDom( dom, "groupId", "org.apache.maven.plugins" ); > + addDom( dom, "artifactId", "maven-project-info-reports-plugin" ); > + > + reportPlugins.addChild( dom ); > + } > + } > + > + private Plugin findSitePlugin( Build build ) > + { > + for ( Plugin plugin : build.getPlugins() ) > + { > + if ( isSitePlugin( plugin ) ) > + { > + return plugin; > + } > + } > + > + PluginManagement pluginManagement = build.getPluginManagement(); > + if ( pluginManagement != null ) > + { > + for ( Plugin plugin : pluginManagement.getPlugins() ) > + { > + if ( isSitePlugin( plugin ) ) > + { > + return plugin; > + } > + } > + } > + > + return null; > + } > + > + private boolean isSitePlugin( Plugin plugin ) > + { > + return "maven-site-plugin".equals( plugin.getArtifactId() ) > + && "org.apache.maven.plugins".equals( plugin.getGroupId() ); > + } > + > + private Xpp3Dom convert( ReportPlugin plugin ) > + { > + Xpp3Dom dom = new Xpp3Dom( "plugin" ); > + > + addDom( dom, "groupId", plugin.getGroupId() ); > + addDom( dom, "artifactId", plugin.getArtifactId() ); > + addDom( dom, "version", plugin.getVersion() ); > + > + Xpp3Dom configuration = (Xpp3Dom) plugin.getConfiguration(); > + if ( configuration != null ) > + { > + configuration = new Xpp3Dom( configuration ); > + dom.addChild( configuration ); > + } > + > + // TODO: Clarifiy conversion > + for ( ReportSet reportSet : plugin.getReportSets() ) > + { > + } > + > + return dom; > + } > + > + private void addDom( Xpp3Dom parent, String childName, String childValue > ) > + { > + if ( StringUtils.isNotEmpty( childValue ) ) > + { > + parent.addChild( newDom( childName, childValue ) ); > + } > + } > + > + private Xpp3Dom newDom( String name, String value ) > + { > + Xpp3Dom dom = new Xpp3Dom( name ); > + dom.setValue( value ); > + return dom; > + } > + > +} > > Propchange: > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java > ------------------------------------------------------------------------------ > svn:keywords = Author Date Id Revision > > Added: > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/plugin/ReportingConverter.java > URL: > http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/plugin/ReportingConverter.java?rev=819974&view=auto > ============================================================================== > --- > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/plugin/ReportingConverter.java > (added) > +++ > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/plugin/ReportingConverter.java > Tue Sep 29 14:51:28 2009 > @@ -0,0 +1,43 @@ > +package org.apache.maven.model.plugin; > + > +/* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + */ > + > +import org.apache.maven.model.Model; > +import org.apache.maven.model.building.ModelBuildingRequest; > +import org.apache.maven.model.building.ModelProblemCollector; > + > +/** > + * Handles conversion of the legacy reporting section into the configuration > of the new Maven Site Plugin. > + * > + * @author Benjamin Bentmann > + */ > +public interface ReportingConverter > +{ > + > + /** > + * Converts values from model's reporting section into the configuration > for the new Maven Site Plugin. > + * > + * @param model The model whose reporting section should be converted, > must not be <code>null</code>. > + * @param request The model building request that holds further > settings, must not be {...@code null}. > + * @param problems The container used to collect problems that were > encountered, must not be {...@code null}. > + */ > + void convertReporting( Model model, ModelBuildingRequest request, > ModelProblemCollector problems ); > + > +} > > Propchange: > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/plugin/ReportingConverter.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/plugin/ReportingConverter.java > ------------------------------------------------------------------------------ > svn:keywords = Author Date Id Revision > > >
-- Olivier --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
