package org.apache.maven.its.mng5640.lifecycleParticipantAfterSession; /* * 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 java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; import org.apache.maven.AbstractMavenLifecycleParticipant; import org.apache.maven.execution.MavenSession; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.logging.Logger; @Named @Singleton public class LifecycleParticipantImpl extends AbstractMavenLifecycleParticipant { private final Logger log; @Inject public LifecycleParticipantImpl( Logger log ) { this.log = log; } @Override public void afterProjectsRead( MavenSession session ) { dropMarker( session, "afterProjectsRead.txt" ); } @Override public void afterSessionStart( MavenSession session ) { dropMarker( session, "afterSessionStart.txt" ); } @Override public void afterSessionEnd( MavenSession session ) { dropMarker( session, "afterSessionEnd.txt" ); } private void dropMarker( MavenSession session, String markerName ) { MavenProject project = session.getProjects().get( 0 ); File target = new File( project.getBuild().getDirectory() ); File marker = new File( target, markerName ); if ( !target.exists() && !target.mkdirs() ) { log.error( "Could not create directory " + target ); } try { new FileOutputStream( marker ).close(); } catch ( IOException e ) { log.error( "Could not create marker file " + marker, e ); } } }