Skip to content

Commit 95cdc4a

Browse files
committed
Added logging config and improved RDF format guessing from args
1 parent a5af4c0 commit 95cdc4a

File tree

4 files changed

+50
-15
lines changed

4 files changed

+50
-15
lines changed

sesamize/src/main/java/net/fortytwo/sesametools/sesamize/Sesamize.java

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,21 +36,24 @@ public class Sesamize {
3636
}
3737

3838
private static void printUsage() {
39-
System.out.println("Usage: sesamize [options] subcommand [arguments]");
40-
System.out.println("Options:\n"
39+
System.err.println("Usage: sesamize [options] subcommand [arguments]");
40+
System.err.println("Options:\n"
4141
+ " -h Print this help and exit\n"
4242
+ " -v Print version information and exit");
43-
System.out.println("Subcommands:");
43+
System.err.println("Subcommands:");
4444
StringBuilder sb = new StringBuilder();
4545
printSubcommands(sb);
46-
System.out.print(sb);
47-
System.out.println("E.g.");
48-
System.out.println(" sesamize translate -i trig -o nq mydata.trig > mydata.nq");
49-
System.out.println("For more information, please see:\n"
46+
System.err.print(sb);
47+
System.err.println("E.g.");
48+
System.err.println(" sesamize translate -i trig -o nq mydata.trig > mydata.nq");
49+
System.err.println("For more information, please see:\n"
5050
+ " <URL:http://github.com/joshsh/sesametools/tree/master/sesamize>.");
5151
}
5252

53-
private static void printUsageAndExit(int exitCode) {
53+
private static void printUsageAndExit(int exitCode, String errorMessage) {
54+
if (null != errorMessage) {
55+
System.err.println(errorMessage);
56+
}
5457
printUsage();
5558
System.exit(exitCode);
5659
}
@@ -61,30 +64,34 @@ private static void printVersion() {
6164
}
6265

6366
public static void main(final String[] args) {
64-
SesamizeArgs a = new SesamizeArgs(args);
67+
System.out.println("length: " + args.length);
68+
for (String s : args) System.out.println("\t" + s);
6569

6670
if (args.length < 1) {
67-
printUsageAndExit(1);
71+
printUsageAndExit(1, "missing command");
6872
}
6973

74+
SesamizeArgs a = new SesamizeArgs(args);
75+
7076
if (null != a.getOption(null, "h", "help")) {
71-
printUsageAndExit(0);
77+
printUsageAndExit(0, null);
7278
}
7379

7480
if (null != a.getOption(null, "v", "version")) {
7581
printVersion();
76-
System.exit(0);
82+
return;
7783
}
7884

7985
Command c = subcommands.get(args[0]);
8086

8187
if (null == c) {
82-
printUsageAndExit(1);
88+
printUsageAndExit(1, "no such command: " + args[0]);
8389
} else {
8490
try {
8591
c.execute(a);
8692
} catch (Exception e) {
8793
logger.error("Exited with error", e);
94+
System.err.println(e.getMessage());
8895
System.exit(1);
8996
}
9097
}

sesamize/src/main/java/net/fortytwo/sesametools/sesamize/SesamizeArgs.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package net.fortytwo.sesametools.sesamize;
22

3+
import org.apache.commons.io.FilenameUtils;
4+
import org.eclipse.rdf4j.common.lang.FileFormat;
35
import org.eclipse.rdf4j.rio.RDFFormat;
46
import org.eclipse.rdf4j.rio.RDFParserRegistry;
57

@@ -20,6 +22,16 @@ public class SesamizeArgs {
2022
public final Map<String, String> pairs;
2123
public final List<String> nonOptions;
2224

25+
private static final Map<String, RDFFormat> formatsByFileExtension;
26+
static {
27+
formatsByFileExtension = new HashMap<>();
28+
for (RDFFormat format : RDFParserRegistry.getInstance().getKeys()) {
29+
for (String ext : format.getFileExtensions()) {
30+
formatsByFileExtension.putIfAbsent(ext, format);
31+
}
32+
}
33+
}
34+
2335
public SesamizeArgs(final String[] args) {
2436
flags = new HashSet<>();
2537
pairs = new HashMap<>();
@@ -97,8 +109,10 @@ public RDFFormat getRDFFormat(final File file,
97109
} else {
98110
// otherwise try to find the format based on the file name extension,
99111
// using the specified default value as a fallback
100-
Optional<RDFFormat> f = RDFFormat.matchFileName(file.getName(), null);
101-
format = f.isPresent() ? f.get() : defaultValue;
112+
String ext = FilenameUtils.getExtension(file.getName());
113+
return formatsByFileExtension.get(ext);
114+
//Optional<RDFFormat> f = RDFFormat.matchFileName(file.getName(), );
115+
//format = f.isPresent() ? f.get() : defaultValue;
102116
}
103117

104118
return format;

sesamize/src/main/java/net/fortytwo/sesametools/sesamize/commands/Select.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public Select() {
4646

4747
@Override
4848
public void execute(SesamizeArgs args) throws Exception {
49+
System.out.println("select...");
4950
File inputFile = new File(args.nonOptions.get(1));
5051

5152
RDFFormat inputFormat = args.getRDFFormat(inputFile, RDFFormat.RDFXML, "i", "inputFormat");
@@ -57,6 +58,7 @@ public void execute(SesamizeArgs args) throws Exception {
5758

5859
executeSparqlSelectQuery(query, inputFile, System.out, inputFormat, outputFormat, getBaseURI(args));
5960
}
61+
System.out.println("...done");
6062
}
6163

6264
private void executeSparqlSelectQuery(final String query,
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
log4j.rootLogger=DEBUG, A1, A2
2+
3+
log4j.appender.A1=org.apache.log4j.ConsoleAppender
4+
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
5+
log4j.appender.A1.layout.ConversionPattern=%-5p %c %x - %m%n
6+
7+
log4j.appender.A2=org.apache.log4j.FileAppender
8+
log4j.appender.A2.File=sesamize.log
9+
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
10+
log4j.appender.A2.layout.ConversionPattern=%-5p %c %x - %m%n
11+
12+
log4j.logger.io.milton=TRACE

0 commit comments

Comments
 (0)