# Eclipse project files 
.classpath
.project
.settings/
.checkstyle

# IntelliJ project files
*.iml
*.ipr
*.iws

# Additional tools
.clover/

# OSX files
.DS_Store

# Compiler output, class files
*.class
bin/

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
# *.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

#Test config and output
/target/
test-output/
local/
reports/
.pmd
tmp/
/*.txt
streamA.txt

# Build artifacts
out/
build/
jarsIn/
build.xml
.idea
*.properties
*.releaseBackup
*.next
*.tag

# Jekyll
Gemfile
Gemfile.lock
_site/
_*
_*/
