View Javadoc

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  
20  package org.apache.maven.archetype.mojos.registry;
21  
22  import org.apache.maven.archetype.common.ArchetypeRegistryManager;
23  import org.apache.maven.archetype.registry.ArchetypeRegistry;
24  import org.apache.maven.plugin.AbstractMojo;
25  import org.apache.maven.plugin.MojoExecutionException;
26  import org.apache.maven.plugin.MojoFailureException;
27  
28  import java.io.File;
29  import java.io.FileNotFoundException;
30  import java.util.Iterator;
31  
32  /**
33   * Show the registered language directories.
34   * The registered language directories are used to discriminate
35   * packaging directories from unpackaged ones based on their name
36   * during create-from-project.
37   *
38   * @author rafale
39   * @requiresProject false
40   * (@)goal show-languages
41   * @deprecated 
42   */
43  public class ShowLanguagesMojo
44      extends AbstractMojo
45  {
46      /** @component */
47      ArchetypeRegistryManager archetypeRegistryManager;
48  
49      /**
50       * The location of the registry file.
51       *
52       * @parameter expression="${user.home}/.m2/archetype.xml"
53       */
54      private File archetypeRegistryFile;
55  
56      public void execute()
57          throws
58          MojoExecutionException,
59          MojoFailureException
60      {
61          try
62          {
63              ArchetypeRegistry registry;
64              try
65              {
66                  registry = archetypeRegistryManager.readArchetypeRegistry( archetypeRegistryFile );
67              }
68              catch ( FileNotFoundException ex )
69              {
70                  registry = archetypeRegistryManager.getDefaultArchetypeRegistry();
71              }
72  
73              Iterator languages = registry.getLanguages().iterator();
74  
75              getLog().info( "Languages defined in " + archetypeRegistryFile );
76              while ( languages.hasNext() )
77              {
78                  getLog().info( " - " + languages.next() );
79              }
80          }
81          catch ( Exception ex )
82          {
83              throw new MojoExecutionException( ex.getMessage(), ex );
84          }
85      }
86  }