Skip to content

Commit

Permalink
Demo retrospect command
Browse files Browse the repository at this point in the history
  • Loading branch information
pvlasov committed Nov 24, 2024
1 parent c8facb4 commit fb83f8a
Show file tree
Hide file tree
Showing 7 changed files with 108 additions and 19 deletions.
16 changes: 8 additions & 8 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.nasdanika</groupId>
<version>2024.10.0</version>
<version>2024.11.0</version>
<artifactId>demo-cli</artifactId>
<packaging>jar</packaging>
<name>Nasdanika demo command line interface</name>
Expand All @@ -12,27 +12,27 @@
<dependency>
<groupId>org.nasdanika</groupId>
<artifactId>cli-launcher</artifactId>
<version>2024.10.0</version>
<version>2024.11.0</version>
</dependency>
<dependency>
<groupId>org.nasdanika.models.echarts</groupId>
<version>2024.10.0</version>
<version>2024.11.0</version>
<artifactId>graph</artifactId>
</dependency>
<dependency>
<groupId>org.nasdanika.models.ecore</groupId>
<artifactId>cli</artifactId>
<version>2024.10.0</version>
<version>2024.11.0</version>
</dependency>
<dependency>
<groupId>org.nasdanika.models.gitlab</groupId>
<artifactId>cli</artifactId>
<version>2024.10.0</version>
<version>2024.11.0</version>
</dependency>
<dependency>
<groupId>org.nasdanika.html</groupId>
<artifactId>app-model-graph</artifactId>
<version>2024.10.0</version>
<groupId>org.nasdanika.models.app</groupId>
<artifactId>model</artifactId>
<version>2024.11.0</version>
</dependency>

<!-- To prevent slf4j complaining -->
Expand Down
8 changes: 5 additions & 3 deletions src/main/java/module-info.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import org.nasdanika.capability.CapabilityFactory;
import org.nasdanika.launcher.demo.GitLabDemoRetrospectCommandFactory;
import org.nasdanika.launcher.demo.ModuleGraphCommandFactory;
import org.nasdanika.launcher.demo.rules.DemoRuleSetCapabilityFactory;
import org.nasdanika.launcher.demo.rules.InspectYamlCommandFactory;
Expand All @@ -10,10 +11,11 @@

requires org.nasdanika.launcher;
requires org.nasdanika.models.echarts.graph;
requires org.nasdanika.html.model.app.graph;
requires org.nasdanika.models.app.graph;
requires java.sql;
requires java.xml;
requires java.xml.bind;
requires org.nasdanika.models.gitlab.cli;

opens org.nasdanika.launcher.demo to info.picocli;
opens org.nasdanika.launcher.demo.rules; // to info.picocli, org.nasdanika.common;
Expand All @@ -25,6 +27,6 @@
ModuleGraphCommandFactory,
ListRulesCommandFactory,
ListInspectableRulesCommandFactory,
DemoRuleSetCapabilityFactory;

DemoRuleSetCapabilityFactory,
GitLabDemoRetrospectCommandFactory;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package org.nasdanika.launcher.demo;

import java.io.IOException;
import java.util.Date;

import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.nasdanika.capability.CapabilityLoader;
import org.nasdanika.capability.ServiceCapabilityFactory;
import org.nasdanika.capability.ServiceCapabilityFactory.Requirement;
import org.nasdanika.capability.emf.ResourceSetRequirement;
import org.nasdanika.cli.CommandBase;
import org.nasdanika.cli.ParentCommands;
import org.nasdanika.common.PrintStreamProgressMonitor;
import org.nasdanika.common.ProgressMonitor;
import org.nasdanika.models.gitlab.Project;
import org.nasdanika.models.gitlab.cli.GitLabContributorCommand.Result;
import org.nasdanika.models.gitlab.cli.GitLabRetrospectCommand;
import org.nasdanika.models.gitlab.util.GitLabURIHandler;

import picocli.CommandLine.Command;
import picocli.CommandLine.ParentCommand;

