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  package org.apache.maven.plugins.pdf.stubs;
20  
21  /*
22   * Licensed to the Apache Software Foundation (ASF) under one
23   * or more contributor license agreements.  See the NOTICE file
24   * distributed with this work for additional information
25   * regarding copyright ownership.  The ASF licenses this file
26   * to you under the Apache License, Version 2.0 (the
27   * "License"); you may not use this file except in compliance
28   * with the License.  You may obtain a copy of the License at
29   *
30   *   http://www.apache.org/licenses/LICENSE-2.0
31   *
32   * Unless required by applicable law or agreed to in writing,
33   * software distributed under the License is distributed on an
34   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
35   * KIND, either express or implied.  See the License for the
36   * specific language governing permissions and limitations
37   * under the License.
38   */
39  
40  import java.io.File;
41  import java.util.List;
42  
43  import org.apache.commons.io.input.XmlStreamReader;
44  import org.apache.maven.model.Developer;
45  import org.apache.maven.model.Model;
46  import org.apache.maven.model.Organization;
47  import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
48  import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
49  
50  /**
51   * @author ltheussl
52   */
53  public class ModelBuilderMavenProjectStub extends MavenProjectStub {
54      /**
55       * Stub to test the DocumentModelBuilder.
56       */
57      public ModelBuilderMavenProjectStub() {
58          try (XmlStreamReader reader = new XmlStreamReader(getFile())) {
59              final Model model = new MavenXpp3Reader().read(reader);
60              setModel(model);
61  
62              setGroupId(model.getGroupId());
63              setArtifactId(model.getArtifactId());
64              setVersion(model.getVersion());
65              setName(model.getName());
66              setDescription(model.getDescription());
67              setDevelopers(model.getDevelopers());
68              setOrganization(model.getOrganization());
69          } catch (Exception e) {
70              throw new RuntimeException(e);
71          }
72      }
73  
74      /** {@inheritDoc} */
75      public File getBasedir() {
76          return new File(super.getBasedir(), "target/test-classes/unit/pdf/");
77      }
78  
79      /** {@inheritDoc} */
80      public void addDeveloper(Developer developer) {
81          getModel().addDeveloper(developer);
82      }
83  
84      /** {@inheritDoc} */
85      public List<Developer> getDevelopers() {
86          return getModel().getDevelopers();
87      }
88  
89      /** {@inheritDoc} */
90      public Organization getOrganization() {
91          return getModel().getOrganization();
92      }
93  
94      /** {@inheritDoc} */
95      public void setDevelopers(List<Developer> list) {
96          getModel().setDevelopers(list);
97      }
98  
99      /** {@inheritDoc} */
100     public void setOrganization(Organization organization) {
101         getModel().setOrganization(organization);
102     }
103 
104     /** {@inheritDoc} */
105     public File getFile() {
106         return new File(getBasedir(), "pom_model_builder.xml");
107     }
108 }