View Javadoc

1   package org.apache.maven.jelly.tags.maven;
2   
3   /* ====================================================================
4    *   Licensed to the Apache Software Foundation (ASF) under one or more
5    *   contributor license agreements.  See the NOTICE file distributed with
6    *   this work for additional information regarding copyright ownership.
7    *   The ASF licenses this file to You under the Apache License, Version 2.0
8    *   (the "License"); you may not use this file except in compliance with
9    *   the License.  You may obtain a copy of the License at
10   *
11   *       http://www.apache.org/licenses/LICENSE-2.0
12   *
13   *   Unless required by applicable law or agreed to in writing, software
14   *   distributed under the License is distributed on an "AS IS" BASIS,
15   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   *   See the License for the specific language governing permissions and
17   *   limitations under the License.
18   * ====================================================================
19   */
20  
21  import java.io.File;
22  
23  import org.apache.commons.jelly.JellyTagException;
24  import org.apache.commons.jelly.MissingAttributeException;
25  import org.apache.commons.jelly.XMLOutput;
26  import org.apache.maven.jelly.tags.BaseTagSupport;
27  import org.apache.maven.plugin.PluginManager;
28  
29  /**
30   * A Maven Jelly tag that will install a given plugin JAR using the plugin manager.
31   *
32   * @author <a href="mailto:brett@apache.org">Brett Porter</a>
33   * @version $Id: InstallPluginTag.java 517014 2007-03-11 21:15:50Z ltheussl $
34   */
35  public class InstallPluginTag
36      extends BaseTagSupport
37  {
38      private File file;
39  
40      private boolean cache = false;
41  
42      public void setCache( boolean cache )
43      {
44          this.cache = cache;
45      }
46  
47      public void setFile( File file )
48      {
49          this.file = file;
50      }
51  
52      /* (non-Javadoc)
53       * @see org.apache.commons.jelly.Tag#doTag(org.apache.commons.jelly.XMLOutput)
54       */
55      public void doTag( XMLOutput output )
56          throws MissingAttributeException, JellyTagException
57      {
58          checkAttribute( file, "file" );
59  
60          PluginManager manager = getMavenContext().getMavenSession().getPluginManager();
61          try
62          {
63              manager.installPlugin( file, null, cache );
64          }
65          catch ( Exception e )
66          {
67              throw new JellyTagException( "error installing plugin", e );
68          }
69      }
70  }