1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.archetype.source;
20
21 import javax.inject.Named;
22 import javax.inject.Singleton;
23
24 import java.io.File;
25 import java.io.IOException;
26 import java.io.InputStream;
27 import java.io.Reader;
28 import java.util.List;
29
30 import org.apache.maven.archetype.catalog.Archetype;
31 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
32 import org.codehaus.plexus.util.xml.XmlStreamReader;
33 import org.eclipse.aether.RepositorySystemSession;
34 import org.eclipse.aether.repository.RemoteRepository;
35 import org.slf4j.Logger;
36 import org.slf4j.LoggerFactory;
37
38
39
40
41 @Named("internal-catalog")
42 @Singleton
43 public class InternalCatalogArchetypeDataSource extends CatalogArchetypeDataSource {
44 private static final Logger LOGGER = LoggerFactory.getLogger(InternalCatalogArchetypeDataSource.class);
45
46 @Override
47 public ArchetypeCatalog getArchetypeCatalog(
48 RepositorySystemSession repositorySession, List<RemoteRepository> remoteRepositories)
49 throws ArchetypeDataSourceException {
50 try (InputStream in = getClass().getClassLoader().getResourceAsStream(ARCHETYPE_CATALOG_FILENAME);
51 Reader reader = new XmlStreamReader(in)) {
52 return readCatalog(reader);
53 } catch (IOException e) {
54 throw new ArchetypeDataSourceException("Error reading archetype catalog.", e);
55 }
56 }
57
58 @Override
59 public File updateCatalog(RepositorySystemSession repositorySession, Archetype archetype)
60 throws ArchetypeDataSourceException {
61 throw new ArchetypeDataSourceException("Not supported yet.");
62 }
63 }