Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,6 @@
[submodule "src/test/resources/sling-maven/sling-maven"]
path = src/test/resources/sling-maven/sling-maven
url = [email protected]:apache/sling-slingfeature-maven-plugin.git
[submodule "src/test/resources/karaf/karaf"]
path = src/test/resources/karaf/karaf
url = [email protected]:apache/karaf.git
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ public class ModuleGraph implements Callable<Integer> {
)
private Path project;

@CommandLine.Option(
names = {"--exclude-profiles"},
description = "Exclude modules that are part of profiles."
)
private boolean excludeProfiles;

@CommandLine.ArgGroup(exclusive = false)
private PlainText plainText;

Expand Down Expand Up @@ -65,7 +71,7 @@ private static class Json {
@Override
public Integer call() throws XmlPullParserException, IOException {
validate();
MavenModule moduleGraphRoot = Utility.createMavenModuleGraph(project, null, new HashMap<>());
MavenModule moduleGraphRoot = Utility.createMavenModuleGraph(project, null, new HashMap<>(), excludeProfiles);
if (plainText != null) {
printToFile(moduleGraphRoot, plainText.plainText, plainText.indent);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public class Utility {
private Utility() {
}

public static MavenModule createMavenModuleGraph(Path projectRoot, MavenModule parent, Map<Object, Object> properties) throws IOException, XmlPullParserException {
public static MavenModule createMavenModuleGraph(Path projectRoot, MavenModule parent, Map<Object, Object> properties, boolean excludeProfiles) throws IOException, XmlPullParserException {
Path rootPom = projectRoot.resolve("pom.xml");
Model rootModel = readPomModel(rootPom);

Expand All @@ -36,11 +36,11 @@ public static MavenModule createMavenModuleGraph(Path projectRoot, MavenModule p

MavenModule root = new MavenModule(rootModel, rootGroupId, rootArtifactId, rootVersion, properties, projectRoot.toAbsolutePath(), parent);

List<String> submodules = getAllModules(rootModel);
List<String> submodules = getAllModules(rootModel, excludeProfiles);

for (String module : submodules) {
Path modulePath = projectRoot.resolve(module);
MavenModule mavenModule = createMavenModuleGraph(modulePath, root, properties);
MavenModule mavenModule = createMavenModuleGraph(modulePath, root, properties, excludeProfiles);
root.addSubmodule(mavenModule);
}

Expand All @@ -52,8 +52,11 @@ private static Model readPomModel(Path pomPath) throws IOException, XmlPullParse
return reader.read(ReaderFactory.newXmlReader(pomPath.toFile()));
}

private static List<String> getAllModules(Model model) {
private static List<String> getAllModules(Model model, boolean exludeProfiles) {
List<String> modules = new ArrayList<>(model.getModules());
if (exludeProfiles) {
return modules;
}
model.getProfiles().forEach(profile -> modules.addAll(profile.getModules()));
return modules;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ void legend_engine(@TempDir Path temp) throws XmlPullParserException, IOExceptio
"src/test/resources/legend-engine/output.json",
temp.resolve("legend-engine.txt"),
temp.resolve("legend-engine.json"),
2, 2
2, 2, false
);
}

Expand All @@ -48,7 +48,7 @@ void arthas_mavenProperties(@TempDir Path temp) throws XmlPullParserException, I
"src/test/resources/arthas/output.json",
temp.resolve("arthas.txt"),
temp.resolve("arthas.json"),
2, 0
2, 0, false
);
}

Expand All @@ -60,7 +60,7 @@ void persistence_differentProjectRoot(@TempDir Path temp) throws XmlPullParserEx
"src/test/resources/persistence/output.json",
temp.resolve("persistence.txt"),
temp.resolve("persistence.json"),
0, 2
0, 2, false
);
}

Expand All @@ -72,7 +72,19 @@ void slingfeature_maven_plugin_differentPomEncoding(@TempDir Path temp) throws X
"src/test/resources/sling-maven/output.json",
temp.resolve("slingfeature-maven-plugin.txt"),
temp.resolve("slingfeature-maven-plugin.json"),
2, 2
2, 2, false
);
}

