You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2013/11/05 23:27:16 UTC
svn commit: r1539166 - in /jena/trunk/jena-arq/src/main/java/riotcmd:
CmdLangParse.java nquads.java ntriples.java rdfxml.java riot.java trig.java
turtle.java
Author: andy
Date: Tue Nov 5 22:27:16 2013
New Revision: 1539166
URL: http://svn.apache.org/r1539166
Log:
Enable reading from URL from the command line, and respecting content negotiation.
Modified:
jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java
jena/trunk/jena-arq/src/main/java/riotcmd/nquads.java
jena/trunk/jena-arq/src/main/java/riotcmd/ntriples.java
jena/trunk/jena-arq/src/main/java/riotcmd/rdfxml.java
jena/trunk/jena-arq/src/main/java/riotcmd/riot.java
jena/trunk/jena-arq/src/main/java/riotcmd/trig.java
jena/trunk/jena-arq/src/main/java/riotcmd/turtle.java
Modified: jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java?rev=1539166&r1=1539165&r2=1539166&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java (original)
+++ jena/trunk/jena-arq/src/main/java/riotcmd/CmdLangParse.java Tue Nov 5 22:27:16 2013
@@ -18,16 +18,14 @@
package riotcmd;
-import java.io.ByteArrayInputStream ;
-import java.io.IOException ;
import java.io.InputStream ;
import java.io.OutputStream ;
import java.util.HashMap ;
import java.util.Map ;
-import java.util.Properties ;
import org.apache.jena.atlas.io.IO ;
-import org.apache.jena.atlas.lib.StrUtils ;
+import org.apache.jena.atlas.web.ContentType ;
+import org.apache.jena.atlas.web.TypedInputStream ;
import org.apache.jena.riot.* ;
import org.apache.jena.riot.lang.LabelToNode ;
import org.apache.jena.riot.lang.LangRIOT ;
@@ -38,7 +36,6 @@ import org.apache.jena.riot.process.inf.
import org.apache.jena.riot.system.* ;
import org.apache.jena.riot.tokens.Tokenizer ;
import org.apache.jena.riot.tokens.TokenizerFactory ;
-import org.apache.log4j.PropertyConfigurator ;
import arq.cmd.CmdException ;
import arq.cmdline.* ;
@@ -97,44 +94,9 @@ public abstract class CmdLangParse exten
protected LangHandler langHandlerOverall = null ;
- // This is the setup for command for their message via the logging in ErrorHandlers
- private static final String log4Jsetup = StrUtils.strjoin("\n"
-// , "## Plain output to stdout"
-// , "log4j.appender.riot.plain=org.apache.log4j.ConsoleAppender"
-// , "log4j.appender.riot.plain.target=System.out"
-// , "log4j.appender.riot.plain.layout=org.apache.log4j.PatternLayout"
-// , "log4j.appender.riot.plain.layout.ConversionPattern=%m%n"
- , "## Plain output to stderr"
- , "log4j.appender.riot.plainerr=org.apache.log4j.ConsoleAppender"
- , "log4j.appender.riot.plainerr.target=System.err"
- , "log4j.appender.riot.plainerr.layout=org.apache.log4j.PatternLayout"
- , "log4j.appender.riot.plainerr.layout.ConversionPattern=%-5p %m%n"
- , "## Everything"
- , "log4j.rootLogger=INFO, riot.plainerr"
- , "## Parser output"
- , "log4j.additivity."+SysRIOT.riotLoggerName+"=false"
- , "log4j.logger."+SysRIOT.riotLoggerName+"=ALL, riot.plainerr "
- ) ;
-
- /** Reset the logging to be good for command line tools */
- public static void setLogging()
- {
- // Use a plain logger for output.
- Properties p = new Properties() ;
- InputStream in = new ByteArrayInputStream(StrUtils.asUTF8bytes(log4Jsetup)) ;
- try { p.load(in) ; } catch (IOException ex) {}
- PropertyConfigurator.configure(p) ;
- //LogManager.getLogger(SysRIOT.riotLoggerName).setLevel(Level.ALL) ;
- System.setProperty("log4j.configuration", "set") ;
- }
-
protected CmdLangParse(String[] argv)
{
super(argv) ;
- // As a command, we take control of logging ourselves.
- setLogging() ;
-
-
super.addModule(modTime) ;
super.addModule(modLangParse) ;
@@ -193,18 +155,17 @@ public abstract class CmdLangParse exten
output("Total", totalTuples, totalMillis, langHandlerOverall) ;
}
}
-
+
public void parseFile(String filename)
{
- InputStream in = null ;
- if ( filename.equals("-") )
- parseFile("http://base/", "stdin", System.in) ;
- else
- {
+ TypedInputStream in = null ;
+ if ( filename.equals("-") ) {
+ in = new TypedInputStream(System.in) ;
+ parseFile("http://base/", "stdin", in) ;
+ } else {
try {
- in = IO.openFile(filename) ;
- } catch (Exception ex)
- {
+ in = RDFDataMgr.open(filename) ;
+ } catch (Exception ex) {
System.err.println("Can't open '"+filename+"' "+ex.getMessage()) ;
return ;
}
@@ -213,7 +174,7 @@ public abstract class CmdLangParse exten
}
}
- public void parseFile(String defaultBaseURI, String filename, InputStream in)
+ public void parseFile(String defaultBaseURI, String filename, TypedInputStream in)
{
String baseURI = modLangParse.getBaseIRI() ;
if ( baseURI == null )
@@ -221,10 +182,16 @@ public abstract class CmdLangParse exten
parseRIOT(baseURI, filename, in) ;
}
- protected abstract Lang selectLang(String filename, Lang dftLang) ;
+ protected abstract Lang selectLang(String filename, ContentType contentType, Lang dftLang ) ;
- protected void parseRIOT(String baseURI, String filename, InputStream in)
+ protected void parseRIOT(String baseURI, String filename, TypedInputStream in)
{
+ // I ti s shame we effectively duplicate deciding thelnaguage but we want to control the
+ // pasrer at a deep level (in validation, we want line numbers get into error message)
+ // This code predates RDFDataMgr.
+
+ ContentType ct = in.getMediaType() ;
+
baseURI = SysRIOT.chooseBaseIRI(baseURI, filename) ;
boolean checking = true ;
@@ -246,7 +213,7 @@ public abstract class CmdLangParse exten
// TODO skipOnBadterm
}
- Lang lang = selectLang(filename, RDFLanguages.NQUADS) ;
+ Lang lang = selectLang(filename, ct, RDFLanguages.NQUADS) ;
LangHandler handler = dispatch.get(lang) ;
if ( handler == null )
throw new CmdException("Undefined language: "+lang) ;
Modified: jena/trunk/jena-arq/src/main/java/riotcmd/nquads.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/riotcmd/nquads.java?rev=1539166&r1=1539165&r2=1539166&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/riotcmd/nquads.java (original)
+++ jena/trunk/jena-arq/src/main/java/riotcmd/nquads.java Tue Nov 5 22:27:16 2013
@@ -18,6 +18,7 @@
package riotcmd;
+import org.apache.jena.atlas.web.ContentType ;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFLanguages ;
@@ -43,6 +44,6 @@ public class nquads extends CmdLangParse
}
@Override
- protected Lang selectLang(String filename, Lang lang)
+ protected Lang selectLang(String filename , ContentType contentType , Lang lang )
{ return RDFLanguages.NQUADS ; }
}
Modified: jena/trunk/jena-arq/src/main/java/riotcmd/ntriples.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/riotcmd/ntriples.java?rev=1539166&r1=1539165&r2=1539166&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/riotcmd/ntriples.java (original)
+++ jena/trunk/jena-arq/src/main/java/riotcmd/ntriples.java Tue Nov 5 22:27:16 2013
@@ -18,6 +18,7 @@
package riotcmd;
+import org.apache.jena.atlas.web.ContentType ;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFLanguages ;
@@ -43,6 +44,6 @@ public class ntriples extends CmdLangPar
}
@Override
- protected Lang selectLang(String filename, Lang lang)
+ protected Lang selectLang(String filename , ContentType contentType , Lang lang )
{ return RDFLanguages.NTRIPLES ; }
}
Modified: jena/trunk/jena-arq/src/main/java/riotcmd/rdfxml.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/riotcmd/rdfxml.java?rev=1539166&r1=1539165&r2=1539166&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/riotcmd/rdfxml.java (original)
+++ jena/trunk/jena-arq/src/main/java/riotcmd/rdfxml.java Tue Nov 5 22:27:16 2013
@@ -18,6 +18,7 @@
package riotcmd;
+import org.apache.jena.atlas.web.ContentType ;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFLanguages ;
@@ -43,6 +44,6 @@ public class rdfxml extends CmdLangParse
}
@Override
- protected Lang selectLang(String filename, Lang lang)
+ protected Lang selectLang(String filename , ContentType contentType , Lang lang )
{ return RDFLanguages.RDFXML ; }
}
Modified: jena/trunk/jena-arq/src/main/java/riotcmd/riot.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/riotcmd/riot.java?rev=1539166&r1=1539165&r2=1539166&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/riotcmd/riot.java (original)
+++ jena/trunk/jena-arq/src/main/java/riotcmd/riot.java Tue Nov 5 22:27:16 2013
@@ -18,8 +18,10 @@
package riotcmd;
+import org.apache.jena.atlas.web.ContentType ;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFLanguages ;
+import org.apache.jena.riot.WebContent ;
import com.hp.hpl.jena.sparql.util.Utils ;
@@ -39,11 +41,18 @@ public class riot extends CmdLangParse
}
@Override
- protected Lang selectLang(String filename, Lang dftLang)
+ protected Lang selectLang(String filename, ContentType contentType, Lang dftLang)
{
if ( modLangParse.getLang() != null )
return modLangParse.getLang() ;
- return RDFLanguages.filenameToLang(filename, RDFLanguages.NQUADS) ;
+
+ if ( contentType != null && ! WebContent.contentTypeTextPlain.equals(contentType.getContentType()) )
+ return RDFLanguages.contentTypeToLang(contentType) ;
+
+ Lang lang = RDFLanguages.filenameToLang(filename) ;
+ if ( lang == null )
+ lang = dftLang ;
+ return lang ;
}
@Override
Modified: jena/trunk/jena-arq/src/main/java/riotcmd/trig.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/riotcmd/trig.java?rev=1539166&r1=1539165&r2=1539166&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/riotcmd/trig.java (original)
+++ jena/trunk/jena-arq/src/main/java/riotcmd/trig.java Tue Nov 5 22:27:16 2013
@@ -18,6 +18,7 @@
package riotcmd;
+import org.apache.jena.atlas.web.ContentType ;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFLanguages ;
@@ -43,6 +44,6 @@ public class trig extends CmdLangParse
}
@Override
- protected Lang selectLang(String filename, Lang lang)
+ protected Lang selectLang(String filename , ContentType contentType , Lang lang )
{ return RDFLanguages.TRIG ; }
}
Modified: jena/trunk/jena-arq/src/main/java/riotcmd/turtle.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/riotcmd/turtle.java?rev=1539166&r1=1539165&r2=1539166&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/riotcmd/turtle.java (original)
+++ jena/trunk/jena-arq/src/main/java/riotcmd/turtle.java Tue Nov 5 22:27:16 2013
@@ -18,6 +18,7 @@
package riotcmd;
+import org.apache.jena.atlas.web.ContentType ;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFLanguages ;
@@ -43,6 +44,6 @@ public class turtle extends CmdLangParse
}
@Override
- protected Lang selectLang(String filename, Lang dftLang)
+ protected Lang selectLang(String filename , ContentType contentType , Lang dftLang )
{ return RDFLanguages.TURTLE ; }
}