Latest commit

History

78 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Text Processing Java Projects

This is a collection of drivers for projects that take structured text inputs.
The projects are built with jacoco instrumentation and report code coverage and thrown exceptions.

Build Instructions

You require java 1.8 or greater.
To build all projects simply execute ./gradlew build (or .\gradlew.bat build on Windows) in the project root directory.
This will generate instrumented, executable jars in the build/libs directory.

There is also the command ./gradlew gatherOriginals, which will download the original, uninstrumented versions of the projects' artifacts into build/originals. These are required for producing coverage reports.

Running the Projects

After being built, every project can be invoked like any normal runnable jar.
To get more information, you can call a project with the --help argument, e.g.:

java -jar build/libs/argo-subject.jar --help

For a more interesting example, if you have some inputs located in ~/tmp/json, you can run the Argo json parser with the following command:

java -jar build/libs/argo-subject.jar \
--ignore-exceptions \
--log-exceptions argo.exceptions.json \
--report-coverage argo.coverage.csv \
--original-bytecode build/libs/originals/argo-5.4.jar \
~/tmp/json

This will execute the parser on all inputs in ~/tmp/json and log all exceptions into argo.exceptions.json and produce a coverage report in argo.coverage.csv.

Turning off the Instrumentation

You can set the de.cispa.se.subjects.instrument property to false to build the subjects without instrumenting them with jacoco. They will still be runnable, but the reported coverage will be zero.

Repository Structure

This repository is organized as a gradle multi-project where each subdirectory encapsulates a driver for a project, with a few notable exceptions:

.
├── argo <-- driver for project argo
├── autolink <-- driver for project autolink
├── ... <-- more project drivers...
├── build <-- the output directory where the built projects end up
├── buildSrc <-- single source of truth for dependency and project versions
├── gradle <-- gradle wrapper, so you don't have to install a build tool
└── utils <-- this contains the entry point, command line processing, and coverage and exception reporting; it is used in all drivers

Projects

These are the projects, which are currently supported:

JSON

ProjectVersionInstrumented Package
argo5.16argo
fastjson1.2.76com.alibaba.fastjson
genson1.6com.owlike.genson
gson2.8.6com.google.gson
jackson-databind2.12.2com.fasterxml.jackson
json-flattener0.12.0com.github.wnameless.json
json-java20210307org.json
json-simple-cliftonlabs3.1.1com.github.cliftonlabs.json_simple
json-simple1.1.1org.json.simple
json2flat1.0.3com.github.opendevl
minimal-json0.9.5com.eclipsesource.json
pojo1.1.0org.jsonschema2pojo

URL

ProjectVersionInstrumented Package
autolink0.10.0org.nibor.autolink
galimatias-nu0.1.3io.mola.galimatias
galimatias0.2.1io.mola.galimatias
jurlv0.4.2com.anthonynsimon.url
url-detector0.1.17com.linkedin.urls.detection

Markdown

ProjectVersionInstrumented Package
commonmark0.17.0org.commonmark
flexmark0.34.48com.vladsch.flexmark
markdown-papers1.4.4org.tautua.markdownpapers
markdown4j2.2-cj-1.1org.markdown4j
markdownj0.4org.markdownj
txtmark0.13com.github.rjeschke.txtmark

CSV

ProjectVersionInstrumented Package
commons-csv1.8org.apache.commons.csv
jackson-dataformat-csv2.12.2com.fasterxml.jackson.dataformat
jcsv1.4.0com.googlecode.jcsv
sfm-csv8.2.3org.simpleflatmapper.csv
simplecsv2.1net.quux00.simplecsv
super-csv2.4.0org.supercsv

JavaScript