@Test
void karaf_oneModuleAbsent(@TempDir Path temp) throws XmlPullParserException, IOException {
runTest(
"src/test/resources/karaf/karaf",
"src/test/resources/karaf/output.txt",
"src/test/resources/karaf/output.json",
temp.resolve("karaf.txt"),
temp.resolve("karaf.json"),
0, 0, true
);
}

Expand All @@ -83,10 +95,11 @@ private void runTest(
Path actualTextPath,
Path actualJsonPath,
int textIndent,
int jsonIndent
int jsonIndent,
boolean excludeProfiles
) throws XmlPullParserException, IOException {
// arrange
MavenModule module = Utility.createMavenModuleGraph(Path.of(modulePath), null, new HashMap<>());
MavenModule module = Utility.createMavenModuleGraph(Path.of(modulePath), null, new HashMap<>(), excludeProfiles);
Path expectedPlainText = Path.of(expectedTextPath);
Path expectedJson = Path.of(expectedJsonPath);

Expand All @@ -110,7 +123,7 @@ private void runTestWithLineCountCheck(
int expectedLineCount
) throws XmlPullParserException, IOException {
// arrange
MavenModule module = Utility.createMavenModuleGraph(Path.of(modulePath), null, new HashMap<>());
MavenModule module = Utility.createMavenModuleGraph(Path.of(modulePath), null, new HashMap<>(), false);
Path expectedPlainText = Path.of(expectedTextPath);
Path expectedJson = Path.of(expectedJsonPath);

Expand Down
1 change: 1 addition & 0 deletions src/test/resources/karaf/karaf
Submodule karaf added at fa2562
1 change: 1 addition & 0 deletions src/test/resources/karaf/output.json

Large diffs are not rendered by default.

238 changes: 238 additions & 0 deletions src/test/resources/karaf/output.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
org.apache.karaf:karaf:4.3.6
org.apache.karaf.itests:itests:4.3.6
org.apache.karaf.itests:tests:4.3.6
org.apache.karaf.itests:common:4.3.6
org.apache.karaf:archetypes:4.3.6
org.apache.karaf.archetypes:karaf-blueprint-archetype:4.3.6
org.apache.karaf.archetypes:karaf-bundle-archetype:4.3.6
org.apache.karaf.archetypes:karaf-kar-archetype:4.3.6
org.apache.karaf.archetypes:karaf-feature-archetype:4.3.6
org.apache.karaf.archetypes:karaf-command-archetype:4.3.6
org.apache.karaf.archetypes:karaf-assembly-archetype:4.3.6
org.apache.karaf.examples:apache-karaf-examples:4.3.6
org.apache.karaf.examples:karaf-war-example:4.3.6
org.apache.karaf.examples:karaf-war-example-features:4.3.6
org.apache.karaf.examples:karaf-war-example-webapp:4.3.6
org.apache.karaf.examples:karaf-websocket-example:4.3.6
org.apache.karaf.examples:karaf-soap-example:4.3.6
org.apache.karaf.examples:karaf-soap-example-features:4.3.6
org.apache.karaf.examples:karaf-soap-example-client:4.3.6
org.apache.karaf.examples:karaf-soap-example-scr:4.3.6
org.apache.karaf.examples:karaf-soap-example-blueprint:4.3.6
org.apache.karaf.examples:karaf-soap-example-api:4.3.6
org.apache.karaf.examples:karaf-scr-example:4.3.6
org.apache.karaf.examples:karaf-scr-example-features:4.3.6
org.apache.karaf.examples:karaf-scr-example-client:4.3.6
org.apache.karaf.examples:karaf-scr-example-provider:4.3.6
org.apache.karaf.examples:karaf-scr-example-api:4.3.6
org.apache.karaf.examples:karaf-scheduler-example:4.3.6
org.apache.karaf.examples:karaf-scheduler-example-features:4.3.6
org.apache.karaf.examples:karaf-scheduler-example-runnable:4.3.6
org.apache.karaf.examples:karaf-servlet-example:4.3.6
org.apache.karaf.examples:karaf-servlet-example-features:4.3.6
org.apache.karaf.examples:karaf-servlet-example-upload:4.3.6
org.apache.karaf.examples:karaf-servlet-example-scr:4.3.6
org.apache.karaf.examples:karaf-servlet-example-blueprint:4.3.6
org.apache.karaf.examples:karaf-servlet-example-registration:4.3.6
org.apache.karaf.examples:karaf-servlet-example-annotation:4.3.6
org.apache.karaf.examples:karaf-rest-example:4.3.6
org.apache.karaf.examples:karaf-rest-example-features:4.3.6
org.apache.karaf.examples:karaf-rest-example-whiteboard:4.3.6
org.apache.karaf.examples:karaf-rest-example-client:4.3.6
org.apache.karaf.examples:karaf-rest-example-client-jersey:4.3.6
org.apache.karaf.examples:karaf-rest-example-client-http:4.3.6
org.apache.karaf.examples:karaf-rest-example-client-cxf:4.3.6
org.apache.karaf.examples:karaf-rest-example-scr:4.3.6
org.apache.karaf.examples:karaf-rest-example-blueprint:4.3.6
org.apache.karaf.examples:karaf-rest-example-api:4.3.6
org.apache.karaf.examples:karaf-redis-example:4.3.6
org.apache.karaf.examples:karaf-redis-example-features:4.3.6
org.apache.karaf.examples:karaf-redis-example-command:4.3.6
org.apache.karaf.examples:karaf-redis-example-service:4.3.6
org.apache.karaf.examples:karaf-redis-example-api:4.3.6
org.apache.karaf.examples:karaf-url-namespace-handler-example:4.3.6
org.apache.karaf.examples:karaf-url-namespace-handler-example-features:4.3.6
org.apache.karaf.examples:karaf-url-namespace-handler-example-core:4.3.6
org.apache.karaf.examples:karaf-mbean-example:4.3.6
org.apache.karaf.examples:karaf-mbean-example-features:4.3.6
org.apache.karaf.examples:karaf-mbean-example-scr:4.3.6
org.apache.karaf.examples:karaf-mbean-example-blueprint:4.3.6
org.apache.karaf.examples:karaf-mbean-example-simple:4.3.6
org.apache.karaf.examples:karaf-mbean-example-provider:4.3.6
org.apache.karaf.examples:karaf-mbean-example-api:4.3.6
org.apache.karaf.examples:karaf-maven-example:4.3.6
org.apache.karaf.examples:karaf-maven-example-run-bundle:4.3.6
org.apache.karaf.examples:karaf-maven-example-run:4.3.6
org.apache.karaf.examples:karaf-itest-example:4.3.6
org.apache.karaf.examples:karaf-jpa-example:4.3.6
org.apache.karaf.examples:karaf-jpa-example-features:4.3.6
org.apache.karaf.examples:karaf-jpa-example-command:4.3.6
org.apache.karaf.examples:karaf-jpa-example-provider:4.3.6
org.apache.karaf.examples:karaf-jpa-example-provider-blueprint:4.3.6
org.apache.karaf.examples:karaf-jpa-example-provider-blueprint-openjpa:4.3.6
org.apache.karaf.examples:karaf-jpa-example-provider-blueprint-hibernate:4.3.6
org.apache.karaf.examples:karaf-jpa-example-provider-blueprint-eclipselink:4.3.6
org.apache.karaf.examples:karaf-jpa-example-provider-ds:4.3.6
org.apache.karaf.examples:karaf-jpa-example-provider-ds-openjpa:4.3.6
org.apache.karaf.examples:karaf-jpa-example-provider-ds-hibernate:4.3.6
org.apache.karaf.examples:karaf-jpa-example-provider-ds-eclipselink:4.3.6
org.apache.karaf.examples:karaf-jpa-example-provider-api:4.3.6
org.apache.karaf.examples:karaf-jms-example:4.3.6
org.apache.karaf.examples:karaf-jms-example-features:4.3.6
org.apache.karaf.examples:karaf-jms-example-command:4.3.6
org.apache.karaf.examples:karaf-jdbc-example:4.3.6
org.apache.karaf.examples:karaf-jdbc-example-features:4.3.6
org.apache.karaf.examples:karaf-jdbc-example-command:4.3.6
org.apache.karaf.examples:karaf-jdbc-example-provider:4.3.6
org.apache.karaf.examples:karaf-jdbc-example-api:4.3.6
org.apache.karaf.examples:karaf-jaas-example:4.3.6
org.apache.karaf.examples:karaf-jaas-example-features:4.3.6
org.apache.karaf.examples:karaf-jaas-example-app:4.3.6
org.apache.karaf.examples:karaf-jaas-example-wab:4.3.6
org.apache.karaf.examples:karaf-jaas-example-war:4.3.6
org.apache.karaf.examples:karaf-log-appender-example:4.3.6
org.apache.karaf.examples:karaf-log-appender-example-features:4.3.6
org.apache.karaf.examples:karaf-log-appender-example-core:4.3.6
org.apache.karaf.examples:karaf-http-resource-example:4.3.6
org.apache.karaf.examples:karaf-http-resource-example-features:4.3.6
org.apache.karaf.examples:karaf-http-resource-example-whiteboard:4.3.6
org.apache.karaf.examples:karaf-dump-example:4.3.6
org.apache.karaf.examples:karaf-docker-example:4.3.6
org.apache.karaf.examples:karaf-docker-example-dynamic-dist:4.3.6
org.apache.karaf.examples:karaf-docker-example-static-dist:4.3.6
org.apache.karaf.examples:karaf-docker-example-app:4.3.6
org.apache.karaf.examples:karaf-deployer-example:4.3.6
org.apache.karaf.examples:karaf-config-example:4.3.6
org.apache.karaf.examples:karaf-config-example-features:4.3.6
org.apache.karaf.examples:karaf-config-example-scr:4.3.6
org.apache.karaf.examples:karaf-config-example-blueprint:4.3.6
org.apache.karaf.examples:karaf-config-example-listener:4.3.6
org.apache.karaf.examples:karaf-config-example-managed-factory:4.3.6
org.apache.karaf.examples:karaf-config-example-managed:4.3.6
org.apache.karaf.examples:karaf-config-example-static:4.3.6
org.apache.karaf.examples:karaf-command-example:4.3.6
org.apache.karaf.examples:karaf-command-example-features:4.3.6
org.apache.karaf.examples:karaf-command-example-command:4.3.6
org.apache.karaf.examples:karaf-command-example-provider:4.3.6
org.apache.karaf.examples:karaf-command-example-api:4.3.6
org.apache.karaf.examples:karaf-cdi-example:4.3.6
org.apache.karaf.examples:karaf-cdi-example-features:4.3.6
org.apache.karaf.examples:karaf-cdi-example-consumer:4.3.6
org.apache.karaf.examples:karaf-cdi-example-provider:4.3.6
org.apache.karaf.examples:karaf-cdi-example-api:4.3.6
org.apache.karaf.examples:karaf-camel-example:4.3.6
org.apache.karaf.examples:karaf-camel-example-features:4.3.6
org.apache.karaf.examples:karaf-camel-example-blueprint:4.3.6
org.apache.karaf.examples:karaf-camel-example-java:4.3.6
org.apache.karaf.examples:karaf-bundle-example:4.3.6
org.apache.karaf.examples:karaf-bundle-example-features:4.3.6
org.apache.karaf.examples:karaf-bundle-example-client:4.3.6
org.apache.karaf.examples:karaf-bundle-example-provider:4.3.6
org.apache.karaf.examples:karaf-bundle-example-common:4.3.6
org.apache.karaf.examples:karaf-branding-example:4.3.6
org.apache.karaf.examples:karaf-blueprint-example:4.3.6
org.apache.karaf.examples:karaf-blueprint-example-features:4.3.6
org.apache.karaf.examples:karaf-blueprint-example-client:4.3.6
org.apache.karaf.examples:karaf-blueprint-example-provider:4.3.6
org.apache.karaf.examples:karaf-blueprint-example-common:4.3.6
org.apache.karaf.assemblies:assemblies:4.3.6
org.apache.karaf:apache-karaf:4.3.6
org.apache.karaf:apache-karaf-minimal:4.3.6
org.apache.karaf.assemblies.features:features:4.3.6
org.apache.karaf.features:enterprise:4.3.6
org.apache.karaf.features:spring-legacy:4.3.6
org.apache.karaf.features:spring:4.3.6
org.apache.karaf.features:standard:4.3.6
org.apache.karaf.features:specs:4.3.6
org.apache.karaf.features:static:4.3.6
org.apache.karaf.features:framework:4.3.6
org.apache.karaf.features:base:4.3.6
org.apache.karaf.specs:specs:4.3.6
org.apache.karaf.specs:org.apache.karaf.specs.java.xml.ws:4.3.6
org.apache.karaf.specs:org.apache.karaf.specs.java.xml:4.3.6
org.apache.karaf.specs:org.apache.karaf.specs.activator:4.3.6
org.apache.karaf.specs:org.apache.karaf.specs.locator:4.3.6
org.apache.karaf:manual:4.3.6
org.apache.karaf.tooling:tooling:4.3.6
org.apache.karaf.tooling:karaf-maven-plugin:4.3.6
org.apache.karaf.tooling:karaf-services-maven-plugin:4.3.6
org.apache.karaf.tooling:org.apache.karaf.tools.utils:4.3.6
org.apache.karaf:org.apache.karaf.event:4.3.6
org.apache.karaf.profile:org.apache.karaf.profile.core:4.3.6
org.apache.karaf.subsystem:org.apache.karaf.subsystem.core:4.3.6
org.apache.karaf.audit:org.apache.karaf.audit.core:4.3.6
org.apache.karaf.services:services:4.3.6
org.apache.karaf.services:org.apache.karaf.services.interceptor:4.3.6
org.apache.karaf.services:org.apache.karaf.services.interceptor.impl:4.3.6
org.apache.karaf.services:org.apache.karaf.services.interceptor.api:4.3.6
org.apache.karaf.services:org.apache.karaf.services.staticcm:4.3.6
org.apache.karaf.services:org.apache.karaf.services.eventadmin:4.3.6
org.apache.karaf.services:org.apache.karaf.services.coordinator:4.3.6
org.apache.karaf.maven:maven-parent:4.3.6
org.apache.karaf.maven:org.apache.karaf.maven.core:4.3.6
org.apache.karaf.jms:org.apache.karaf.jms.core:4.3.6
org.apache.karaf.jdbc:org.apache.karaf.jdbc.core:4.3.6
org.apache.karaf.jndi:org.apache.karaf.jndi.core:4.3.6
org.apache.karaf.docker:org.apache.karaf.docker.core:4.3.6
org.apache.karaf.obr:org.apache.karaf.obr.core:4.3.6
org.apache.karaf.diagnostic:diagnostic:4.3.6
org.apache.karaf.diagnostic:org.apache.karaf.diagnostic.core:4.3.6
org.apache.karaf.diagnostic:org.apache.karaf.diagnostic.boot:4.3.6
org.apache.karaf.scr:scr:4.3.6
org.apache.karaf.scr:org.apache.karaf.scr.state:4.3.6
org.apache.karaf.scr:org.apache.karaf.scr.management:4.3.6
org.apache.karaf.scheduler:org.apache.karaf.scheduler.core:4.3.6
org.apache.karaf.webconsole:webconsole:4.3.6
org.apache.karaf.webconsole:org.apache.karaf.webconsole.instance:4.3.6
org.apache.karaf.webconsole:org.apache.karaf.webconsole.http:4.3.6
org.apache.karaf.webconsole:org.apache.karaf.webconsole.gogo:4.3.6
org.apache.karaf.webconsole:org.apache.karaf.webconsole.features:4.3.6
org.apache.karaf.webconsole:org.apache.karaf.webconsole.console:4.3.6
org.apache.karaf.wrapper:org.apache.karaf.wrapper.core:4.3.6
org.apache.karaf.web:org.apache.karaf.web.core:4.3.6
org.apache.karaf.system:org.apache.karaf.system.core:4.3.6
org.apache.karaf.management:management:4.3.6
org.apache.karaf.management:org.apache.karaf.management.server:4.3.6
org.apache.karaf:org.apache.karaf.client:4.3.6
org.apache.karaf.jaas:jaas:4.3.6
org.apache.karaf.jaas.blueprint:blueprint:4.3.6
org.apache.karaf.jaas.blueprint:org.apache.karaf.jaas.blueprint.jasypt:4.3.6
org.apache.karaf.jaas.blueprint:org.apache.karaf.jaas.blueprint.config:4.3.6
org.apache.karaf.jaas:org.apache.karaf.jaas.command:4.3.6
org.apache.karaf.jaas:org.apache.karaf.jaas.spring-security-crypto:4.3.6
org.apache.karaf.jaas:org.apache.karaf.jaas.jasypt:4.3.6
org.apache.karaf.jaas:org.apache.karaf.jaas.modules:4.3.6
org.apache.karaf.jaas:org.apache.karaf.jaas.config:4.3.6
org.apache.karaf.jaas:org.apache.karaf.jaas.boot:4.3.6
org.apache.karaf.shell:shell:4.3.6
org.apache.karaf.shell:org.apache.karaf.shell.ssh:4.3.6
org.apache.karaf.shell:org.apache.karaf.shell.table:4.3.6
org.apache.karaf.shell:org.apache.karaf.shell.console:4.3.6
org.apache.karaf.shell:org.apache.karaf.shell.core:4.3.6
org.apache.karaf.shell:org.apache.karaf.shell.commands:4.3.6
org.apache.karaf.deployer:deployer:4.3.6
org.apache.karaf.deployer:org.apache.karaf.deployer.wrap:4.3.6
org.apache.karaf.deployer:org.apache.karaf.deployer.kar:4.3.6
org.apache.karaf.deployer:org.apache.karaf.deployer.features:4.3.6
org.apache.karaf.deployer:org.apache.karaf.deployer.blueprint:4.3.6
org.apache.karaf.deployer:org.apache.karaf.deployer.spring:4.3.6
org.apache.karaf.log:org.apache.karaf.log.core:4.3.6
org.apache.karaf.service:service:4.3.6
org.apache.karaf.service:org.apache.karaf.service.guard:4.3.6
org.apache.karaf.service:org.apache.karaf.service.core:4.3.6
org.apache.karaf.http:org.apache.karaf.http.core:4.3.6
org.apache.karaf.package:org.apache.karaf.package.core:4.3.6
org.apache.karaf.instance:org.apache.karaf.instance.core:4.3.6
org.apache.karaf.config:org.apache.karaf.config.core:4.3.6
org.apache.karaf.bundle:bundle:4.3.6
org.apache.karaf.bundle:org.apache.karaf.bundle.springstate:4.3.6
org.apache.karaf.bundle:org.apache.karaf.bundle.blueprintstate:4.3.6
org.apache.karaf.bundle:org.apache.karaf.bundle.core:4.3.6
org.apache.karaf.kar:org.apache.karaf.kar.core:4.3.6
org.apache.karaf.features:features:4.3.6
org.apache.karaf.features:org.apache.karaf.features.command:4.3.6
org.apache.karaf.features:org.apache.karaf.features.core:4.3.6
org.apache.karaf.features:org.apache.karaf.features.extension:4.3.6
org.apache.karaf:org.apache.karaf.main:4.3.6
org.apache.karaf:org.apache.karaf.util:4.3.6
org.apache.karaf:karaf-bom:4.3.6
Loading