1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.doxia.tools;
20
21 import javax.inject.Inject;
22
23 import java.io.File;
24 import java.io.StringReader;
25 import java.io.Writer;
26 import java.util.ArrayList;
27 import java.util.Arrays;
28 import java.util.Collections;
29 import java.util.HashMap;
30 import java.util.Iterator;
31 import java.util.List;
32 import java.util.Locale;
33 import java.util.Properties;
34
35 import org.apache.maven.doxia.site.LinkItem;
36 import org.apache.maven.doxia.site.SiteModel;
37 import org.apache.maven.doxia.site.Skin;
38 import org.apache.maven.doxia.site.io.xpp3.SiteXpp3Reader;
39 import org.apache.maven.doxia.site.io.xpp3.SiteXpp3Writer;
40 import org.apache.maven.doxia.tools.stubs.MavenProjectStub;
41 import org.apache.maven.doxia.tools.stubs.SiteToolMavenProjectStub;
42 import org.apache.maven.execution.DefaultMavenExecutionRequest;
43 import org.apache.maven.execution.MavenExecutionRequest;
44 import org.apache.maven.project.MavenProject;
45 import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
46 import org.codehaus.plexus.testing.PlexusTest;
47 import org.codehaus.plexus.util.FileUtils;
48 import org.codehaus.plexus.util.IOUtil;
49 import org.codehaus.plexus.util.WriterFactory;
50 import org.eclipse.aether.DefaultRepositorySystemSession;
51 import org.eclipse.aether.RepositorySystemSession;
52 import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
53 import org.eclipse.aether.repository.LocalRepository;
54 import org.junit.jupiter.api.Test;
55
56 import static org.codehaus.plexus.testing.PlexusExtension.getTestFile;
57 import static org.junit.jupiter.api.Assertions.assertEquals;
58 import static org.junit.jupiter.api.Assertions.assertFalse;
59 import static org.junit.jupiter.api.Assertions.assertNotNull;
60 import static org.junit.jupiter.api.Assertions.assertNotSame;
61 import static org.junit.jupiter.api.Assertions.assertNull;
62 import static org.junit.jupiter.api.Assertions.assertThrows;
63 import static org.junit.jupiter.api.Assertions.assertTrue;
64
65
66
67
68 @SuppressWarnings("javadoc")
69 @PlexusTest
70 class SiteToolTest {
71
72 @Inject
73 private DefaultSiteTool tool;
74
75
76
77
78
79
80 protected File getLocalRepoDir() throws Exception {
81 return getTestFile("target/local-repo");
82 }
83
84 protected RepositorySystemSession newRepoSession() throws Exception {
85 DefaultRepositorySystemSession repoSession = MavenRepositorySystemUtils.newSession();
86 repoSession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory()
87 .newInstance(repoSession, new LocalRepository(getLocalRepoDir())));
88 return repoSession;
89 }
90
91
92
93
94 @Test
95 void getSkinArtifactFromRepository() throws Exception {
96 assertNotNull(tool);
97
98 SiteToolMavenProjectStub project = new SiteToolMavenProjectStub("site-tool-test");
99 Skin skin = new Skin();
100 skin.setGroupId("org.apache.maven.skins");
101 skin.setArtifactId("maven-fluido-skin");
102 assertNotNull(
103 tool.getSkinArtifactFromRepository(newRepoSession(), project.getRemoteProjectRepositories(), skin));
104 }
105
106 private void checkGetRelativePathDirectory(SiteTool tool, String relative, String to, String from) {
107 assertEquals(relative, tool.getRelativePath(to, from));
108 assertEquals(relative, tool.getRelativePath(to + '/', from));
109 assertEquals(relative, tool.getRelativePath(to, from + '/'));
110 assertEquals(relative, tool.getRelativePath(to + '/', from + '/'));
111 }
112
113
114
115
116 @Test
117 @SuppressWarnings({"deprecation"})
118 void getRelativePath() throws Exception {
119 assertNotNull(tool);
120
121 checkGetRelativePathDirectory(tool, "", "http://maven.apache.org", "http://maven.apache.org");
122
123 checkGetRelativePathDirectory(
124 tool,
125 ".." + File.separator + "..",
126 "http://maven.apache.org",
127 "http://maven.apache.org/plugins/maven-site-plugin");
128
129 checkGetRelativePathDirectory(
130 tool,
131 "plugins" + File.separator + "maven-site-plugin",
132 "http://maven.apache.org/plugins/maven-site-plugin",
133 "http://maven.apache.org");
134
135 checkGetRelativePathDirectory(tool, "", "dav:https://maven.apache.org", "dav:https://maven.apache.org");
136
137 checkGetRelativePathDirectory(
138 tool,
139 "plugins" + File.separator + "maven-site-plugin",
140 "dav:http://maven.apache.org/plugins/maven-site-plugin",
141 "dav:http://maven.apache.org");
142
143 checkGetRelativePathDirectory(tool, "", "scm:svn:https://maven.apache.org", "scm:svn:https://maven.apache.org");
144
145 checkGetRelativePathDirectory(
146 tool,
147 "plugins" + File.separator + "maven-site-plugin",
148 "scm:svn:https://maven.apache.org/plugins/maven-site-plugin",
149 "scm:svn:https://maven.apache.org");
150
151 String to = "http://maven.apache.org/downloads.html";
152 String from = "http://maven.apache.org/index.html";
153
154
155 to = "file:///tmp/bloop";
156 from = "scp://localhost:/tmp/blop";
157 assertEquals(tool.getRelativePath(to, from), to);
158
159
160 to = "file://tmp/bloop";
161 from = "scp://localhost:/tmp/blop";
162 assertEquals(to, tool.getRelativePath(to, from));
163
164
165 to = "C:/dev/voca/gateway/parser/gateway-parser.iml";
166 from = "C:/dev/voca/gateway/";
167 assertEquals(
168 "parser" + File.separator + "gateway-parser.iml",
169 tool.getRelativePath(to, from),
170 "Child file using Windows drive letter");
171 to = "C:/foo/child";
172 from = "C:/foo/master";
173 assertEquals(
174 ".." + File.separator + "child",
175 tool.getRelativePath(to, from),
176 "Sibling directory using Windows drive letter");
177 to = "/myproject/myproject-module1";
178 from = "/myproject/myproject";
179 assertEquals(
180 ".." + File.separator + "myproject-module1",
181 tool.getRelativePath(to, from),
182 "Sibling directory with similar name");
183
184
185 assertEquals(
186 ".." + File.separator + "project-module-1" + File.separator + "src" + File.separator + "site",
187 tool.getRelativePath(
188 "Z:\\dir\\project\\project-module-1\\src\\site",
189 "Z:\\dir\\project\\project-module-1\\..\\project-parent"));
190 assertEquals(
191 ".." + File.separator + ".." + File.separator + ".." + File.separator + "project-parent",
192 tool.getRelativePath(
193 "Z:\\dir\\project\\project-module-1\\..\\project-parent",
194 "Z:\\dir\\project\\project-module-1\\src\\site"));
195
196 assertEquals(".." + File.separator + "foo", tool.getRelativePath("../../foo/foo", "../../foo/bar"));
197 }
198
199
200
201
202 @Test
203 void getSiteDescriptorFromBasedir() throws Exception {
204 assertNotNull(tool);
205
206 SiteToolMavenProjectStub project = new SiteToolMavenProjectStub("site-tool-test");
207 assertEquals(
208 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), SiteTool.DEFAULT_LOCALE)
209 .toString(),
210 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator + "site.xml");
211 assertEquals(
212 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), Locale.ENGLISH)
213 .toString(),
214 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator + "site.xml");
215 String siteDir = "src/blabla";
216 assertEquals(
217 tool.getSiteDescriptor(new File(project.getBasedir(), siteDir), SiteTool.DEFAULT_LOCALE)
218 .toString(),
219 project.getBasedir() + File.separator + "src" + File.separator + "blabla" + File.separator
220 + "site.xml");
221
222 project = new SiteToolMavenProjectStub("site-tool-locales-test/full");
223 Locale bavarian = new Locale("de", "DE", "BY");
224 assertEquals(
225 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), SiteTool.DEFAULT_LOCALE)
226 .toString(),
227 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator + "site.xml");
228 assertEquals(
229 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), bavarian)
230 .toString(),
231 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator
232 + "site_de_DE_BY.xml");
233 assertEquals(
234 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), Locale.GERMANY)
235 .toString(),
236 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator + "site.xml");
237 assertEquals(
238 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), Locale.ENGLISH)
239 .toString(),
240 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator + "site.xml");
241 assertEquals(
242 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), Locale.GERMAN)
243 .toString(),
244 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator + "site.xml");
245
246 project = new SiteToolMavenProjectStub("site-tool-locales-test/language_country");
247 assertEquals(
248 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), SiteTool.DEFAULT_LOCALE)
249 .toString(),
250 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator + "site.xml");
251 assertEquals(
252 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), bavarian)
253 .toString(),
254 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator
255 + "site_de_DE.xml");
256 assertEquals(
257 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), Locale.GERMANY)
258 .toString(),
259 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator
260 + "site_de_DE.xml");
261 assertEquals(
262 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), Locale.ENGLISH)
263 .toString(),
264 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator + "site.xml");
265 assertEquals(
266 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), Locale.GERMAN)
267 .toString(),
268 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator + "site.xml");
269
270 project = new SiteToolMavenProjectStub("site-tool-locales-test/language");
271 assertEquals(
272 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), SiteTool.DEFAULT_LOCALE)
273 .toString(),
274 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator + "site.xml");
275 assertEquals(
276 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), bavarian)
277 .toString(),
278 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator
279 + "site_de.xml");
280 assertEquals(
281 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), Locale.GERMANY)
282 .toString(),
283 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator
284 + "site_de.xml");
285 assertEquals(
286 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), Locale.ENGLISH)
287 .toString(),
288 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator + "site.xml");
289 assertEquals(
290 tool.getSiteDescriptor(new File(project.getBasedir(), "src/site"), Locale.GERMAN)
291 .toString(),
292 project.getBasedir() + File.separator + "src" + File.separator + "site" + File.separator
293 + "site_de.xml");
294 }
295
296
297
298
299 @Test
300 void getSiteDescriptorFromRepository() throws Exception {
301 assertNotNull(tool);
302
303 SiteToolMavenProjectStub project = new SiteToolMavenProjectStub("site-tool-test");
304 project.setGroupId("org.apache.maven");
305 project.setArtifactId("maven-site");
306 project.setVersion("1.0");
307 String result = getLocalRepoDir() + File.separator + "org" + File.separator + "apache" + File.separator
308 + "maven" + File.separator + "maven-site" + File.separator + "1.0" + File.separator
309 + "maven-site-1.0-site.xml";
310
311 assertEquals(
312 tool.getSiteDescriptorFromRepository(
313 project,
314 newRepoSession(),
315 project.getRemoteProjectRepositories(),
316 SiteTool.DEFAULT_LOCALE)
317 .toString(),
318 result);
319 }
320
321
322
323
324 @Test
325 void getSiteModel() throws Exception {
326 assertNotNull(tool);
327
328 SiteToolMavenProjectStub project = new SiteToolMavenProjectStub("site-tool-test");
329 List<MavenProject> reactorProjects = new ArrayList<>();
330
331
332 SiteModel model = tool.getSiteModel(
333 new File(project.getBasedir(), "src/site"),
334 SiteTool.DEFAULT_LOCALE,
335 new DefaultMavenExecutionRequest(),
336 project,
337 reactorProjects,
338 newRepoSession(),
339 project.getRemoteProjectRepositories());
340 assertNotNull(model);
341 assertNotNull(model.getBannerLeft());
342 assertEquals("Maven Site", model.getBannerLeft().getName());
343 assertEquals(
344 "http://maven.apache.org/images/apache-maven-project.png",
345 model.getBannerLeft().getImage().getSrc());
346 assertEquals("http://maven.apache.org/", model.getBannerLeft().getHref());
347 assertNotNull(model.getBannerRight());
348 assertNull(model.getBannerRight().getName());
349 assertEquals(
350 "http://maven.apache.org/images/maven-small.gif",
351 model.getBannerRight().getImage().getSrc());
352 assertNull(model.getBannerRight().getHref());
353
354
355 project.setBasedir(null);
356 project.setGroupId("org.apache.maven");
357 project.setArtifactId("maven");
358 project.setVersion("3.8.6");
359 SiteModel modelFromRepo = tool.getSiteModel(
360 null,
361 SiteTool.DEFAULT_LOCALE,
362 new DefaultMavenExecutionRequest(),
363 project,
364 reactorProjects,
365 newRepoSession(),
366 project.getRemoteProjectRepositories());
367 assertNotNull(modelFromRepo);
368 assertNotNull(modelFromRepo.getBannerLeft());
369 assertEquals("dummy", modelFromRepo.getBannerLeft().getName());
370 assertEquals(
371 "https://maven.apache.org/images/apache-maven-project.png",
372 modelFromRepo.getBannerLeft().getImage().getSrc());
373 assertEquals("https://maven.apache.org/", modelFromRepo.getBannerLeft().getHref());
374 assertNull(modelFromRepo.getBannerRight());
375 }
376
377
378
379
380 @Test
381 void getDefaultSiteModel() throws Exception {
382 assertNotNull(tool);
383
384 SiteToolMavenProjectStub project = new SiteToolMavenProjectStub("no-site-test");
385 String siteDirectory = "src/site";
386 List<MavenProject> reactorProjects = new ArrayList<>();
387
388 SiteModel model = tool.getSiteModel(
389 new File(project.getBasedir(), siteDirectory),
390 SiteTool.DEFAULT_LOCALE,
391 new DefaultMavenExecutionRequest(),
392 project,
393 reactorProjects,
394 newRepoSession(),
395 project.getRemoteProjectRepositories());
396 assertNotNull(model);
397 }
398
399 @Test
400 void getAvailableLocales() throws Exception {
401 assertEquals(Collections.singletonList(SiteTool.DEFAULT_LOCALE), tool.getSiteLocales("default"));
402
403 assertEquals(
404 Arrays.asList(SiteTool.DEFAULT_LOCALE, Locale.FRENCH, Locale.ITALIAN),
405 tool.getSiteLocales("default,fr,it"));
406
407
408 assertEquals(Collections.singletonList(SiteTool.DEFAULT_LOCALE), tool.getSiteLocales(""));
409 }
410
411 @Test
412 void getInterpolatedSiteDescriptorContent() throws Exception {
413 assertNotNull(tool);
414
415 File pomXmlFile = getTestFile("src/test/resources/unit/interpolated-site/pom.xml");
416 assertNotNull(pomXmlFile);
417 assertTrue(pomXmlFile.exists());
418
419 File descriptorFile = getTestFile("src/test/resources/unit/interpolated-site/src/site/site.xml");
420 assertNotNull(descriptorFile);
421 assertTrue(descriptorFile.exists());
422
423 String siteDescriptorContent = FileUtils.fileRead(descriptorFile);
424 assertNotNull(siteDescriptorContent);
425 assertTrue(siteDescriptorContent.contains("${project.name}"));
426 assertFalse(siteDescriptorContent.contains(
427 "Interpolatesite "quoted" & 'quoted' <sdf>"));
428
429 SiteToolMavenProjectStub project = new SiteToolMavenProjectStub("interpolated-site");
430 List<MavenProject> reactorProjects = Collections.<MavenProject>singletonList(project);
431
432 siteDescriptorContent =
433 tool.getInterpolatedSiteDescriptorContent(new HashMap<>(), project, siteDescriptorContent);
434 assertNotNull(siteDescriptorContent);
435 assertFalse(siteDescriptorContent.contains("${project.name}"));
436 assertTrue(siteDescriptorContent.contains(
437 "Interpolatesite "quoted" & 'quoted' <sdf>"));
438
439 SiteModel model = tool.getSiteModel(
440 new File(project.getBasedir(), "src/site"),
441 SiteTool.DEFAULT_LOCALE,
442 project,
443 reactorProjects,
444 newRepoSession(),
445 project.getRemoteProjectRepositories());
446 assertNotNull(model);
447
448 assertEquals(
449 "Test " + project.getName(),
450 model.getBody().getMenus().get(0).getItems().get(1).getName());
451 }
452
453
454 @Test
455 void siteModelInheritanceAndInterpolation() throws Exception {
456 assertNotNull(tool);
457
458 SiteToolMavenProjectStub parentProject = new SiteToolMavenProjectStub("interpolation-parent-test");
459 parentProject.setDistgributionManagementSiteUrl("dav+https://davs.codehaus.org/site");
460
461 SiteToolMavenProjectStub childProject = new SiteToolMavenProjectStub("interpolation-child-test");
462 childProject.setParent(parentProject);
463 childProject.setDistgributionManagementSiteUrl("dav+https://davs.codehaus.org/site/child");
464 Properties effectiveProperties = new Properties();
465 effectiveProperties.putAll(parentProject.getProperties());
466 effectiveProperties.putAll(childProject.getProperties());
467 childProject.setProperties(effectiveProperties);
468
469 List<MavenProject> reactorProjects = Collections.<MavenProject>singletonList(parentProject);
470 MavenExecutionRequest request = new DefaultMavenExecutionRequest();
471 Properties userProperties = new Properties();
472 userProperties.setProperty("userProp1", "from user properties");
473 userProperties.setProperty("my_property2", "from user properties");
474 request.setUserProperties(userProperties);
475 Properties systemProperties = new Properties();
476 systemProperties.setProperty("systemProp1", "from system properties");
477 systemProperties.setProperty("my_property3", "from system properties");
478 request.setSystemProperties(systemProperties);
479
480 SiteModel model = tool.getSiteModel(
481 new File(childProject.getBasedir(), "src/site"),
482 SiteTool.DEFAULT_LOCALE,
483 request,
484 childProject,
485 reactorProjects,
486 newRepoSession(),
487 childProject.getRemoteProjectRepositories());
488 assertNotNull(model);
489
490 writeModel(model, "unit/interpolation-child-test/effective-site.xml");
491
492 assertEquals("MSHARED-217 Child", model.getName());
493
494 assertEquals(
495 "project.artifactId = mshared-217-child", model.getBannerLeft().getName());
496
497 assertEquals(
498 "this.artifactId = mshared-217-parent", model.getBannerRight().getName());
499
500 assertEquals(
501 "../../index.html",
502 model.getBody().getBreadcrumbs().iterator().next().getHref());
503 Iterator<LinkItem> links = model.getBody().getLinks().iterator();
504
505 assertEquals("project.name = MSHARED-217 Child", links.next().getName());
506 assertEquals("name = name property", links.next().getName());
507
508 assertEquals("this.name = MSHARED-217 Parent", links.next().getName());
509
510
511 assertEquals("my_property = from child pom.xml", links.next().getName());
512
513 assertEquals("my_property2 = from user properties", links.next().getName());
514
515 assertEquals("my_property3 = from parent pom.xml", links.next().getName());
516
517 assertEquals("this.my_property = from parent pom.xml", links.next().getName());
518
519
520 String envPath = links.next().getName();
521 assertTrue(envPath.startsWith("env.PATH = "));
522 assertFalse(envPath.contains("${"));
523 assertNotSame("env.PATH = PATH property from pom", envPath);
524
525
526 assertEquals("PATH = PATH property from pom", links.next().getName());
527
528
529 assertEquals("userProp1 = from user properties", links.next().getName());
530
531
532 assertEquals("systemProp1 = from system properties", links.next().getName());
533 }
534
535
536
537
538 @Test
539 void convertOldToNewSiteModel() throws Exception {
540 assertNotNull(tool);
541
542 SiteToolMavenProjectStub project = new SiteToolMavenProjectStub("old-to-new-site-model-conversion-test");
543 List<MavenProject> reactorProjects = new ArrayList<MavenProject>();
544
545
546 SiteModel model = tool.getSiteModel(
547 new File(project.getBasedir(), "src/site"),
548 SiteTool.DEFAULT_LOCALE,
549 new DefaultMavenExecutionRequest(),
550 project,
551 reactorProjects,
552 newRepoSession(),
553 project.getRemoteProjectRepositories());
554 assertNotNull(model);
555
556 File descriptorFile =
557 getTestFile("src/test/resources/unit/old-to-new-site-model-conversion-test/src/site/new-site.xml");
558 assertNotNull(descriptorFile);
559 assertTrue(descriptorFile.exists());
560
561 String siteDescriptorContent = FileUtils.fileRead(descriptorFile);
562 SiteModel newModel = new SiteXpp3Reader().read(new StringReader(siteDescriptorContent));
563 assertNotNull(newModel);
564 assertEquals(newModel, model);
565 }
566
567 @Test
568 void requireParent() throws Exception {
569 assertNotNull(tool);
570
571 SiteToolMavenProjectStub project = new SiteToolMavenProjectStub("require-parent-test");
572 MavenProjectStub parentProject = new MavenProjectStub() {
573 @Override
574 public File getBasedir() {
575 return null;
576 }
577 };
578 parentProject.setGroupId("org.apache.maven.shared.its");
579 parentProject.setArtifactId("mshared-217-parent");
580 parentProject.setVersion("1.0-SNAPSHOT");
581 project.setParent(parentProject);
582 List<MavenProject> reactorProjects = new ArrayList<MavenProject>();
583
584 RepositorySystemSession repoSession = newRepoSession();
585
586 new SiteToolMavenProjectStub("require-parent-test");
587 org.eclipse.aether.artifact.Artifact parentArtifact = new org.eclipse.aether.artifact.DefaultArtifact(
588 "org.apache.maven.shared.its:mshared-217-parent:xml:site:1.0-SNAPSHOT");
589 File parentArtifactInRepoFile = new File(
590 repoSession.getLocalRepository().getBasedir(),
591 repoSession.getLocalRepositoryManager().getPathForLocalArtifact(parentArtifact));
592
593
594 assertThrows(
595 SiteToolException.class,
596 () -> tool.getSiteModel(
597 new File(project.getBasedir(), "src/site"),
598 SiteTool.DEFAULT_LOCALE,
599 new DefaultMavenExecutionRequest(),
600 project,
601 reactorProjects,
602 repoSession,
603 project.getRemoteProjectRepositories()));
604
605
606 FileUtils.copyFile(
607 getTestFile("src/test/resources/unit/require-parent-test/parent-site.xml"), parentArtifactInRepoFile);
608 try {
609 tool.getSiteModel(
610 new File(project.getBasedir(), "src/site"),
611 SiteTool.DEFAULT_LOCALE,
612 new DefaultMavenExecutionRequest(),
613 project,
614 reactorProjects,
615 repoSession,
616 project.getRemoteProjectRepositories());
617 } finally {
618 parentArtifactInRepoFile.delete();
619 }
620 }
621
622 private void writeModel(SiteModel model, String to) throws Exception {
623 Writer writer = WriterFactory.newXmlWriter(getTestFile("target/test-classes/" + to));
624 try {
625 new SiteXpp3Writer().write(writer, model);
626 } finally {
627 IOUtil.close(writer);
628 }
629 }
630 }