use of org.apache.maven.shared.io.location.LocatorStrategy in project maven-plugins by apache.
the class DefaultAssemblyReader method readAssemblies.
@Override
public List<Assembly> readAssemblies(final AssemblerConfigurationSource configSource) throws AssemblyReadException, InvalidAssemblerConfigurationException {
final Locator locator = new Locator();
final List<LocatorStrategy> strategies = new ArrayList<LocatorStrategy>();
strategies.add(new RelativeFileLocatorStrategy(configSource.getBasedir()));
strategies.add(new FileLocatorStrategy());
final List<LocatorStrategy> refStrategies = new ArrayList<LocatorStrategy>();
refStrategies.add(new PrefixedClasspathLocatorStrategy("/assemblies/"));
final List<Assembly> assemblies = new ArrayList<Assembly>();
final String[] descriptors = configSource.getDescriptors();
final String[] descriptorRefs = configSource.getDescriptorReferences();
final File descriptorSourceDirectory = configSource.getDescriptorSourceDirectory();
if ((descriptors != null) && (descriptors.length > 0)) {
locator.setStrategies(strategies);
for (String descriptor1 : descriptors) {
getLogger().info("Reading assembly descriptor: " + descriptor1);
addAssemblyFromDescriptor(descriptor1, locator, configSource, assemblies);
}
}
if ((descriptorRefs != null) && (descriptorRefs.length > 0)) {
locator.setStrategies(refStrategies);
for (String descriptorRef : descriptorRefs) {
addAssemblyForDescriptorReference(descriptorRef, configSource, assemblies);
}
}
if ((descriptorSourceDirectory != null) && descriptorSourceDirectory.isDirectory()) {
// CHECKSTYLE_OFF: LineLength
locator.setStrategies(Collections.<LocatorStrategy>singletonList(new RelativeFileLocatorStrategy(descriptorSourceDirectory)));
// CHECKSTYLE_ON: LineLength
final DirectoryScanner scanner = new DirectoryScanner();
scanner.setBasedir(descriptorSourceDirectory);
scanner.setIncludes(new String[] { "**/*.xml" });
scanner.addDefaultExcludes();
scanner.scan();
final String[] paths = scanner.getIncludedFiles();
for (String path : paths) {
addAssemblyFromDescriptor(path, locator, configSource, assemblies);
}
}
if (assemblies.isEmpty()) {
if (configSource.isIgnoreMissingDescriptor()) {
getLogger().debug("Ignoring missing assembly descriptors per configuration. " + "See messages above for specifics.");
} else {
throw new AssemblyReadException("No assembly descriptors found.");
}
}
// check unique IDs
final Set<String> ids = new HashSet<String>();
for (final Assembly assembly : assemblies) {
if (!ids.add(assembly.getId())) {
getLogger().warn("The assembly id " + assembly.getId() + " is used more than once.");
}
}
return assemblies;
}
use of org.apache.maven.shared.io.location.LocatorStrategy in project maven-plugins by apache.
the class PrefixedClasspathLocatorStrategyTest method testResolvePrefixWithLeadingSlashAndWithTrailingSlash.
public void testResolvePrefixWithLeadingSlashAndWithTrailingSlash() {
MessageHolder mh = new DefaultMessageHolder();
LocatorStrategy ls = new PrefixedClasspathLocatorStrategy("/assemblies/");
Location location = ls.resolve("empty.xml", mh);
assertNotNull(location);
assertEquals(0, mh.size());
}
use of org.apache.maven.shared.io.location.LocatorStrategy in project maven-plugins by apache.
the class PrefixedClasspathLocatorStrategyTest method testResolvePrefixWithoutLeadingSlashAndWithoutTrailingSlash.
public void testResolvePrefixWithoutLeadingSlashAndWithoutTrailingSlash() {
MessageHolder mh = new DefaultMessageHolder();
LocatorStrategy ls = new PrefixedClasspathLocatorStrategy("assemblies");
Location location = ls.resolve("empty.xml", mh);
assertNotNull(location);
assertEquals(0, mh.size());
}
use of org.apache.maven.shared.io.location.LocatorStrategy in project maven-plugins by apache.
the class PrefixedClasspathLocatorStrategyTest method testResolvePrefixWithoutLeadingSlashAndWithTrailingSlash.
public void testResolvePrefixWithoutLeadingSlashAndWithTrailingSlash() {
MessageHolder mh = new DefaultMessageHolder();
LocatorStrategy ls = new PrefixedClasspathLocatorStrategy("assemblies/");
Location location = ls.resolve("empty.xml", mh);
assertNotNull(location);
assertEquals(0, mh.size());
}
use of org.apache.maven.shared.io.location.LocatorStrategy in project maven-plugins by apache.
the class PrefixedClasspathLocatorStrategyTest method testResolvePrefixWithLeadingSlashAndWithoutTrailingSlash.
public void testResolvePrefixWithLeadingSlashAndWithoutTrailingSlash() {
MessageHolder mh = new DefaultMessageHolder();
LocatorStrategy ls = new PrefixedClasspathLocatorStrategy("/assemblies");
Location location = ls.resolve("empty.xml", mh);
assertNotNull(location);
assertEquals(0, mh.size());
}
Aggregations