001 package org.codehaus.mojo.wagon; 002 003 /* 004 * Licensed to the Apache Software Foundation (ASF) under one or more contributor license 005 * agreements. See the NOTICE file distributed with this work for additional information regarding 006 * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the 007 * "License"); you may not use this file except in compliance with the License. You may obtain a 008 * copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software distributed under the License 013 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 014 * or implied. See the License for the specific language governing permissions and limitations under 015 * the License. 016 */ 017 018 import org.apache.maven.artifact.manager.WagonManager; 019 import org.apache.maven.plugin.AbstractMojo; 020 import org.apache.maven.plugin.MojoExecutionException; 021 import org.apache.maven.project.MavenProject; 022 import org.apache.maven.settings.Settings; 023 import org.apache.maven.wagon.Wagon; 024 import org.codehaus.mojo.wagon.shared.WagonFileSet; 025 import org.codehaus.mojo.wagon.shared.WagonUtils; 026 027 /** 028 * Provides base functionality for dealing with I/O using wagon. 029 * 030 */ 031 public abstract class AbstractWagonMojo extends AbstractMojo { 032 033 /** 034 * @component 035 */ 036 protected WagonManager wagonManager; 037 038 /** 039 * The current user system settings for use in Maven. 040 * 041 * @parameter expression="${settings}" 042 * @readonly 043 */ 044 protected Settings settings; 045 046 /** 047 * Internal Maven's project 048 * 049 * @parameter expression="${project}" 050 * @readonly 051 */ 052 protected MavenProject project; 053 054 /** 055 * When <code>true</code>, skip the execution. 056 * 057 * @parameter expression="${wagon.skip}" default-value="false" 058 */ 059 protected boolean skip = false; 060 061 /** 062 * Convenient method to create a wagon 063 * 064 * @param id 065 * @param url 066 * @param wagonManager 067 * @param settings 068 * @param logger 069 * @return 070 * @throws MojoExecutionException 071 */ 072 protected Wagon createWagon(String id, String url) throws MojoExecutionException { 073 try { 074 return WagonUtils.createWagon(id, url, wagonManager, settings, this.getLog()); 075 } catch (Exception e) { 076 throw new MojoExecutionException("Unable to create a Wagon instance for " + url, e); 077 } 078 079 } 080 081 protected WagonFileSet getWagonFileSet(String fromDir, String includes, String excludes, boolean caseSensitive, 082 String toDir) { 083 return WagonUtils.getWagonFileSet(fromDir, includes, excludes, caseSensitive, toDir); 084 } 085 086 }