ProjectVersionInstrumented PackageNotes
closurev20210302com.google.javascript.jscomp
nashorn-sandbox0.2.0delight.nashornsandboxDelegates to Nashorn (Rhino's precursor)
rhino-sandbox0.0.15delight.rhinosandoxNot a typo. Delegates to Rhino.
rhino1.7.13org.mozilla.javascript

CSS

ProjectVersionInstrumented PackageNotes
batik-css1.14org.apache.batik.css
css-validator1.0.8org.w3c.css.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: org/w3c/css/parser/analyzer/CssParserTokenManager.jjMoveNfa_0 (II)I"
cssparser0.9.29net.sourceforge.cssparser⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/steadystate/css/parser/SACParserCSS21TokenManager.jjMoveNfa_0 (II)I"
flute1.3org.w3c.flute
jstyleparser4.0.0net.sf.cssbox
ph-css6.3.0com.helger.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/helger/css/parser/ParserCSS30TokenManager.jjMoveNfa_0 (II)I"

INI

ProjectVersionInstrumented Package
fastini1.2.1com.github.onlynight.fastini
ini4j0.5.4org.ini4j
java-configparser0.2ca.szc.configparser

Dot

ProjectVersionInstrumented Package
digraph-parser1.0com.paypal.digraph.parser
graphstream2.0org.graphstream
graphviz-java0.18.1guru.nidi

About

A collection of java applications that process structured text inputs.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

78 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Text Processing Java Projects

This is a collection of drivers for projects that take structured text inputs.
The projects are built with jacoco instrumentation and report code coverage and thrown exceptions.

Build Instructions

You require java 1.8 or greater.
To build all projects simply execute ./gradlew build (or .\gradlew.bat build on Windows) in the project root directory.
This will generate instrumented, executable jars in the build/libs directory.

There is also the command ./gradlew gatherOriginals, which will download the original, uninstrumented versions of the projects' artifacts into build/originals. These are required for producing coverage reports.

Running the Projects

After being built, every project can be invoked like any normal runnable jar.
To get more information, you can call a project with the --help argument, e.g.:

java -jar build/libs/argo-subject.jar --help

For a more interesting example, if you have some inputs located in ~/tmp/json, you can run the Argo json parser with the following command:

java -jar build/libs/argo-subject.jar \
--ignore-exceptions \
--log-exceptions argo.exceptions.json \
--report-coverage argo.coverage.csv \
--original-bytecode build/libs/originals/argo-5.4.jar \
~/tmp/json

This will execute the parser on all inputs in ~/tmp/json and log all exceptions into argo.exceptions.json and produce a coverage report in argo.coverage.csv.

Turning off the Instrumentation

You can set the de.cispa.se.subjects.instrument property to false to build the subjects without instrumenting them with jacoco. They will still be runnable, but the reported coverage will be zero.

Repository Structure

This repository is organized as a gradle multi-project where each subdirectory encapsulates a driver for a project, with a few notable exceptions:

.
├── argo <-- driver for project argo
├── autolink <-- driver for project autolink
├── ... <-- more project drivers...
├── build <-- the output directory where the built projects end up
├── buildSrc <-- single source of truth for dependency and project versions
├── gradle <-- gradle wrapper, so you don't have to install a build tool
└── utils <-- this contains the entry point, command line processing, and coverage and exception reporting; it is used in all drivers

Projects

These are the projects, which are currently supported:

JSON

ProjectVersionInstrumented Package
argo5.16argo
fastjson1.2.76com.alibaba.fastjson
genson1.6com.owlike.genson
gson2.8.6com.google.gson
jackson-databind2.12.2com.fasterxml.jackson
json-flattener0.12.0com.github.wnameless.json
json-java20210307org.json
json-simple-cliftonlabs3.1.1com.github.cliftonlabs.json_simple
json-simple1.1.1org.json.simple
json2flat1.0.3com.github.opendevl
minimal-json0.9.5com.eclipsesource.json
pojo1.1.0org.jsonschema2pojo

URL

ProjectVersionInstrumented Package
autolink0.10.0org.nibor.autolink
galimatias-nu0.1.3io.mola.galimatias
galimatias0.2.1io.mola.galimatias
jurlv0.4.2com.anthonynsimon.url
url-detector0.1.17com.linkedin.urls.detection

Markdown

ProjectVersionInstrumented Package
commonmark0.17.0org.commonmark
flexmark0.34.48com.vladsch.flexmark
markdown-papers1.4.4org.tautua.markdownpapers
markdown4j2.2-cj-1.1org.markdown4j
markdownj0.4org.markdownj
txtmark0.13com.github.rjeschke.txtmark

CSV

ProjectVersionInstrumented Package
commons-csv1.8org.apache.commons.csv
jackson-dataformat-csv2.12.2com.fasterxml.jackson.dataformat
jcsv1.4.0com.googlecode.jcsv
sfm-csv8.2.3org.simpleflatmapper.csv
simplecsv2.1net.quux00.simplecsv
super-csv2.4.0org.supercsv

JavaScript

ProjectVersionInstrumented PackageNotes
closurev20210302com.google.javascript.jscomp
nashorn-sandbox0.2.0delight.nashornsandboxDelegates to Nashorn (Rhino's precursor)
rhino-sandbox0.0.15delight.rhinosandoxNot a typo. Delegates to Rhino.
rhino1.7.13org.mozilla.javascript

CSS

ProjectVersionInstrumented PackageNotes
batik-css1.14org.apache.batik.css
css-validator1.0.8org.w3c.css.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: org/w3c/css/parser/analyzer/CssParserTokenManager.jjMoveNfa_0 (II)I"
cssparser0.9.29net.sourceforge.cssparser⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/steadystate/css/parser/SACParserCSS21TokenManager.jjMoveNfa_0 (II)I"
flute1.3org.w3c.flute
jstyleparser4.0.0net.sf.cssbox
ph-css6.3.0com.helger.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/helger/css/parser/ParserCSS30TokenManager.jjMoveNfa_0 (II)I"

INI

ProjectVersionInstrumented Package
fastini1.2.1com.github.onlynight.fastini
ini4j0.5.4org.ini4j
java-configparser0.2ca.szc.configparser

Dot

ProjectVersionInstrumented Package
digraph-parser1.0com.paypal.digraph.parser
graphstream2.0org.graphstream
graphviz-java0.18.1guru.nidi

About

A collection of java applications that process structured text inputs.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

78 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Text Processing Java Projects

This is a collection of drivers for projects that take structured text inputs.
The projects are built with jacoco instrumentation and report code coverage and thrown exceptions.

Build Instructions

You require java 1.8 or greater.
To build all projects simply execute ./gradlew build (or .\gradlew.bat build on Windows) in the project root directory.
This will generate instrumented, executable jars in the build/libs directory.

There is also the command ./gradlew gatherOriginals, which will download the original, uninstrumented versions of the projects' artifacts into build/originals. These are required for producing coverage reports.

Running the Projects

After being built, every project can be invoked like any normal runnable jar.
To get more information, you can call a project with the --help argument, e.g.:

java -jar build/libs/argo-subject.jar --help

For a more interesting example, if you have some inputs located in ~/tmp/json, you can run the Argo json parser with the following command:

java -jar build/libs/argo-subject.jar \
--ignore-exceptions \
--log-exceptions argo.exceptions.json \
--report-coverage argo.coverage.csv \
--original-bytecode build/libs/originals/argo-5.4.jar \
~/tmp/json

This will execute the parser on all inputs in ~/tmp/json and log all exceptions into argo.exceptions.json and produce a coverage report in argo.coverage.csv.

Turning off the Instrumentation

You can set the de.cispa.se.subjects.instrument property to false to build the subjects without instrumenting them with jacoco. They will still be runnable, but the reported coverage will be zero.

Repository Structure

This repository is organized as a gradle multi-project where each subdirectory encapsulates a driver for a project, with a few notable exceptions:

.
├── argo <-- driver for project argo
├── autolink <-- driver for project autolink
├── ... <-- more project drivers...
├── build <-- the output directory where the built projects end up
├── buildSrc <-- single source of truth for dependency and project versions
├── gradle <-- gradle wrapper, so you don't have to install a build tool
└── utils <-- this contains the entry point, command line processing, and coverage and exception reporting; it is used in all drivers

Projects

These are the projects, which are currently supported:

JSON

ProjectVersionInstrumented Package
argo5.16argo
fastjson1.2.76com.alibaba.fastjson
genson1.6com.owlike.genson
gson2.8.6com.google.gson
jackson-databind2.12.2com.fasterxml.jackson
json-flattener0.12.0com.github.wnameless.json
json-java20210307org.json
json-simple-cliftonlabs3.1.1com.github.cliftonlabs.json_simple
json-simple1.1.1org.json.simple
json2flat1.0.3com.github.opendevl
minimal-json0.9.5com.eclipsesource.json
pojo1.1.0org.jsonschema2pojo

URL

ProjectVersionInstrumented Package
autolink0.10.0org.nibor.autolink
galimatias-nu0.1.3io.mola.galimatias
galimatias0.2.1io.mola.galimatias
jurlv0.4.2com.anthonynsimon.url
url-detector0.1.17com.linkedin.urls.detection

Markdown

ProjectVersionInstrumented Package
commonmark0.17.0org.commonmark
flexmark0.34.48com.vladsch.flexmark
markdown-papers1.4.4org.tautua.markdownpapers
markdown4j2.2-cj-1.1org.markdown4j
markdownj0.4org.markdownj
txtmark0.13com.github.rjeschke.txtmark

CSV

ProjectVersionInstrumented Package
commons-csv1.8org.apache.commons.csv
jackson-dataformat-csv2.12.2com.fasterxml.jackson.dataformat
jcsv1.4.0com.googlecode.jcsv
sfm-csv8.2.3org.simpleflatmapper.csv
simplecsv2.1net.quux00.simplecsv
super-csv2.4.0org.supercsv

JavaScript

ProjectVersionInstrumented PackageNotes
closurev20210302com.google.javascript.jscomp
nashorn-sandbox0.2.0delight.nashornsandboxDelegates to Nashorn (Rhino's precursor)
rhino-sandbox0.0.15delight.rhinosandoxNot a typo. Delegates to Rhino.
rhino1.7.13org.mozilla.javascript

CSS

ProjectVersionInstrumented PackageNotes
batik-css1.14org.apache.batik.css
css-validator1.0.8org.w3c.css.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: org/w3c/css/parser/analyzer/CssParserTokenManager.jjMoveNfa_0 (II)I"
cssparser0.9.29net.sourceforge.cssparser⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/steadystate/css/parser/SACParserCSS21TokenManager.jjMoveNfa_0 (II)I"
flute1.3org.w3c.flute
jstyleparser4.0.0net.sf.cssbox
ph-css6.3.0com.helger.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/helger/css/parser/ParserCSS30TokenManager.jjMoveNfa_0 (II)I"

INI

ProjectVersionInstrumented Package
fastini1.2.1com.github.onlynight.fastini
ini4j0.5.4org.ini4j
java-configparser0.2ca.szc.configparser

Dot

ProjectVersionInstrumented Package
digraph-parser1.0com.paypal.digraph.parser
graphstream2.0org.graphstream
graphviz-java0.18.1guru.nidi

About

A collection of java applications that process structured text inputs.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

78 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Text Processing Java Projects

This is a collection of drivers for projects that take structured text inputs.
The projects are built with jacoco instrumentation and report code coverage and thrown exceptions.

Build Instructions

You require java 1.8 or greater.
To build all projects simply execute ./gradlew build (or .\gradlew.bat build on Windows) in the project root directory.
This will generate instrumented, executable jars in the build/libs directory.

There is also the command ./gradlew gatherOriginals, which will download the original, uninstrumented versions of the projects' artifacts into build/originals. These are required for producing coverage reports.

Running the Projects

After being built, every project can be invoked like any normal runnable jar.
To get more information, you can call a project with the --help argument, e.g.:

java -jar build/libs/argo-subject.jar --help

For a more interesting example, if you have some inputs located in ~/tmp/json, you can run the Argo json parser with the following command:

java -jar build/libs/argo-subject.jar \
--ignore-exceptions \
--log-exceptions argo.exceptions.json \
--report-coverage argo.coverage.csv \
--original-bytecode build/libs/originals/argo-5.4.jar \
~/tmp/json

This will execute the parser on all inputs in ~/tmp/json and log all exceptions into argo.exceptions.json and produce a coverage report in argo.coverage.csv.

Turning off the Instrumentation

You can set the de.cispa.se.subjects.instrument property to false to build the subjects without instrumenting them with jacoco. They will still be runnable, but the reported coverage will be zero.

Repository Structure

This repository is organized as a gradle multi-project where each subdirectory encapsulates a driver for a project, with a few notable exceptions:

.
├── argo <-- driver for project argo
├── autolink <-- driver for project autolink
├── ... <-- more project drivers...
├── build <-- the output directory where the built projects end up
├── buildSrc <-- single source of truth for dependency and project versions
├── gradle <-- gradle wrapper, so you don't have to install a build tool
└── utils <-- this contains the entry point, command line processing, and coverage and exception reporting; it is used in all drivers

Projects

These are the projects, which are currently supported:

JSON

ProjectVersionInstrumented Package
argo5.16argo
fastjson1.2.76com.alibaba.fastjson
genson1.6com.owlike.genson
gson2.8.6com.google.gson
jackson-databind2.12.2com.fasterxml.jackson
json-flattener0.12.0com.github.wnameless.json
json-java20210307org.json
json-simple-cliftonlabs3.1.1com.github.cliftonlabs.json_simple
json-simple1.1.1org.json.simple
json2flat1.0.3com.github.opendevl
minimal-json0.9.5com.eclipsesource.json
pojo1.1.0org.jsonschema2pojo

URL

ProjectVersionInstrumented Package
autolink0.10.0org.nibor.autolink
galimatias-nu0.1.3io.mola.galimatias
galimatias0.2.1io.mola.galimatias
jurlv0.4.2com.anthonynsimon.url
url-detector0.1.17com.linkedin.urls.detection

Markdown

ProjectVersionInstrumented Package
commonmark0.17.0org.commonmark
flexmark0.34.48com.vladsch.flexmark
markdown-papers1.4.4org.tautua.markdownpapers
markdown4j2.2-cj-1.1org.markdown4j
markdownj0.4org.markdownj
txtmark0.13com.github.rjeschke.txtmark

CSV

ProjectVersionInstrumented Package
commons-csv1.8org.apache.commons.csv
jackson-dataformat-csv2.12.2com.fasterxml.jackson.dataformat
jcsv1.4.0com.googlecode.jcsv
sfm-csv8.2.3org.simpleflatmapper.csv
simplecsv2.1net.quux00.simplecsv
super-csv2.4.0org.supercsv

JavaScript

ProjectVersionInstrumented PackageNotes
closurev20210302com.google.javascript.jscomp
nashorn-sandbox0.2.0delight.nashornsandboxDelegates to Nashorn (Rhino's precursor)
rhino-sandbox0.0.15delight.rhinosandoxNot a typo. Delegates to Rhino.
rhino1.7.13org.mozilla.javascript

CSS

ProjectVersionInstrumented PackageNotes
batik-css1.14org.apache.batik.css
css-validator1.0.8org.w3c.css.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: org/w3c/css/parser/analyzer/CssParserTokenManager.jjMoveNfa_0 (II)I"
cssparser0.9.29net.sourceforge.cssparser⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/steadystate/css/parser/SACParserCSS21TokenManager.jjMoveNfa_0 (II)I"
flute1.3org.w3c.flute
jstyleparser4.0.0net.sf.cssbox
ph-css6.3.0com.helger.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/helger/css/parser/ParserCSS30TokenManager.jjMoveNfa_0 (II)I"

INI

ProjectVersionInstrumented Package
fastini1.2.1com.github.onlynight.fastini
ini4j0.5.4org.ini4j
java-configparser0.2ca.szc.configparser

Dot

ProjectVersionInstrumented Package
digraph-parser1.0com.paypal.digraph.parser
graphstream2.0org.graphstream
graphviz-java0.18.1guru.nidi

About

A collection of java applications that process structured text inputs.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

78 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Text Processing Java Projects

This is a collection of drivers for projects that take structured text inputs.
The projects are built with jacoco instrumentation and report code coverage and thrown exceptions.

Build Instructions

You require java 1.8 or greater.
To build all projects simply execute ./gradlew build (or .\gradlew.bat build on Windows) in the project root directory.
This will generate instrumented, executable jars in the build/libs directory.

There is also the command ./gradlew gatherOriginals, which will download the original, uninstrumented versions of the projects' artifacts into build/originals. These are required for producing coverage reports.

Running the Projects

After being built, every project can be invoked like any normal runnable jar.
To get more information, you can call a project with the --help argument, e.g.:

java -jar build/libs/argo-subject.jar --help

For a more interesting example, if you have some inputs located in ~/tmp/json, you can run the Argo json parser with the following command:

java -jar build/libs/argo-subject.jar \
--ignore-exceptions \
--log-exceptions argo.exceptions.json \
--report-coverage argo.coverage.csv \
--original-bytecode build/libs/originals/argo-5.4.jar \
~/tmp/json

This will execute the parser on all inputs in ~/tmp/json and log all exceptions into argo.exceptions.json and produce a coverage report in argo.coverage.csv.

Turning off the Instrumentation

You can set the de.cispa.se.subjects.instrument property to false to build the subjects without instrumenting them with jacoco. They will still be runnable, but the reported coverage will be zero.

Repository Structure

This repository is organized as a gradle multi-project where each subdirectory encapsulates a driver for a project, with a few notable exceptions:

.
├── argo <-- driver for project argo
├── autolink <-- driver for project autolink
├── ... <-- more project drivers...
├── build <-- the output directory where the built projects end up
├── buildSrc <-- single source of truth for dependency and project versions
├── gradle <-- gradle wrapper, so you don't have to install a build tool
└── utils <-- this contains the entry point, command line processing, and coverage and exception reporting; it is used in all drivers

Projects

These are the projects, which are currently supported:

JSON

ProjectVersionInstrumented Package
argo5.16argo
fastjson1.2.76com.alibaba.fastjson
genson1.6com.owlike.genson
gson2.8.6com.google.gson
jackson-databind2.12.2com.fasterxml.jackson
json-flattener0.12.0com.github.wnameless.json
json-java20210307org.json
json-simple-cliftonlabs3.1.1com.github.cliftonlabs.json_simple
json-simple1.1.1org.json.simple
json2flat1.0.3com.github.opendevl
minimal-json0.9.5com.eclipsesource.json
pojo1.1.0org.jsonschema2pojo

URL

ProjectVersionInstrumented Package
autolink0.10.0org.nibor.autolink
galimatias-nu0.1.3io.mola.galimatias
galimatias0.2.1io.mola.galimatias
jurlv0.4.2com.anthonynsimon.url
url-detector0.1.17com.linkedin.urls.detection

Markdown

ProjectVersionInstrumented Package
commonmark0.17.0org.commonmark
flexmark0.34.48com.vladsch.flexmark
markdown-papers1.4.4org.tautua.markdownpapers
markdown4j2.2-cj-1.1org.markdown4j
markdownj0.4org.markdownj
txtmark0.13com.github.rjeschke.txtmark

CSV

ProjectVersionInstrumented Package
commons-csv1.8org.apache.commons.csv
jackson-dataformat-csv2.12.2com.fasterxml.jackson.dataformat
jcsv1.4.0com.googlecode.jcsv
sfm-csv8.2.3org.simpleflatmapper.csv
simplecsv2.1net.quux00.simplecsv
super-csv2.4.0org.supercsv

JavaScript

ProjectVersionInstrumented PackageNotes
closurev20210302com.google.javascript.jscomp
nashorn-sandbox0.2.0delight.nashornsandboxDelegates to Nashorn (Rhino's precursor)
rhino-sandbox0.0.15delight.rhinosandoxNot a typo. Delegates to Rhino.
rhino1.7.13org.mozilla.javascript

CSS

ProjectVersionInstrumented PackageNotes
batik-css1.14org.apache.batik.css
css-validator1.0.8org.w3c.css.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: org/w3c/css/parser/analyzer/CssParserTokenManager.jjMoveNfa_0 (II)I"
cssparser0.9.29net.sourceforge.cssparser⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/steadystate/css/parser/SACParserCSS21TokenManager.jjMoveNfa_0 (II)I"
flute1.3org.w3c.flute
jstyleparser4.0.0net.sf.cssbox
ph-css6.3.0com.helger.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/helger/css/parser/ParserCSS30TokenManager.jjMoveNfa_0 (II)I"

INI

ProjectVersionInstrumented Package
fastini1.2.1com.github.onlynight.fastini
ini4j0.5.4org.ini4j
java-configparser0.2ca.szc.configparser

Dot

ProjectVersionInstrumented Package
digraph-parser1.0com.paypal.digraph.parser
graphstream2.0org.graphstream
graphviz-java0.18.1guru.nidi

About

A collection of java applications that process structured text inputs.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

78 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Text Processing Java Projects

This is a collection of drivers for projects that take structured text inputs.
The projects are built with jacoco instrumentation and report code coverage and thrown exceptions.

Build Instructions

You require java 1.8 or greater.
To build all projects simply execute ./gradlew build (or .\gradlew.bat build on Windows) in the project root directory.
This will generate instrumented, executable jars in the build/libs directory.

There is also the command ./gradlew gatherOriginals, which will download the original, uninstrumented versions of the projects' artifacts into build/originals. These are required for producing coverage reports.

Running the Projects

After being built, every project can be invoked like any normal runnable jar.
To get more information, you can call a project with the --help argument, e.g.:

java -jar build/libs/argo-subject.jar --help

For a more interesting example, if you have some inputs located in ~/tmp/json, you can run the Argo json parser with the following command:

java -jar build/libs/argo-subject.jar \
--ignore-exceptions \
--log-exceptions argo.exceptions.json \
--report-coverage argo.coverage.csv \
--original-bytecode build/libs/originals/argo-5.4.jar \
~/tmp/json

This will execute the parser on all inputs in ~/tmp/json and log all exceptions into argo.exceptions.json and produce a coverage report in argo.coverage.csv.

Turning off the Instrumentation

You can set the de.cispa.se.subjects.instrument property to false to build the subjects without instrumenting them with jacoco. They will still be runnable, but the reported coverage will be zero.

Repository Structure

This repository is organized as a gradle multi-project where each subdirectory encapsulates a driver for a project, with a few notable exceptions:

.
├── argo <-- driver for project argo
├── autolink <-- driver for project autolink
├── ... <-- more project drivers...
├── build <-- the output directory where the built projects end up
├── buildSrc <-- single source of truth for dependency and project versions
├── gradle <-- gradle wrapper, so you don't have to install a build tool
└── utils <-- this contains the entry point, command line processing, and coverage and exception reporting; it is used in all drivers

Projects

These are the projects, which are currently supported:

JSON

ProjectVersionInstrumented Package
argo5.16argo
fastjson1.2.76com.alibaba.fastjson
genson1.6com.owlike.genson
gson2.8.6com.google.gson
jackson-databind2.12.2com.fasterxml.jackson
json-flattener0.12.0com.github.wnameless.json
json-java20210307org.json
json-simple-cliftonlabs3.1.1com.github.cliftonlabs.json_simple
json-simple1.1.1org.json.simple
json2flat1.0.3com.github.opendevl
minimal-json0.9.5com.eclipsesource.json
pojo1.1.0org.jsonschema2pojo

URL

ProjectVersionInstrumented Package
autolink0.10.0org.nibor.autolink
galimatias-nu0.1.3io.mola.galimatias
galimatias0.2.1io.mola.galimatias
jurlv0.4.2com.anthonynsimon.url
url-detector0.1.17com.linkedin.urls.detection

Markdown

ProjectVersionInstrumented Package
commonmark0.17.0org.commonmark
flexmark0.34.48com.vladsch.flexmark
markdown-papers1.4.4org.tautua.markdownpapers
markdown4j2.2-cj-1.1org.markdown4j
markdownj0.4org.markdownj
txtmark0.13com.github.rjeschke.txtmark

CSV

ProjectVersionInstrumented Package
commons-csv1.8org.apache.commons.csv
jackson-dataformat-csv2.12.2com.fasterxml.jackson.dataformat
jcsv1.4.0com.googlecode.jcsv
sfm-csv8.2.3org.simpleflatmapper.csv
simplecsv2.1net.quux00.simplecsv
super-csv2.4.0org.supercsv

JavaScript

ProjectVersionInstrumented PackageNotes
closurev20210302com.google.javascript.jscomp
nashorn-sandbox0.2.0delight.nashornsandboxDelegates to Nashorn (Rhino's precursor)
rhino-sandbox0.0.15delight.rhinosandoxNot a typo. Delegates to Rhino.
rhino1.7.13org.mozilla.javascript

CSS

ProjectVersionInstrumented PackageNotes
batik-css1.14org.apache.batik.css
css-validator1.0.8org.w3c.css.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: org/w3c/css/parser/analyzer/CssParserTokenManager.jjMoveNfa_0 (II)I"
cssparser0.9.29net.sourceforge.cssparser⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/steadystate/css/parser/SACParserCSS21TokenManager.jjMoveNfa_0 (II)I"
flute1.3org.w3c.flute
jstyleparser4.0.0net.sf.cssbox
ph-css6.3.0com.helger.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/helger/css/parser/ParserCSS30TokenManager.jjMoveNfa_0 (II)I"

INI

ProjectVersionInstrumented Package
fastini1.2.1com.github.onlynight.fastini
ini4j0.5.4org.ini4j
java-configparser0.2ca.szc.configparser

Dot

ProjectVersionInstrumented Package
digraph-parser1.0com.paypal.digraph.parser
graphstream2.0org.graphstream
graphviz-java0.18.1guru.nidi

About

A collection of java applications that process structured text inputs.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

78 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Text Processing Java Projects

This is a collection of drivers for projects that take structured text inputs.
The projects are built with jacoco instrumentation and report code coverage and thrown exceptions.

Build Instructions

You require java 1.8 or greater.
To build all projects simply execute ./gradlew build (or .\gradlew.bat build on Windows) in the project root directory.
This will generate instrumented, executable jars in the build/libs directory.

There is also the command ./gradlew gatherOriginals, which will download the original, uninstrumented versions of the projects' artifacts into build/originals. These are required for producing coverage reports.

Running the Projects

After being built, every project can be invoked like any normal runnable jar.
To get more information, you can call a project with the --help argument, e.g.:

java -jar build/libs/argo-subject.jar --help

For a more interesting example, if you have some inputs located in ~/tmp/json, you can run the Argo json parser with the following command:

java -jar build/libs/argo-subject.jar \
--ignore-exceptions \
--log-exceptions argo.exceptions.json \
--report-coverage argo.coverage.csv \
--original-bytecode build/libs/originals/argo-5.4.jar \
~/tmp/json

This will execute the parser on all inputs in ~/tmp/json and log all exceptions into argo.exceptions.json and produce a coverage report in argo.coverage.csv.

Turning off the Instrumentation

You can set the de.cispa.se.subjects.instrument property to false to build the subjects without instrumenting them with jacoco. They will still be runnable, but the reported coverage will be zero.

Repository Structure

This repository is organized as a gradle multi-project where each subdirectory encapsulates a driver for a project, with a few notable exceptions:

.
├── argo <-- driver for project argo
├── autolink <-- driver for project autolink
├── ... <-- more project drivers...
├── build <-- the output directory where the built projects end up
├── buildSrc <-- single source of truth for dependency and project versions
├── gradle <-- gradle wrapper, so you don't have to install a build tool
└── utils <-- this contains the entry point, command line processing, and coverage and exception reporting; it is used in all drivers

Projects

These are the projects, which are currently supported:

JSON

ProjectVersionInstrumented Package
argo5.16argo
fastjson1.2.76com.alibaba.fastjson
genson1.6com.owlike.genson
gson2.8.6com.google.gson
jackson-databind2.12.2com.fasterxml.jackson
json-flattener0.12.0com.github.wnameless.json
json-java20210307org.json
json-simple-cliftonlabs3.1.1com.github.cliftonlabs.json_simple
json-simple1.1.1org.json.simple
json2flat1.0.3com.github.opendevl
minimal-json0.9.5com.eclipsesource.json
pojo1.1.0org.jsonschema2pojo

URL

ProjectVersionInstrumented Package
autolink0.10.0org.nibor.autolink
galimatias-nu0.1.3io.mola.galimatias
galimatias0.2.1io.mola.galimatias
jurlv0.4.2com.anthonynsimon.url
url-detector0.1.17com.linkedin.urls.detection

Markdown

ProjectVersionInstrumented Package
commonmark0.17.0org.commonmark
flexmark0.34.48com.vladsch.flexmark
markdown-papers1.4.4org.tautua.markdownpapers
markdown4j2.2-cj-1.1org.markdown4j
markdownj0.4org.markdownj
txtmark0.13com.github.rjeschke.txtmark

CSV

ProjectVersionInstrumented Package
commons-csv1.8org.apache.commons.csv
jackson-dataformat-csv2.12.2com.fasterxml.jackson.dataformat
jcsv1.4.0com.googlecode.jcsv
sfm-csv8.2.3org.simpleflatmapper.csv
simplecsv2.1net.quux00.simplecsv
super-csv2.4.0org.supercsv

JavaScript

ProjectVersionInstrumented PackageNotes
closurev20210302com.google.javascript.jscomp
nashorn-sandbox0.2.0delight.nashornsandboxDelegates to Nashorn (Rhino's precursor)
rhino-sandbox0.0.15delight.rhinosandoxNot a typo. Delegates to Rhino.
rhino1.7.13org.mozilla.javascript

CSS

ProjectVersionInstrumented PackageNotes
batik-css1.14org.apache.batik.css
css-validator1.0.8org.w3c.css.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: org/w3c/css/parser/analyzer/CssParserTokenManager.jjMoveNfa_0 (II)I"
cssparser0.9.29net.sourceforge.cssparser⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/steadystate/css/parser/SACParserCSS21TokenManager.jjMoveNfa_0 (II)I"
flute1.3org.w3c.flute
jstyleparser4.0.0net.sf.cssbox
ph-css6.3.0com.helger.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/helger/css/parser/ParserCSS30TokenManager.jjMoveNfa_0 (II)I"

INI

ProjectVersionInstrumented Package
fastini1.2.1com.github.onlynight.fastini
ini4j0.5.4org.ini4j
java-configparser0.2ca.szc.configparser

Dot

ProjectVersionInstrumented Package
digraph-parser1.0com.paypal.digraph.parser
graphstream2.0org.graphstream
graphviz-java0.18.1guru.nidi

About

A collection of java applications that process structured text inputs.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

78 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Text Processing Java Projects

This is a collection of drivers for projects that take structured text inputs.
The projects are built with jacoco instrumentation and report code coverage and thrown exceptions.

Build Instructions

You require java 1.8 or greater.
To build all projects simply execute ./gradlew build (or .\gradlew.bat build on Windows) in the project root directory.
This will generate instrumented, executable jars in the build/libs directory.

There is also the command ./gradlew gatherOriginals, which will download the original, uninstrumented versions of the projects' artifacts into build/originals. These are required for producing coverage reports.

Running the Projects

After being built, every project can be invoked like any normal runnable jar.
To get more information, you can call a project with the --help argument, e.g.:

java -jar build/libs/argo-subject.jar --help

For a more interesting example, if you have some inputs located in ~/tmp/json, you can run the Argo json parser with the following command:

java -jar build/libs/argo-subject.jar \
--ignore-exceptions \
--log-exceptions argo.exceptions.json \
--report-coverage argo.coverage.csv \
--original-bytecode build/libs/originals/argo-5.4.jar \
~/tmp/json

This will execute the parser on all inputs in ~/tmp/json and log all exceptions into argo.exceptions.json and produce a coverage report in argo.coverage.csv.

Turning off the Instrumentation

You can set the de.cispa.se.subjects.instrument property to false to build the subjects without instrumenting them with jacoco. They will still be runnable, but the reported coverage will be zero.

Repository Structure

This repository is organized as a gradle multi-project where each subdirectory encapsulates a driver for a project, with a few notable exceptions:

.
├── argo <-- driver for project argo
├── autolink <-- driver for project autolink
├── ... <-- more project drivers...
├── build <-- the output directory where the built projects end up
├── buildSrc <-- single source of truth for dependency and project versions
├── gradle <-- gradle wrapper, so you don't have to install a build tool
└── utils <-- this contains the entry point, command line processing, and coverage and exception reporting; it is used in all drivers

Projects

These are the projects, which are currently supported:

JSON

ProjectVersionInstrumented Package
argo5.16argo
fastjson1.2.76com.alibaba.fastjson
genson1.6com.owlike.genson
gson2.8.6com.google.gson
jackson-databind2.12.2com.fasterxml.jackson
json-flattener0.12.0com.github.wnameless.json
json-java20210307org.json
json-simple-cliftonlabs3.1.1com.github.cliftonlabs.json_simple
json-simple1.1.1org.json.simple
json2flat1.0.3com.github.opendevl
minimal-json0.9.5com.eclipsesource.json
pojo1.1.0org.jsonschema2pojo

URL

ProjectVersionInstrumented Package
autolink0.10.0org.nibor.autolink
galimatias-nu0.1.3io.mola.galimatias
galimatias0.2.1io.mola.galimatias
jurlv0.4.2com.anthonynsimon.url
url-detector0.1.17com.linkedin.urls.detection

Markdown

ProjectVersionInstrumented Package
commonmark0.17.0org.commonmark
flexmark0.34.48com.vladsch.flexmark
markdown-papers1.4.4org.tautua.markdownpapers
markdown4j2.2-cj-1.1org.markdown4j
markdownj0.4org.markdownj
txtmark0.13com.github.rjeschke.txtmark

CSV

ProjectVersionInstrumented Package
commons-csv1.8org.apache.commons.csv
jackson-dataformat-csv2.12.2com.fasterxml.jackson.dataformat
jcsv1.4.0com.googlecode.jcsv
sfm-csv8.2.3org.simpleflatmapper.csv
simplecsv2.1net.quux00.simplecsv
super-csv2.4.0org.supercsv

JavaScript

ProjectVersionInstrumented PackageNotes
closurev20210302com.google.javascript.jscomp
nashorn-sandbox0.2.0delight.nashornsandboxDelegates to Nashorn (Rhino's precursor)
rhino-sandbox0.0.15delight.rhinosandoxNot a typo. Delegates to Rhino.
rhino1.7.13org.mozilla.javascript

CSS

ProjectVersionInstrumented PackageNotes
batik-css1.14org.apache.batik.css
css-validator1.0.8org.w3c.css.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: org/w3c/css/parser/analyzer/CssParserTokenManager.jjMoveNfa_0 (II)I"
cssparser0.9.29net.sourceforge.cssparser⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/steadystate/css/parser/SACParserCSS21TokenManager.jjMoveNfa_0 (II)I"
flute1.3org.w3c.flute
jstyleparser4.0.0net.sf.cssbox
ph-css6.3.0com.helger.css⚠️ Currently unsupported because of Jacoco Error: "Method too large: com/helger/css/parser/ParserCSS30TokenManager.jjMoveNfa_0 (II)I"

INI

ProjectVersionInstrumented Package
fastini1.2.1com.github.onlynight.fastini
ini4j0.5.4org.ini4j
java-configparser0.2ca.szc.configparser

Dot

ProjectVersionInstrumented Package
digraph-parser1.0com.paypal.digraph.parser
graphstream2.0org.graphstream
graphviz-java0.18.1guru.nidi

About

A collection of java applications that process structured text inputs.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages