1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 18 */ 19 package org.apache.maven.execution; 20 21 import org.apache.maven.plugin.MojoExecution; 22 import org.apache.maven.project.MavenProject; 23 24 /** 25 * Holds data relevant for an execution event. 26 * 27 */ 28 public interface ExecutionEvent { 29 30 /** 31 * The possible types of execution events. 32 */ 33 enum Type { 34 ProjectDiscoveryStarted, 35 SessionStarted, 36 SessionEnded, 37 ProjectSkipped, 38 ProjectStarted, 39 ProjectSucceeded, 40 ProjectFailed, 41 MojoSkipped, 42 MojoStarted, 43 MojoSucceeded, 44 MojoFailed, 45 ForkStarted, 46 ForkSucceeded, 47 ForkFailed, 48 ForkedProjectStarted, 49 ForkedProjectSucceeded, 50 ForkedProjectFailed, 51 } 52 53 /** 54 * Gets the type of the event. 55 * 56 * @return The type of the event, never {@code null}. 57 */ 58 Type getType(); 59 60 /** 61 * Gets the session from which this event originates. 62 * 63 * @return The current session, never {@code null}. 64 */ 65 MavenSession getSession(); 66 67 /** 68 * Gets the current project (if any). 69 * 70 * @return The current project or {@code null} if not applicable. 71 */ 72 MavenProject getProject(); 73 74 /** 75 * Gets the current mojo execution (if any). 76 * 77 * @return The current mojo execution or {@code null} if not applicable. 78 */ 79 MojoExecution getMojoExecution(); 80 81 /** 82 * Gets the exception that caused the event (if any). 83 * 84 * @return The exception or {@code null} if none. 85 */ 86 Exception getException(); 87 }