in src/main/java/org/apache/maven/plugins/ear/util/ArtifactTypeMappingService.java [64:99]
public void configure(final PlexusConfiguration plexusConfiguration)
throws EarPluginException, PlexusConfigurationException {
// No user defined configuration
if (plexusConfiguration == null) {
return;
}
// Inject users configuration
final PlexusConfiguration[] artifactTypeMappings =
plexusConfiguration.getChildren(ARTIFACT_TYPE_MAPPING_ELEMENT);
for (PlexusConfiguration artifactTypeMapping : artifactTypeMappings) {
final String customType = artifactTypeMapping.getAttribute(TYPE_ATTRIBUTE);
final String mapping = artifactTypeMapping.getAttribute(MAPPING_ATTRIBUTE);
if (customType == null) {
throw new EarPluginException("Invalid artifact type mapping, type attribute should be set.");
} else if (mapping == null) {
throw new EarPluginException("Invalid artifact type mapping, mapping attribute should be set.");
} else if (!EarModuleFactory.isStandardArtifactType(mapping)) {
throw new EarPluginException(
"Invalid artifact type mapping, mapping[" + mapping + "] must be a standard Ear artifact type["
+ EarModuleFactory.getStandardArtifactTypes() + "]");
} else if (customMappings.containsKey(customType)) {
throw new EarPluginException(
"Invalid artifact type mapping, type[" + customType + "] is already registered.");
} else {
// Add the custom mapping
customMappings.put(customType, mapping);
// Register the custom mapping to its standard type
List<String> typeMapping = typeMappings.get(mapping);
typeMapping.add(customType);
}
}
}