--- /dev/null
+### Git attributes https://git-scm.com/docs/gitattributes
+
+* text=auto
+
+*.java text diff=java
+
+*.xml text eol=lf
+*.xsd text eol=lf
+*.dtd text eol=lf
+*.properties text eol=lf
+
+*.txt text
+*.md text
+*.yml text
+
+*.html text
+*.css text
+*.js text
+
+*.gif binary
+*.png binary
+*.jpeg binary
+*.jpg binary
+
+### EOF ###
--- /dev/null
+##### Git ignore pattern https://git-scm.com/docs/gitignore
+
+
+### Unix
+
+/tmp/
+*~
+*.swp
+*.orig
+# core
+
+
+### macOS
+
+*.DS_Store
+._*
+__MACOSX
+
+
+### Windows
+
+Thumbs.db
+desktop.ini
+
+
+### JDK
+
+hs_err_pid*
+
+
+### Maven
+
+/target/
+
+
+### Netbeans
+
+/build/
+/nbbuild/
+/dist/
+/nbdist/
+/nbproject/
+/nbactions.xml
+/nb-configuration.xml
+
+
+### Eclipse
+
+/bin/
+/.settings/
+/.metadata/
+/.externalToolBuilders/
+/.classpath
+/.project
+/.checkstyle
+
+
+### IntelliJ
+
+/.idea/
+/out/
+*.iws
+*.iml
+*.ipr
+
+
+### EOF ###
+++ /dev/null
-[patterns]
-
-**.txt = native
-
-**.java = native
-**.properties = LF
-
-**.xml = LF
-**.xsd = LF
-**.dtd = LF
-
-**.html = LF
-**.htm = LF
-**.css = LF
-
-**.png = BIN
-**.gif = BIN
-**.jpeg = BIN
-**.jpg = BIN
+++ /dev/null
-#########################
-# for Mercurial hgignore
-#########################
-
-
-#####################
-syntax: regexp
-
-^nb-configuration\.xml$
-^nbactions\.xml$
-^\.classpath$
-^\.project$
-
-\.orig$
-\.orig\..*$
-\.chg\..*$
-\.rej$
-\.conflict\~$
-^target/
-^build/
-^bin/
-^nbproject/
-^\.settings/
-
-
-#####################
-syntax: glob
-
-.DS_Store
-__MACOSX
-[Tt]humbs.db
-[Dd]esktop.ini
-core
-
-
-### EOF ###
JinArchiver 変更履歴
+1.503.106 (2019-05-07)
+ ・JinParser 2.101.106 に対応。
+ ・必須環境をJavaSE8に引き上げ。
+ ・Mercurial(1.503.5-SNAPSHOT)からGit(1.503.105-SNAPSHOT)へSCMを移行。
+
1.503.4 (2017-04-10)
・F国URL修正に伴い JinCore 1.206.10 に対応。
JinArchiverは、人狼BBSの過去ログを独自のXML形式でローカルディスクに
保存するためのツールです。
-※ このアーカイブにはJindolfの実行バイナリは含まれていません。
- Jindolfを動かしたい方は、jindolfで始まり拡張子が*.jarであるファイルを
- 別途入手してください。
※ 人狼BBSのURLは [ http://ninjinix.com/ ] まで
※ 人狼BBSを主催するninjin氏は、JinArchiverの製作に一切関与していません。
JinArchiverに関する問い合わせををninjin氏へ投げかけないように!約束だよ!
=== ソースコードに関して ===
- - JinArchiverはJava言語(JavaSE7)で記述されたプログラムです。
- - JinArchiverはJRE1.7に準拠したJava実行環境で利用できるように作られています。
- 原則として、JRE1.7に準拠した実行系であれば、プラットフォームを選びません。
+ - JinArchiverはJava言語(JavaSE8)で記述されたプログラムです。
+ - JinArchiverはJavaSE8に準拠したJava実行環境で利用できるように作られています。
+ 原則として、JavaSE8に準拠した実行系であれば、プラットフォームを選びません。
=== 開発プロジェクト運営元 ===
./LICENSE.txt
ライセンスに関して。
-./SCM.txt
- ソースコード管理に関して。
-
./pom.xml
Maven3用プロジェクト構成定義ファイル。
+++ /dev/null
-[UTF-8 Japanese]
-
- J i n A r c h i v e r
- バージョン管理システムに関する情報
-
- Copyright(c) 2011 olyutorskii
-
-
-=== バージョン管理体制 ===
-
- このアーカイブの原本は、Mercurial(hg)でバージョン管理されています。
- このアーカイブの原本となる開発資産は、
- https://ja.osdn.net/projects/jindolf/scm/hg/JinArchiver/
- を上位に持つMercurialリポジトリで管理されています。
- アーカイブの代わりにMercurialを通じての開発資産へのアクセスが可能です。
- # hg clone http://hg.osdn.net/view/jindolf/JinArchiver
-
-
-=== 各種設定ファイル ===
-
-./.hgignore
-
-Mercurial 管理の対象外にさせたいファイル群の設定です。
-IDE独自の設定ファイルは基本的に管理対象外とするつもりです。
-
-
-./.hgeol
-
-Mercurial の EOL Extension 用の設定です。
-非バイナリなテキストファイルの改行コードに関する設定です。
-・拡張子が *.txt なローカルファイルの改行文字はローカルの環境に合わせる。
-・拡張子が *.java なローカルファイルの改行文字はローカルの環境に合わせる。
-・それ以外の非バイナリなローカルファイルの改行文字は基本LFで統一。
-・リポジトリ上の全ての非バイナリファイルの改行文字は基本LFで統一。
-というポリシーで運用しています。
-EOL Extensionを有効にしないと設定が反映されません。
-
-
-=== Mercurial に関するリンク ===
-
-・https://www.mercurial-scm.org/
-・https://www.mercurial-scm.org/wiki/.hgignore
-・https://www.selenic.com/mercurial/hgignore.5.html
-・https://www.mercurial-scm.org/wiki/EolExtension
-・https://tortoisehg.bitbucket.io/
-
-
---- EOF ---
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suppressions PUBLIC
- "-//Puppy Crawl//DTD Suppressions 1.1//EN"
- "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
+ "-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
+ "https://checkstyle.org/dtds/suppressions_1_2.dtd">
<!--
Checkstyle suppressions
- for Checkstyle 6.19(7.4) or later
+ for Checkstyle 8.20 or later
- [ http://checkstyle.sourceforge.net/ ]
+ [ https://checkstyle.org/ ]
- Copyright(c) 2010 olyutorskii
+ Copyright(c) 2019 olyutorskii
-->
<suppressions>
+ <!-- Annotations -->
+ <suppress files="" checks="AnnotationOnSameLine" />
+
<!-- Class Design -->
<suppress files="" checks="DesignForExtension" />
<suppress files="" checks="ExplicitInitialization" />
<suppress files="" checks="FinalLocalVariable" />
<suppress files="" checks="MagicNumber" />
+ <suppress files="" checks="OneStatementPerLine" />
<!-- Imports -->
<suppress files="" checks="ImportControl" />
<suppress files="" checks="FinalParameters" />
<suppress files="" checks="TrailingComment" />
+ <!-- Modifiers -->
+ <suppress files="" checks="InterfaceMemberImpliedModifier" />
+
<!-- Whitespace -->
<suppress files="" checks="SingleSpaceSeparator" />
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE module PUBLIC
- "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
- "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
+ "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
+ "https://checkstyle.org/dtds/configuration_1_3.dtd">
<!--
Checkstyle modules
- for Checkstyle 6.19(7.4) or later
+ for Checkstyle 8.20 or later
- [ http://checkstyle.sourceforge.net/ ]
+ [ https://checkstyle.org/ ]
- Copyright(c) 2010 olyutorskii
+ Copyright(c) 2019 olyutorskii
-->
<!-- Filters -->
<module name="SeverityMatchFilter" />
- <module name="SuppressionCommentFilter" />
- <module name="SuppressionFilter" />
+ <!--module name="SuppressionFilter" /-->
<module name="SuppressWarningsFilter" />
- <module name="SuppressWithNearbyCommentFilter" />
+ <module name="SuppressWithPlainTextCommentFilter" />
<!-- Headers -->
<module name="FileTabCharacter" />
+ <module name="BeforeExecutionExclusionFileFilter">
+ <property name="fileNamePattern" value="module\-info\.java$" />
+ </module>
+
+
<module name="TreeWalker">
- <property name="tabWidth" value="8"/>
- <property name="fileExtensions" value="java"/>
+ <property name="tabWidth" value="8" />
+ <property name="fileExtensions" value="java" />
+
+ <module name="SuppressWarningsHolder" />
+
+
+ <!-- Filters -->
+
+ <module name="SuppressionCommentFilter" />
+ <module name="SuppressWithNearbyCommentFilter" />
+ <!--module name="SuppressionXpathFilter" /-->
+ <!--module name="SuppressionXpathSingleFilter" /-->
<!-- Annotations -->
<module name="AnnotationLocation" />
+ <module name="AnnotationOnSameLine" />
<module name="AnnotationUseStyle" />
<module name="MissingDeprecated" />
<module name="MissingOverride" />
<module name="PackageDeclaration" />
<module name="ParameterAssignment" />
<module name="RequireThis">
- <!--property name="checkMethods" value="false" /-->
+ <property name="checkMethods" value="false" />
</module>
<module name="ReturnCount" />
<module name="SimplifyBooleanExpression" />
<module name="AvoidStaticImport" />
<module name="CustomImportOrder" />
<module name="IllegalImport" />
- <module name="ImportControl" />
+ <!--module name="ImportControl" /-->
<module name="ImportOrder" />
<module name="RedundantImport" />
<module name="UnusedImports" />
<module name="ArrayTypeStyle" />
<module name="AvoidEscapedUnicodeCharacters">
- <property name="allowEscapesForControlCharacters" value="true"/>
- <property name="allowByTailComment" value="true"/>
- <property name="allowIfAllCharactersEscaped" value="true"/>
- <property name="allowNonPrintableEscapes" value="true"/>
+ <property name="allowEscapesForControlCharacters" value="true" />
+ <property name="allowByTailComment" value="true" />
+ <property name="allowIfAllCharactersEscaped" value="true" />
+ <property name="allowNonPrintableEscapes" value="true" />
</module>
<module name="CommentsIndentation" />
<module name="DescendantToken" />
- <module name="FileContentsHolder" />
<module name="FinalParameters" />
<module name="Indentation">
<property name="caseIndent" value="0" />
<!-- Modifiers -->
+ <module name="ClassMemberImpliedModifier" />
+ <module name="InterfaceMemberImpliedModifier" />
<module name="ModifierOrder" />
<module name="RedundantModifier" />
<module name="ClassTypeParameterName" />
<module name="ConstantName" />
<module name="InterfaceTypeParameterName" />
+ <module name="LambdaParameterName" />
<module name="LocalFinalVariableName" />
<module name="LocalVariableName" />
<module name="MemberName" />
<module name="SingleSpaceSeparator" />
<module name="TypecastParenPad" />
<module name="WhitespaceAfter" >
- <property name="tokens" value="COMMA, SEMI,"/>
+ <property name="tokens" value="COMMA, SEMI," />
</module>
<module name="WhitespaceAround">
<property
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!--
+ Custom rule set
+ for PMD [ https://pmd.github.io/ ] 6.13.0 or later
+
+ Copyright(c) 2019 olyutorskii
+-->
+
+<ruleset
+ xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0
+ http://pmd.sourceforge.net/ruleset_2_0_0.xsd"
+ name="Custom ruleset"
+>
+
+ <description>
+ custom rulesets
+ </description>
+
+ <rule ref="category/java/bestpractices.xml" />
+
+ <rule ref="category/java/codestyle.xml" >
+ <exclude name="CommentDefaultAccessModifier" />
+ <exclude name="DefaultPackage" />
+ <exclude name="IfElseStmtsMustUseBraces" />
+ <exclude name="IfStmtsMustUseBraces" />
+ <exclude name="LocalVariableCouldBeFinal" />
+ <exclude name="MethodArgumentCouldBeFinal" />
+ <exclude name="OnlyOneReturn" />
+ <exclude name="UnnecessaryLocalBeforeReturn" />
+ <exclude name="UnnecessaryReturn" />
+ </rule>
+ <rule ref="category/java/codestyle.xml/ControlStatementBraces" >
+ <properties>
+ <property name="checkIfElseStmt" value="false"/>
+ <property name="checkSingleIfStmt" value="false"/>
+ </properties>
+ </rule>
+ <rule ref="category/java/codestyle.xml/LongVariable" >
+ <properties>
+ <property name="minimum" value="25"/>
+ </properties>
+ </rule>
+ <rule ref="category/java/codestyle.xml/ShortVariable" >
+ <properties>
+ <property name="minimum" value="2"/>
+ </properties>
+ </rule>
+
+ <rule ref="category/java/design.xml" >
+ <exclude name="AvoidThrowingNullPointerException" />
+ <exclude name="AvoidUncheckedExceptionsInSignatures" />
+ <exclude name="LawOfDemeter" />
+ <exclude name="LoosePackageCoupling" />
+ </rule>
+ <rule ref="category/java/design.xml/NcssCount" >
+ <properties>
+ <property name="methodReportLevel" value="50"/>
+ </properties>
+ </rule>
+
+ <rule ref="category/java/documentation.xml" />
+ <rule ref="category/java/documentation.xml/CommentRequired" >
+ <properties>
+ <property name="fieldCommentRequirement" value="Ignored"/>
+ </properties>
+ </rule>
+ <rule ref="category/java/documentation.xml/CommentSize" >
+ <properties>
+ <property name="maxLines" value="25"/>
+ </properties>
+ </rule>
+
+ <rule ref="category/java/errorprone.xml" >
+ <exclude name="AvoidLiteralsInIfCondition" />
+ <exclude name="BeanMembersShouldSerialize" />
+ <exclude name="DataflowAnomalyAnalysis" />
+ </rule>
+
+ <rule ref="category/java/multithreading.xml" />
+
+ <rule ref="category/java/performance.xml" >
+ <exclude name="ConsecutiveAppendsShouldReuse" />
+ <exclude name="RedundantFieldInitializer" />
+ </rule>
+
+ <rule ref="category/java/security.xml" />
+
+ <!--rule ref="category/pom/errorprone.xml" /-->
+
+ <!--rule ref="category/xml/errorprone.xml" /-->
+
+</ruleset>
+
+<!-- EOF -->
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<!-- ====================================================================== -->
-<!-- Ant build file (http://ant.apache.org/) for Ant 1.8.0 or later. -->
-<!-- ====================================================================== -->
-
-<project basedir=".">
-<description>
-CAUTION : This is not build-file for project-building.
-It's just adapting project-files for native environment.
-</description>
-
-<!-- ====================================================================== -->
-<!-- sanitize files for native environment -->
-<!-- ====================================================================== -->
-
- <target description="sanitize files" name="sanitize" >
- <echo message="sanitize files..." />
-
- <fixcrlf
- srcDir="." includes="*.txt"
- encoding="UTF-8" outputencoding="UTF-8"
- tablength="8" tab="remove"
- eof="remove"
- />
-
- <fixcrlf
- srcDir="./src/" includes="**/*.java"
- encoding="UTF-8" outputencoding="UTF-8"
- tablength="4" tab="remove" javafiles="true"
- eof="remove"
- />
-
- <fixcrlf
- srcDir="./src/" includes="**/*.properties"
- encoding="ISO-8859-1" outputencoding="ISO-8859-1"
- eol="lf"
- eof="remove"
- />
-
- <fixcrlf
- srcDir="./src/" includes="**/*.xml,**/*.xsd,**/*.dtd"
- encoding="UTF-8" outputencoding="UTF-8"
- tablength="8" tab="remove"
- eol="lf"
- eof="remove"
- />
-
- <fixcrlf
- srcDir="./src/" includes="**/*.html,**/*.htm,**/*.css"
- encoding="UTF-8" outputencoding="UTF-8"
- tablength="8" tab="remove"
- eol="lf"
- eof="remove"
- />
-
- <chmod type="file" perm="a-x">
- <fileset dir="." includes="**/*" excludes="**/*.sh" />
- </chmod>
-
- </target>
-
-</project>
-
-<!-- EOF -->
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<!--
- Custom rule set
- for PMD [ https://pmd.github.io/ ] 5.5.2 or later
-
- Copyright(c) 2016 olyutorskii
--->
-
-<ruleset
- xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0
- http://pmd.sourceforge.net/ruleset_2_0_0.xsd"
- name="Custom ruleset"
->
-
- <description>
- custom rulesets
- </description>
-
- <rule ref="rulesets/java/android.xml" />
-
- <rule ref="rulesets/java/basic.xml" />
-
- <rule ref="rulesets/java/braces.xml">
- <exclude name="IfElseStmtsMustUseBraces" />
- <exclude name="IfStmtsMustUseBraces" />
- </rule>
-
- <rule ref="rulesets/java/clone.xml" />
-
- <rule ref="rulesets/java/codesize.xml" />
-
- <rule ref="rulesets/java/comments.xml">
- <exclude name="CommentDefaultAccessModifier" />
- </rule>
- <rule ref="rulesets/java/comments.xml/CommentRequired" >
- <properties>
- <property name="fieldCommentRequirement" value="Ignored"/>
- </properties>
- </rule>
- <rule ref="rulesets/java/comments.xml/CommentSize" >
- <properties>
- <property name="maxLines" value="25"/>
- </properties>
- </rule>
-
- <rule ref="rulesets/java/controversial.xml">
- <exclude name="DefaultPackage" />
- <exclude name="OnlyOneReturn" />
- <exclude name="DataflowAnomalyAnalysis" />
- <exclude name="AvoidLiteralsInIfCondition" />
- </rule>
-
- <rule ref="rulesets/java/coupling.xml">
- <exclude name="LoosePackageCoupling" />
- <exclude name="LawOfDemeter" />
- </rule>
-
- <rule ref="rulesets/java/design.xml">
- <exclude name="UnnecessaryLocalBeforeReturn" />
- <exclude name="FieldDeclarationsShouldBeAtStartOfClass" />
- </rule>
-
- <rule ref="rulesets/java/empty.xml" />
-
- <rule ref="rulesets/java/finalizers.xml" />
-
- <rule ref="rulesets/java/imports.xml" />
-
- <rule ref="rulesets/java/j2ee.xml">
- <exclude name="DoNotUseThreads" />
- </rule>
-
- <rule ref="rulesets/java/logging-jakarta-commons.xml" />
-
- <rule ref="rulesets/java/javabeans.xml">
- <exclude name="BeanMembersShouldSerialize" />
- </rule>
-
- <rule ref="rulesets/java/logging-java.xml" />
-
- <rule ref="rulesets/java/junit.xml" />
-
- <rule ref="rulesets/java/migrating.xml" />
-
- <rule ref="rulesets/java/naming.xml">
- <exclude name="ShortVariable" />
- <exclude name="LongVariable" />
- </rule>
-
- <rule ref="rulesets/java/optimizations.xml">
- <exclude name="LocalVariableCouldBeFinal" />
- <exclude name="MethodArgumentCouldBeFinal" />
- <exclude name="RedundantFieldInitializer" />
- </rule>
-
- <rule ref="rulesets/java/strictexception.xml" />
-
- <rule ref="rulesets/java/strings.xml">
- <exclude name="ConsecutiveAppendsShouldReuse" />
- </rule>
-
- <rule ref="rulesets/java/sunsecure.xml" />
-
- <rule ref="rulesets/java/typeresolution.xml" />
-
- <rule ref="rulesets/java/unnecessary.xml">
- <exclude name="UnnecessaryReturn" />
- </rule>
-
- <rule ref="rulesets/java/unusedcode.xml" />
-
-</ruleset>
-
-<!-- EOF -->
<groupId>jp.sourceforge.jindolf</groupId>
<artifactId>jinarchiver</artifactId>
- <version>1.503.4</version>
+ <version>1.503.106</version>
<packaging>jar</packaging>
<name>JinArchiver</name>
<contributors/>
<mailingLists/>
- <prerequisites>
- <maven>3.0.1</maven>
- </prerequisites>
+ <!-- prerequisites/ -->
<modules/>
<scm>
- <connection>scm:hg:http://hg.osdn.net/view/jindolf/JinArchiver</connection>
- <developerConnection>scm:hg:ssh://hg.osdn.net//hgroot/jindolf/JinArchiver</developerConnection>
- <url>https://osdn.net/projects/jindolf/scm/hg/JinArchiver/</url>
+ <connection>scm:git:git://git.osdn.net/gitroot/jindolf/JinArchiver.git</connection>
+ <developerConnection>scm:git:https://scm.osdn.net/gitroot/jindolf/JinArchiver.git</developerConnection>
+ <url>https://osdn.net/projects/jindolf/scm/git/JinArchiver</url>
</scm>
<issueManagement>
- <system>OSDN.NET</system>
+ <system>OSDN.net</system>
<url>https://ja.osdn.net/projects/jindolf/ticket/</url>
</issueManagement>
<distributionManagement/>
<properties>
- <maven.compiler.source>1.7</maven.compiler.source>
- <maven.compiler.target>1.7</maven.compiler.target>
+ <maven.compiler.source>1.8</maven.compiler.source>
+ <maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.showDeprecation>true</maven.compiler.showDeprecation>
<maven.compiler.showWarnings>true</maven.compiler.showWarnings>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <site.locales>en</site.locales>
- <javadoc.locale>en</javadoc.locale>
- <findbugs.jvmArgs>-Duser.language=en</findbugs.jvmArgs>
+ <locale>en</locale>
+ <site.locales>${locale}</site.locales>
+ <javadoc.locale>${locale}</javadoc.locale>
+ <spotbugs.jvmArgs>-Duser.language=${locale}</spotbugs.jvmArgs>
- <jacoco-plugin.version>0.7.9</jacoco-plugin.version>
+ <!-- Walk around: JDK 11 javadoc + Maven -->
+ <detectJavaApiLink>false</detectJavaApiLink>
- <checkstyle-plugin.version>2.17</checkstyle-plugin.version>
- <checkstyleruntime.version>6.19</checkstyleruntime.version>
- <checkstyle.config.location>${project.basedir}/checkstyle.xml</checkstyle.config.location>
- <checkstyle.suppressions.location>${project.basedir}/checkstyle-suppressions.xml</checkstyle.suppressions.location>
+ <surefire-plugin.version>3.0.0-M3</surefire-plugin.version>
+ <jacoco-plugin.version>0.8.3</jacoco-plugin.version>
+
+ <checkstyle-plugin.version>3.0.0</checkstyle-plugin.version>
+ <checkstyleruntime.version>8.20</checkstyleruntime.version>
+ <checkstyle.config.location>${project.basedir}/config/checkstyle/checkstyle.xml</checkstyle.config.location>
+ <checkstyle.suppressions.location>${project.basedir}/config/checkstyle/checkstyle-suppressions.xml</checkstyle.suppressions.location>
<checkstyle.enable.rss>false</checkstyle.enable.rss>
- <pmd-plugin.version>3.7</pmd-plugin.version>
+ <pmd-plugin.version>3.12.0</pmd-plugin.version>
+ <pmd.analysisCache>true</pmd.analysisCache>
- <findbugs-plugin.version>3.0.4</findbugs-plugin.version>
- <findbugs.effort>Max</findbugs.effort>
- <findbugs.threshold>Low</findbugs.threshold>
+ <spotbugs-plugin.version>3.1.11</spotbugs-plugin.version>
+ <spotbugs.effort>Max</spotbugs.effort>
+ <spotbugs.threshold>Low</spotbugs.threshold>
<!-- for Jenkins -->
- <findbugs.xmlOutput>true</findbugs.xmlOutput>
+ <spotbugs.xmlOutput>true</spotbugs.xmlOutput>
<project.mainentry>jp.sourceforge.jindolf.archiver.JinArchiver</project.mainentry>
</dependency>
<dependency>
- <groupId>jp.sourceforge.jindolf</groupId>
+ <groupId>jp.osdn.jindolf</groupId>
<artifactId>jinparser</artifactId>
- <version>1.409.4</version>
+ <version>2.101.106</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
- <!--artifactId>checkstyle-backport-jre6</artifactId-->
<version>${checkstyleruntime.version}</version>
</dependency>
</dependencies>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
- <version>3.0.0</version>
+ <version>3.1.0</version>
<configuration>
<filesets>
<fileset>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
- <version>1.4.1</version>
- <configuration>
- <rules>
- <requireMavenVersion>
- <version>[3.0.1,)</version>
- </requireMavenVersion>
- <requireJavaVersion>
- <version>[1.7,)</version>
- </requireJavaVersion>
- </rules>
- </configuration>
+ <version>3.0.0-M2</version>
+ <executions>
+ <execution>
+ <id>enforce-versions</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <requireMavenVersion>
+ <version>[3.3.9,)</version>
+ </requireMavenVersion>
+ <requireJavaVersion>
+ <version>[1.8,)</version>
+ </requireJavaVersion>
+ </rules>
+ </configuration>
+ </execution>
+ </executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
- <version>3.0.2</version>
+ <version>3.1.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>3.6.1</version>
+ <version>3.8.0</version>
<configuration>
- <source>1.7</source> <!-- for NetBeans IDE -->
- <target>1.7</target>
+ <source>1.8</source> <!-- for NetBeans IDE -->
+ <target>1.8</target>
<compilerArguments>
<Xlint/>
</compilerArguments>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <version>2.19.1</version>
+ <version>${surefire-plugin.version}</version>
<configuration>
<enableAssertions>true</enableAssertions>
</configuration>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
- <version>3.0.2</version>
+ <version>3.1.1</version>
<configuration>
<archive>
<manifest>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
- <version>3.0.0</version>
+ <version>3.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
- <goal>shade</goal>
+ <goal>shade</goal>
</goals>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
- <version>2.5.2</version>
+ <version>3.0.0-M1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
- <version>2.8.2</version>
+ <version>3.0.0-M1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
- <version>3.6</version>
+ <version>3.7.1</version>
<configuration>
<locales>${site.locales}</locales>
</configuration>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
- <version>3.0.0</version>
+ <version>3.1.1</version>
<configuration>
<descriptors>
<descriptor>src/assembly/src.xml</descriptor>
<version>${checkstyle-plugin.version}</version>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>${pmd-plugin.version}</version>
+ <configuration>
+ <rulesets>
+ <ruleset>${project.basedir}/config/pmd/pmdrules.xml</ruleset>
+ </rulesets>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>com.github.spotbugs</groupId>
+ <artifactId>spotbugs-maven-plugin</artifactId>
+ <version>${spotbugs-plugin.version}</version>
+ </plugin>
+
</plugins>
<resources>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
- <version>2.9</version>
+ <version>3.0.0</version>
<configuration>
<linkOnly>true</linkOnly>
<offline>true</offline>
<reports>
<report>index</report>
<report>summary</report>
- <report>license</report>
+ <report>licenses</report>
<report>dependency-info</report>
<report>dependencies</report>
<report>dependency-convergence</report>
<report>plugins</report>
<report>plugin-management</report>
- <report>project-team</report>
- <report>issue-tracking</report>
+ <report>team</report>
+ <report>issue-management</report>
<report>scm</report>
<!--
<report>dependency-management</report>
<report>distribution-management</report>
- <report>cim</report>
- <report>mailing-list</report>
+ <report>ci-management</report>
+ <report>mailing-lists</report>
<report>modules</report>
-->
</reports>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
- <version>2.10.4</version>
+ <version>3.1.0</version>
<configuration>
<author>false</author>
<notimestamp>true</notimestamp>
<quiet>true</quiet>
<show>protected</show>
- <locale>${javadoc.locale}</locale>
<header>${project.name} ${project.version} API</header>
<version>true</version>
+ <locale>${javadoc.locale}</locale>
+ <!-- for JDK11 javadoc -->
+ <additionalJOption>-J-Duser.language=${javadoc.locale}</additionalJOption>
</configuration>
<reportSets>
<reportSet>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
- <version>2.5</version>
+ <version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
- <version>2.19.1</version>
+ <version>${surefire-plugin.version}</version>
</plugin>
<plugin>
<version>${pmd-plugin.version}</version>
<configuration>
<rulesets>
- <ruleset>${project.basedir}/pmdrules.xml</ruleset>
+ <ruleset>${project.basedir}/config/pmd/pmdrules.xml</ruleset>
</rulesets>
</configuration>
<reportSets>
</plugin>
<plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>findbugs-maven-plugin</artifactId>
- <version>${findbugs-plugin.version}</version>
+ <groupId>com.github.spotbugs</groupId>
+ <artifactId>spotbugs-maven-plugin</artifactId>
+ <version>${spotbugs-plugin.version}</version>
</plugin>
</plugins>
>
<!--
- OSDN.NET用リリースファイル構成定義ファイル
+ OSDN.net用リリースファイル構成定義ファイル
Maven3 assembly用
-->
<includes>
<include>*.xml</include>
<include>*.txt</include>
+ <include>*.md</include>
</includes>
<excludes>
<exclude>nb-configuration.xml</exclude>
<directory>${project.basedir}/src</directory>
<useDefaultExcludes>true</useDefaultExcludes>
</fileSet>
+ <fileSet>
+ <directory>${project.basedir}/config</directory>
+ <useDefaultExcludes>true</useDefaultExcludes>
+ </fileSet>
</fileSets>
</assembly>
package jp.sourceforge.jindolf.archiver;
+import io.bitbucket.olyutorskii.jiocema.DecodeBreakException;
+import io.bitbucket.olyutorskii.jiocema.DecodeNotifier;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;
-import jp.sourceforge.jindolf.parser.ContentBuilder;
-import jp.sourceforge.jindolf.parser.ContentBuilderSJ;
-import jp.sourceforge.jindolf.parser.ContentBuilderUCS2;
-import jp.sourceforge.jindolf.parser.DecodeException;
-import jp.sourceforge.jindolf.parser.DecodedContent;
-import jp.sourceforge.jindolf.parser.HtmlParseException;
-import jp.sourceforge.jindolf.parser.HtmlParser;
-import jp.sourceforge.jindolf.parser.SjisDecoder;
-import jp.sourceforge.jindolf.parser.StreamDecoder;
+import jp.osdn.jindolf.parser.HtmlParseException;
+import jp.osdn.jindolf.parser.HtmlParser;
+import jp.osdn.jindolf.parser.content.ContentBuilder;
+import jp.osdn.jindolf.parser.content.ContentBuilderSJ;
+import jp.osdn.jindolf.parser.content.DecodedContent;
+import jp.osdn.jindolf.parser.content.SjisNotifier;
/**
* 入力から内部構造を生成する。
* @param istream 入力ストリーム
* @return デコード結果
* @throws IOException 入力エラー
- * @throws DecodeException デコードエラー
+ * @throws DecodeBreakException デコードエラー
*/
public static DecodedContent contentFromStream(Charset charset,
InputStream istream)
- throws IOException, DecodeException{
- StreamDecoder decoder;
+ throws IOException, DecodeBreakException{
+ DecodeNotifier decoder;
ContentBuilder builder;
String name = charset.name();
if("Shift_JIS".equalsIgnoreCase(name)){
- decoder = new SjisDecoder();
+ decoder = new SjisNotifier();
builder = new ContentBuilderSJ(BUF_SZ);
}else if("UTF-8".equalsIgnoreCase(name)){
- decoder = new StreamDecoder(charset.newDecoder());
- builder = new ContentBuilderUCS2(BUF_SZ);
+ decoder = new DecodeNotifier(charset.newDecoder());
+ builder = new ContentBuilder(BUF_SZ);
}else{
assert false;
return null;
}
- decoder.setDecodeHandler(builder);
+ decoder.setCharDecodeListener(builder);
decoder.decode(istream);
* 村の各日々をロードしパースする。
* @param villageData 村情報
* @throws IOException 入力エラー
- * @throws DecodeException デコードエラー
+ * @throws DecodeBreakException デコードエラー
* @throws HtmlParseException パースエラー
*/
public static void fillVillageData(VillageData villageData)
- throws IOException, DecodeException, HtmlParseException {
+ throws IOException, DecodeBreakException, HtmlParseException {
HtmlParser parser = new HtmlParser();
Handler handler = new Handler();
parser.setBasicHandler (handler);
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
+import jp.osdn.jindolf.parser.content.DecodedContent;
import jp.sourceforge.jindolf.corelib.GameRole;
import jp.sourceforge.jindolf.corelib.SysEventType;
-import jp.sourceforge.jindolf.parser.DecodedContent;
/**
* システムイベント モデル。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import jp.osdn.jindolf.parser.EntityConverter;
+import jp.osdn.jindolf.parser.HtmlAdapter;
+import jp.osdn.jindolf.parser.HtmlParseException;
+import jp.osdn.jindolf.parser.PageType;
+import jp.osdn.jindolf.parser.SeqRange;
+import jp.osdn.jindolf.parser.content.DecodedContent;
import jp.sourceforge.jindolf.corelib.DisclosureType;
import jp.sourceforge.jindolf.corelib.EventFamily;
import jp.sourceforge.jindolf.corelib.GameRole;
import jp.sourceforge.jindolf.corelib.TalkType;
import jp.sourceforge.jindolf.corelib.Team;
import jp.sourceforge.jindolf.corelib.VillageTag;
-import jp.sourceforge.jindolf.parser.DecodedContent;
-import jp.sourceforge.jindolf.parser.EntityConverter;
-import jp.sourceforge.jindolf.parser.HtmlAdapter;
-import jp.sourceforge.jindolf.parser.HtmlParseException;
-import jp.sourceforge.jindolf.parser.PageType;
-import jp.sourceforge.jindolf.parser.SeqRange;
/**
* パーサ用ハンドラ。
package jp.sourceforge.jindolf.archiver;
+import io.bitbucket.olyutorskii.jiocema.DecodeBreakException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.LinkedList;
import java.util.List;
+import jp.osdn.jindolf.parser.HtmlAdapter;
+import jp.osdn.jindolf.parser.HtmlParseException;
+import jp.osdn.jindolf.parser.HtmlParser;
+import jp.osdn.jindolf.parser.PageType;
+import jp.osdn.jindolf.parser.SeqRange;
+import jp.osdn.jindolf.parser.content.DecodedContent;
import jp.sourceforge.jindolf.corelib.LandDef;
import jp.sourceforge.jindolf.corelib.LandState;
import jp.sourceforge.jindolf.corelib.PeriodType;
-import jp.sourceforge.jindolf.parser.DecodeException;
-import jp.sourceforge.jindolf.parser.DecodedContent;
-import jp.sourceforge.jindolf.parser.HtmlAdapter;
-import jp.sourceforge.jindolf.parser.HtmlParseException;
-import jp.sourceforge.jindolf.parser.HtmlParser;
-import jp.sourceforge.jindolf.parser.PageType;
-import jp.sourceforge.jindolf.parser.SeqRange;
/**
* 人狼HTTPサーバ内のリソース情報を展開する。
* @param landDef 国指定
* @param vid 村番号
* @return ロード元情報一覧
- * @throws DecodeException デコードエラー
+ * @throws DecodeBreakException デコードエラー
* @throws HtmlParseException パースエラー
* @throws IOException 入力エラー
*/
public static List<PeriodResource> loadResourceList(LandDef landDef,
int vid)
- throws DecodeException,
+ throws DecodeBreakException,
HtmlParseException,
IOException {
URL url = getPeriodListURL(landDef, vid);
package jp.sourceforge.jindolf.archiver;
+import io.bitbucket.olyutorskii.jiocema.DecodeBreakException;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.util.List;
import java.util.Properties;
import javax.xml.validation.Validator;
+import jp.osdn.jindolf.parser.HtmlParseException;
import jp.sourceforge.jindolf.corelib.LandDef;
-import jp.sourceforge.jindolf.parser.DecodeException;
-import jp.sourceforge.jindolf.parser.HtmlParseException;
import org.xml.sax.SAXException;
/**
}catch(IOException e){
abortWithException(e);
return;
- }catch(DecodeException e){
+ }catch(DecodeBreakException e){
abortWithException(e);
return;
}catch(HtmlParseException e){
* @param vid 村番号
* @return 村情報
* @throws IOException 入出力エラー
- * @throws DecodeException デコードエラー
+ * @throws DecodeBreakException デコードエラー
* @throws HtmlParseException パースエラー
*/
public static VillageData load(LandDef landDef, int vid)
- throws IOException, DecodeException, HtmlParseException{
+ throws IOException, DecodeBreakException, HtmlParseException{
List<PeriodResource> resourceList =
HttpAccess.loadResourceList(landDef, vid);
VillageData villageData = new VillageData(resourceList);
import java.net.URI;
import java.util.LinkedList;
import java.util.List;
+import jp.osdn.jindolf.parser.content.DecodedContent;
import jp.sourceforge.jindolf.corelib.DisclosureType;
import jp.sourceforge.jindolf.corelib.SysEventType;
-import jp.sourceforge.jindolf.parser.DecodedContent;
/**
* Periodモデル。
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
-import jp.sourceforge.jindolf.parser.DecodedContent;
+import jp.osdn.jindolf.parser.content.DecodedContent;
/**
* テキスト行の集合。
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CodingErrorAction;
-import jp.sourceforge.jindolf.parser.DecodeErrorInfo;
-import jp.sourceforge.jindolf.parser.DecodedContent;
+import jp.osdn.jindolf.parser.content.DecodeErrorInfo;
+import jp.osdn.jindolf.parser.content.DecodedContent;
/**
* windows-31jエンコーディング(機種依存文字)に関する諸々。
import java.util.GregorianCalendar;
import java.util.List;
import java.util.TimeZone;
-import jp.sourceforge.jindolf.parser.DecodeErrorInfo;
-import jp.sourceforge.jindolf.parser.DecodedContent;
+import jp.osdn.jindolf.parser.content.DecodeErrorInfo;
+import jp.osdn.jindolf.parser.content.DecodedContent;
/**
import java.io.StringWriter;
import java.io.Writer;
-import jp.sourceforge.jindolf.parser.DecodeErrorInfo;
-import jp.sourceforge.jindolf.parser.DecodedContent;
+import jp.osdn.jindolf.parser.content.DecodeErrorInfo;
+import jp.osdn.jindolf.parser.content.DecodedContent;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;