andrey-petrenko-db commented on a change in pull request #610: URL: https://github.com/apache/maven/pull/610#discussion_r748744142
########## File path: maven-core/src/main/java/org/apache/maven/plugin/MojoExecutionStrategy.java ########## @@ -0,0 +1,46 @@ +package org.apache.maven.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.execution.MavenSession; +import org.apache.maven.lifecycle.LifecycleExecutionException; + +import java.util.List; + +/** + * Interface allows overriding default mojo execution strategy + * For example it is possible wrap some mojo execution to decorate default functionality or + * skip some executions + */ +public interface MojoExecutionStrategy +{ + + void execute( MavenSession session, List<MojoExecution> mojoExecutions, Executor executor ) + throws LifecycleExecutionException; + + /** + * Implementors must perform real mojo execution + */ + interface Executor Review comment: > My opinion is that we should leave Maven 3 as is and just focus on Maven 4. This feature might attract more people, so putting it into Maven 4 makes more sense to me. Yes I didn't mean to develop extension in 3.8, I thought just to add these minimal changes to core 3.8 and 4 Then we can use our current extension draft (from 3.8) and test in against real projects (our project is about 750 modules with tricky configuration sometimes) Our extension built with 3.8 maven could be left as a draft in our fork To summarise our plan was: 1) merge minimal changes to 3.8 and 4 2) create new branch from MNG-7129-master and apply changes which we have done in our draft extension version (bug fixes, support to change projects versions like it is done by maven set plugin) 3) raise PR from our branch to MNG-7129-master -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@maven.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org