View Javadoc

1   package org.apache.velocity.site.news.plugin;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import java.io.File;
23  
24  import org.apache.maven.plugin.AbstractMojo;
25  import org.apache.velocity.site.news.VelocityNewsException;
26  import org.apache.velocity.site.news.model.NewsManager;
27  
28  /**
29   * Generate news items for the site.
30   *
31   * @author <a href="mailto:henning@apache.org">Henning P. Schmiedehausen</a>
32   * @version $Revision: 526767 $
33   *
34   * @goal pre-site
35   * @phase pre-site
36   */
37  public class VelocityNewsPlugin extends AbstractMojo
38  {
39  
40      public static final String CONTAINER_LOOKUP_NAME = "org.apache.velocity.site:velocity-site-news-plugin";
41  
42      /**
43       * Directory containing the site files.
44       *
45       * @parameter expression="${basedir}/src/site"
46       * @required
47       */
48      private File siteDirectory;
49  
50      /**
51       * Configuration of the name of the news file to read.
52       *
53       * @parameter expression="${newsfile}" default-value="news"
54       */
55      private String newsFileName;
56  
57      /**
58       * The component which keeps all the news information for us.
59       *
60       * @component role="org.apache.velocity.site.news.model.NewsManager"
61       */
62      private NewsManager newsManager;
63  
64      public void execute()
65      {
66          try
67          {
68              newsManager.load(siteDirectory, newsFileName);
69  
70          }
71          catch (VelocityNewsException vne)
72          {
73              getLog().error("While loading news information: ", vne);
74          }
75      }
76  }