@Command(
description = "Demo retrospect command",
name = "demo",
mixinStandardHelpOptions = true)
@ParentCommands(GitLabRetrospectCommand.class)
public class GitLabDemoRetrospectCommand extends CommandBase {

public GitLabDemoRetrospectCommand(CapabilityLoader capabilityLoader) {
super(capabilityLoader);
}

@ParentCommand
private GitLabRetrospectCommand parent;

protected String apply(GitLabURIHandler gitLabURIHandler, Date since, Date until, Project project) throws IOException {
ProgressMonitor progressMonitor = new PrintStreamProgressMonitor();
Requirement<ResourceSetRequirement, ResourceSet> requirement = ServiceCapabilityFactory.createRequirement(ResourceSet.class);
ResourceSet resourceSet = capabilityLoader.loadOne(requirement, progressMonitor);
resourceSet.getURIConverter().getURIHandlers().add(0, gitLabURIHandler);
URI modelURI = URI.createURI(GitLabURIHandler.GITLAB_URI_SCHEME + "://bank/main/retrospect-" + Long.toString(System.currentTimeMillis(), Character.MAX_RADIX) + ".xml");
Resource model = resourceSet.createResource(modelURI);
model.getContents().add(project);
model.save(null);
return "Hello";
}

@Override
public Integer call() throws Exception {
Result<String> result = parent.apply(this::apply);
System.out.println(result);
return 0;
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package org.nasdanika.launcher.demo;

import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;

import org.nasdanika.capability.CapabilityFactory;
import org.nasdanika.cli.SubCommandCapabilityFactory;
import org.nasdanika.common.ProgressMonitor;

import picocli.CommandLine;

public class GitLabDemoRetrospectCommandFactory extends SubCommandCapabilityFactory<GitLabDemoRetrospectCommand> {

@Override
protected Class<GitLabDemoRetrospectCommand> getCommandType() {
return GitLabDemoRetrospectCommand.class;
}

@Override
protected CompletionStage<GitLabDemoRetrospectCommand> doCreateCommand(
List<CommandLine> parentPath,
CapabilityFactory.Loader loader,
ProgressMonitor progressMonitor) {
return CompletableFuture.completedStage(new GitLabDemoRetrospectCommand(loader.getCapabilityLoader()));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
import org.nasdanika.common.Supplier;
import org.nasdanika.drawio.Document;
import org.nasdanika.html.bootstrap.Theme;
import org.nasdanika.html.model.app.Action;
import org.nasdanika.html.model.app.AppFactory;
import org.nasdanika.html.model.app.Label;
import org.nasdanika.html.model.app.gen.AppSiteGenerator;
import org.nasdanika.html.model.app.graph.drawio.DrawioHtmlAppGenerator;
import org.nasdanika.models.app.Action;
import org.nasdanika.models.app.AppFactory;
import org.nasdanika.models.app.Label;
import org.nasdanika.models.app.gen.AppSiteGenerator;
import org.nasdanika.models.app.graph.drawio.DrawioHtmlAppGenerator;

public class TestDrawioActionSiteGenerator {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
import org.nasdanika.common.MutableContext;
import org.nasdanika.common.PrintStreamProgressMonitor;
import org.nasdanika.common.ProgressMonitor;
import org.nasdanika.html.model.app.gen.AppSiteGenerator;
import org.nasdanika.html.model.app.graph.emf.HtmlAppGenerator;
import org.nasdanika.models.app.gen.AppSiteGenerator;
import org.nasdanika.models.app.graph.emf.HtmlAppGenerator;
import org.nasdanika.models.rules.Rule;
import org.nasdanika.models.rules.RuleSet;
import org.nasdanika.ncore.util.NcoreUtil;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public void testStats() {
Map<Metric, int[]> measurements = new TreeMap<>();
BiConsumer<Metric, Integer> measurementConsumer = (metric, measurement) -> measurements.computeIfAbsent(metric, m -> new int[] { 0 })[0] += measurement;
for (String gitRepo: GIT_REPOS) {
repoStats(new File("../" + gitRepo), measurementConsumer);
repoStats(new File("../../git/" + gitRepo), measurementConsumer);
}
for (String gitModelRepo: GIT_MODEL_REPOS) {
repoStats(new File("../../git-models/" + gitModelRepo), measurementConsumer);
Expand Down

0 comments on commit fb83f8a

Please sign in to comment.