Compare commits

...

11 commits
1.0 ... 1.17

70 changed files with 331 additions and 241 deletions

View file

@ -2,25 +2,26 @@
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="test"/>
<classpathentry kind="lib" path="lib/commons-lang3-3.1.jar"/>
<classpathentry kind="lib" path="lib/commons-codec-1.8.jar"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="lib" path="lib/mysql-jdbc-5.0.8.jar"/>
<classpathentry kind="lib" path="lib/joda-time-2.3.jar" sourcepath="lib/joda-time-2.3-sources.jar"/>
<classpathentry kind="lib" path="lib/commons-io-2.4-sources.jar"/>
<classpathentry kind="lib" path="lib/commons-io-2.4.jar" sourcepath="lib/commons-io-2.4-sources.jar"/>
<classpathentry kind="lib" path="lib/Logs/log4j-1.2.17.jar"/>
<classpathentry kind="lib" path="lib/Logs/slf4j-api-1.7.5.jar" sourcepath="lib/Logs/slf4j-api-1.7.5-sources.jar"/>
<classpathentry kind="lib" path="lib/Logs/slf4j-log4j12-1.7.5.jar"/>
<classpathentry kind="lib" path="lib/UnitTesting/hamcrest-core-1.3.jar"/>
<classpathentry kind="lib" path="lib/UnitTesting/junit-4.11.jar"/>
<classpathentry kind="lib" path="lib/hsqldb-2.3.0.jar"/>
<classpathentry kind="lib" path="lib/devinsy-strings-0.4.4.jar" sourcepath="lib/devinsy-strings-0.4.4-sources.zip"/>
<classpathentry kind="lib" path="lib/devinsy-xml-0.4.2.jar" sourcepath="lib/devinsy-xml-0.4.2-sources.zip"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<classpathentry kind="lib" path="lib/UnitTesting/hamcrest-core-1.3.jar" sourcepath="lib/UnitTesting/hamcrest-core-1.3-sources.jar"/>
<classpathentry kind="lib" path="lib/UnitTesting/junit-4.12.jar" sourcepath="lib/UnitTesting/junit-4.12-sources.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<attributes>
<attribute name="module" value="true"/>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="lib/commons-io-2.16.1.jar" sourcepath="lib/commons-io-2.16.1-sources.jar"/>
<classpathentry kind="lib" path="lib/commons-lang3-3.13.0.jar" sourcepath="lib/commons-lang3-3.13.0-sources.jar"/>
<classpathentry kind="lib" path="lib/devinsy-strings-0.17.0.jar" sourcepath="lib/devinsy-strings-0.17.0-sources.zip"/>
<classpathentry kind="lib" path="lib/devinsy-xml-0.17.0.jar" sourcepath="lib/devinsy-xml-0.17.0-sources.zip"/>
<classpathentry kind="lib" path="lib/commons-codec-1.17.1.jar" sourcepath="lib/commons-codec-1.17.1-sources.jar"/>
<classpathentry kind="lib" path="lib/mariadb-java-client-3.4.1.jar"/>
<classpathentry kind="lib" path="lib/hsqldb-2.7.3.jar"/>
<classpathentry kind="lib" path="lib/Logs/log4j-api-2.23.1.jar"/>
<classpathentry kind="lib" path="lib/Logs/log4j-core-2.23.1.jar"/>
<classpathentry kind="lib" path="lib/Logs/log4j-slf4j2-impl-2.23.1.jar"/>
<classpathentry kind="lib" path="lib/Logs/slf4j-api-2.0.16.jar"/>
<classpathentry kind="lib" path="lib/commons-text-1.12.0.jar" sourcepath="lib/commons-text-1.12.0-sources.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View file

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View file

@ -1,15 +1,20 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.compliance=17
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=17
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
@ -17,22 +22,30 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_c
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=49
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
@ -53,11 +66,13 @@ org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false
org.eclipse.jdt.core.formatter.comment.format_block_comments=false
org.eclipse.jdt.core.formatter.comment.format_header=false
org.eclipse.jdt.core.formatter.comment.format_html=true
@ -90,6 +105,7 @@ org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
org.eclipse.jdt.core.formatter.indentation.size=4
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
@ -98,6 +114,7 @@ org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
@ -111,11 +128,12 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
@ -145,6 +163,9 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=inser
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
@ -169,13 +190,17 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
@ -222,6 +247,9 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do n
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
@ -258,9 +286,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
@ -281,11 +312,27 @@ org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
org.eclipse.jdt.core.formatter.tabulation.char=tab
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.use_on_off_tags=false
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true

View file

@ -11,10 +11,12 @@ cleanup.always_use_blocks=true
cleanup.always_use_parentheses_in_expressions=false
cleanup.always_use_this_for_non_static_field_access=true
cleanup.always_use_this_for_non_static_method_access=false
cleanup.convert_functional_interfaces=false
cleanup.convert_to_enhanced_for_loop=false
cleanup.correct_indentation=false
cleanup.format_source_code=true
cleanup.format_source_code_changes_only=false
cleanup.insert_inferred_type_arguments=false
cleanup.make_local_variable_final=false
cleanup.make_parameters_final=true
cleanup.make_private_fields_final=false
@ -29,6 +31,7 @@ cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=fal
cleanup.qualify_static_member_accesses_with_declaring_class=true
cleanup.qualify_static_method_accesses_with_declaring_class=false
cleanup.remove_private_constructors=true
cleanup.remove_redundant_type_arguments=false
cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true
cleanup.remove_trailing_whitespaces_ignore_empty=false
@ -42,8 +45,10 @@ cleanup.remove_unused_private_methods=true
cleanup.remove_unused_private_types=true
cleanup.sort_members=true
cleanup.sort_members_all=false
cleanup.use_anonymous_class_creation=false
cleanup.use_blocks=true
cleanup.use_blocks_only_for_return_and_throw=false
cleanup.use_lambda=true
cleanup.use_parentheses_in_expressions=false
cleanup.use_this_for_non_static_field_access=true
cleanup.use_this_for_non_static_field_access_only_if_necessary=false
@ -54,7 +59,9 @@ cleanup_settings_version=2
eclipse.preferences.version=1
editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
formatter_profile=_SikevaDB
formatter_settings_version=12
formatter_settings_version=13
jautodoc.cleanup.add_header=false
jautodoc.cleanup.replace_header=false
sp_cleanup.add_default_serial_version_id=true
sp_cleanup.add_generated_serial_version_id=false
sp_cleanup.add_missing_annotations=true

View file

@ -2,6 +2,6 @@
<faceted-project>
<fixed facet="java"/>
<fixed facet="jst.utility"/>
<installed facet="java" version="1.6"/>
<installed facet="jst.utility" version="1.0"/>
<installed facet="java" version="17"/>
</faceted-project>

View file

@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit!
#Wed Feb 28 19:03:09 CET 2018
build.number=2
#Fri Aug 23 12:19:51 CEST 2024
build.number=1

View file

@ -1,3 +1,3 @@
product.name=sikevadb
product.revision.major=1
product.revision.minor=0
product.revision.minor=17

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -12,4 +12,9 @@ Description of used libraries:
- other:
- commons-codec digest tools
- commons-io
- commons-lang useful tools (StringUtils...)
- devinsy-strings
- devinsy-xml
- hsqldb
- mysql-jdbc

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
lib/commons-io-2.16.1.jar Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
lib/commons-text-1.12.0.jar Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
lib/devinsy-xml-0.17.0.jar Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
lib/hsqldb-2.7.3.jar Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013-2017 Christian Pierre MOMON <christian.momon@devinsy.fr>
* Copyright (C) 2013-2024 Christian Pierre MOMON <christian.momon@devinsy.fr>
*
* This file is part of SikevaDB, simple key value database.
*
@ -21,8 +21,8 @@ package fr.devinsy.sikevadb;
import java.io.File;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.PropertyConfigurator;
import org.apache.logging.log4j.core.config.Configurator;
import org.apache.logging.log4j.core.config.DefaultConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -55,13 +55,13 @@ public final class SikevaDBLauncher
File loggerConfig = new File("log4j.properties");
if (loggerConfig.exists())
{
PropertyConfigurator.configure(loggerConfig.getAbsolutePath());
Configurator.initialize(null, loggerConfig.getAbsolutePath());
logger.info("Dedicated log configuration done.");
logger.info("Configuration file was found in [{}].", loggerConfig.getAbsoluteFile());
}
else
{
BasicConfigurator.configure();
Configurator.initialize(new DefaultConfiguration());
logger.info("Basic log configuration done.");
logger.info("Configuration file was not found in [{}].", loggerConfig.getAbsoluteFile());
}

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013-2017 Christian Pierre MOMON <christian.momon@devinsy.fr>
* Copyright (C) 2013-2024 Christian Pierre MOMON <christian.momon@devinsy.fr>
*
* This file is part of SikevaDB, simple key value database.
*
@ -22,14 +22,14 @@ package fr.devinsy.sikevadb.cli;
import java.io.File;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.PropertyConfigurator;
import org.apache.logging.log4j.core.config.Configurator;
import org.apache.logging.log4j.core.config.DefaultConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import utils.BuildInformation;
import fr.devinsy.sikevadb.core.SikevaDBException;
import fr.devinsy.util.strings.StringList;
import fr.devinsy.strings.StringList;
import utils.BuildInformation;
/**
* The Class <code>SikevaDBCLI</code> manages a Command Line Interface for
@ -76,13 +76,13 @@ public final class SikevaDBCLI
File loggerConfig = new File("log4j.properties");
if (loggerConfig.exists())
{
PropertyConfigurator.configure(loggerConfig.getAbsolutePath());
Configurator.initialize(null, loggerConfig.getAbsolutePath());
logger.info("Dedicated log configuration done.");
logger.info("Configuration file was found in [{}].", loggerConfig.getAbsoluteFile());
}
else
{
BasicConfigurator.configure();
Configurator.initialize(new DefaultConfiguration());
logger.info("Basic log configuration done.");
logger.info("Configuration file was not found in [{}].", loggerConfig.getAbsoluteFile());
}

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013-2017 Christian Pierre MOMON <christian.momon@devinsy.fr>
* Copyright (C) 2013-2024 Christian Pierre MOMON <christian.momon@devinsy.fr>
*
* This file is part of SikevaDB, simple key value database.
*
@ -20,8 +20,6 @@ package fr.devinsy.sikevadb.core;
/**
* The Interface Archiver.
*
* @author Christian Pierre MOMON
*/
public interface Archiver
{
@ -31,17 +29,50 @@ public interface Archiver
SUSPENDED
}
/**
* Activate.
*/
void activate();
/**
* Archive.
*
* @param element
* the element
* @throws SikevaDBException
* the sikeva DB exception
*/
void archive(Element element) throws SikevaDBException;
/**
* Clear.
*
* @throws SikevaDBException
* the sikeva DB exception
*/
void clear() throws SikevaDBException;
/**
* Close.
*/
void close();
/**
* Checks if is activated.
*
* @return true, if is activated
*/
boolean isActivated();
/**
* Checks if is suspended.
*
* @return true, if is suspended
*/
boolean isSuspended();
/**
* Suspend.
*/
void suspend();
}

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 Christian Pierre MOMON <christian.momon@devinsy.fr>
* Copyright (C) 2018-2024 Christian Pierre MOMON <christian.momon@devinsy.fr>
*
* This file is part of SikevaDB, simple key value database.
*
@ -19,15 +19,14 @@
package fr.devinsy.sikevadb.core;
/**
*
* @author Christian Pierre MOMON (christian.momon@devinsy.fr)
* The Class ClosedDatabaseException.
*/
public class ClosedDatabaseException extends SikevaDBException
{
private static final long serialVersionUID = 8364599416669077052L;
/**
*
* Instantiates a new closed database exception.
*/
public ClosedDatabaseException()
{
@ -35,8 +34,10 @@ public class ClosedDatabaseException extends SikevaDBException
}
/**
*
* Instantiates a new closed database exception.
*
* @param message
* the message
*/
public ClosedDatabaseException(final String message)
{
@ -44,9 +45,12 @@ public class ClosedDatabaseException extends SikevaDBException
}
/**
*
* Instantiates a new closed database exception.
*
* @param message
* the message
* @param cause
* the cause
*/
public ClosedDatabaseException(final String message, final Throwable cause)
{
@ -54,8 +58,10 @@ public class ClosedDatabaseException extends SikevaDBException
}
/**
*
* Instantiates a new closed database exception.
*
* @param cause
* the cause
*/
public ClosedDatabaseException(final Throwable cause)
{

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013-2017 Christian Pierre MOMON <christian.momon@devinsy.fr>
* Copyright (C) 2013-2018 Christian Pierre MOMON <christian.momon@devinsy.fr>
*
* This file is part of SikevaDB, simple key value database.
*
@ -18,8 +18,9 @@
*/
package fr.devinsy.sikevadb.core;
import java.time.LocalDateTime;
import org.apache.commons.codec.digest.DigestUtils;
import org.joda.time.DateTime;
/**
* The Class Element.
@ -31,10 +32,10 @@ public class Element
public static final long NO_ID = -1;
private long id;
private DateTime creationDate;
private DateTime editionDate;
private LocalDateTime creationDate;
private LocalDateTime editionDate;
/* archiveDate field is reserved for journalizer. */
private DateTime archiveDate;
private LocalDateTime archiveDate;
private String key;
private String subkey;
private long size;
@ -72,7 +73,7 @@ public class Element
*/
public void archive()
{
this.archiveDate = DateTime.now();
this.archiveDate = LocalDateTime.now();
}
/**
@ -80,7 +81,7 @@ public class Element
*
* @return the archive date
*/
public DateTime getArchiveDate()
public LocalDateTime getArchiveDate()
{
return this.archiveDate;
}
@ -90,7 +91,7 @@ public class Element
*
* @return the creation date
*/
public DateTime getCreationDate()
public LocalDateTime getCreationDate()
{
return this.creationDate;
}
@ -110,7 +111,7 @@ public class Element
*
* @return the edition date
*/
public DateTime getEditionDate()
public LocalDateTime getEditionDate()
{
return this.editionDate;
}
@ -171,7 +172,7 @@ public class Element
* @param date
* the new archive date
*/
public void setArchiveDate(final DateTime date)
public void setArchiveDate(final LocalDateTime date)
{
this.archiveDate = date;
}
@ -182,7 +183,7 @@ public class Element
* @param date
* the new creation date
*/
public void setCreationDate(final DateTime date)
public void setCreationDate(final LocalDateTime date)
{
this.creationDate = date;
}
@ -204,7 +205,7 @@ public class Element
* @param date
* the new edition date
*/
public void setEditionDate(final DateTime date)
public void setEditionDate(final LocalDateTime date)
{
this.editionDate = date;
}
@ -276,7 +277,7 @@ public class Element
setValue(value);
//
this.editionDate = DateTime.now();
this.editionDate = LocalDateTime.now();
//
if (value == null)

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 Christian Pierre MOMON <christian.momon@devinsy.fr>
* Copyright (C) 2018-2024 Christian Pierre MOMON <christian.momon@devinsy.fr>
*
* This file is part of SikevaDB, simple key value database.
*
@ -19,15 +19,14 @@
package fr.devinsy.sikevadb.core;
/**
*
* @author Christian Pierre MOMON (christian.momon@devinsy.fr)
* The Class OpenedDatabaseException.
*/
public class OpenedDatabaseException extends SikevaDBException
{
private static final long serialVersionUID = 8364599416669077052L;
/**
*
* Instantiates a new opened database exception.
*/
public OpenedDatabaseException()
{
@ -35,8 +34,10 @@ public class OpenedDatabaseException extends SikevaDBException
}
/**
*
* Instantiates a new opened database exception.
*
* @param message
* the message
*/
public OpenedDatabaseException(final String message)
{
@ -44,9 +45,12 @@ public class OpenedDatabaseException extends SikevaDBException
}
/**
*
* Instantiates a new opened database exception.
*
* @param message
* the message
* @param cause
* the cause
*/
public OpenedDatabaseException(final String message, final Throwable cause)
{
@ -54,8 +58,10 @@ public class OpenedDatabaseException extends SikevaDBException
}
/**
*
* Instantiates a new opened database exception.
*
* @param cause
* the cause
*/
public OpenedDatabaseException(final Throwable cause)
{

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013-2018 Christian Pierre MOMON <christian.momon@devinsy.fr>
* Copyright (C) 2013-2024 Christian Pierre MOMON <christian.momon@devinsy.fr>
*
* This file is part of SikevaDB, simple key value database.
*
@ -18,7 +18,7 @@
*/
package fr.devinsy.sikevadb.core;
import fr.devinsy.util.strings.StringList;
import fr.devinsy.strings.StringList;
/**
* The Interface SikevaDB.
@ -160,6 +160,15 @@ public interface SikevaDB
*/
public void destroy() throws SikevaDBException;
/**
* Checks if is created.
*
* @return true, if is created
* @throws SikevaDBException
* the SikevaDB exception
*/
public boolean exists() throws SikevaDBException;
/**
* Gets an element by key.
*
@ -217,15 +226,6 @@ public interface SikevaDB
*/
public Elements getElements(String key) throws SikevaDBException;
/**
* Gets all the top keys.
*
* @return the keys
* @throws SikevaDBException
* the SikevaDB exception
*/
public StringList getTopKeys() throws SikevaDBException;
/**
* Gets all the sub keys of a key.
*
@ -237,6 +237,15 @@ public interface SikevaDB
*/
public StringList getSubkeys(String key) throws SikevaDBException;
/**
* Gets all the top keys.
*
* @return the keys
* @throws SikevaDBException
* the SikevaDB exception
*/
public StringList getTopKeys() throws SikevaDBException;
/**
* Gets the value of a key.
*
@ -275,18 +284,28 @@ public interface SikevaDB
public String getValue(String key, String subkey) throws SikevaDBException;
/**
* Gets the values of a key.
* Gets the values.
*
* @param key
* the key
* @return the values
* @throws SikevaDBException
* the SikevaDB exception
* the sikeva DB exception
*/
public StringList getValues(String key) throws SikevaDBException;
/**
* Checks if is archive activated.
*
* @return true, if is archive activated
*/
boolean isArchiveActivated();
/**
* Checks if is archive suspended.
*
* @return true, if is archive suspended
*/
boolean isArchiveSuspended();
/**
@ -296,15 +315,6 @@ public interface SikevaDB
*/
public boolean isClosed();
/**
* Checks if is created.
*
* @return true, if is created
* @throws SikevaDBException
* the SikevaDB exception
*/
public boolean exists() throws SikevaDBException;
/**
* Checks if is opened.
*

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013-2018 Christian Pierre MOMON <christian.momon@devinsy.fr>
* Copyright (C) 2013-2024 Christian Pierre MOMON <christian.momon@devinsy.fr>
*
* This file is part of SikevaDB, simple key value database.
*
@ -23,39 +23,38 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import javax.xml.stream.XMLStreamException;
import org.apache.commons.lang3.StringEscapeUtils;
import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.devinsy.util.xml.XMLBadFormatException;
import fr.devinsy.util.xml.XMLReader;
import fr.devinsy.util.xml.XMLTag;
import fr.devinsy.util.xml.XMLTag.TagType;
import fr.devinsy.util.xml.XMLWriter;
import fr.devinsy.util.xml.XMLZipWriter;
import fr.devinsy.xml.XMLBadFormatException;
import fr.devinsy.xml.XMLReader;
import fr.devinsy.xml.XMLTag;
import fr.devinsy.xml.XMLTag.TagType;
import fr.devinsy.xml.XMLWriter;
import fr.devinsy.xml.XMLZipWriter;
/**
* The Class XMLSikevaDB represents a XML persister.
*
* @author Christian Pierre MOMON (christian.momon@devinsy.fr)
*/
public class XMLSikevaDB
{
private static final Logger logger = LoggerFactory.getLogger(XMLSikevaDB.class);
/**
* Export in XML a database in a file.
* Export.
*
* @param out
* the out
* @param source
* the source
* @throws SikevaDBException
* the SikevaDB exception
* the sikeva DB exception
* @throws FileNotFoundException
* the file not found exception
*/
@ -77,7 +76,7 @@ public class XMLSikevaDB
public static void export(final OutputStream out, final SikevaDB source) throws SikevaDBException
{
//
String fileName = "sikevadb-" + DateTime.now().toString("yyyy-MM-dd-HH'h'mm'mn'ss's'") + ".xml.zip";
String fileName = "sikevadb-" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd-HH'h'mm'mn'ss's'")) + ".xml.zip";
//
export(out, source, fileName);
@ -146,14 +145,11 @@ public class XMLSikevaDB
/**
* Import data.
*
*
* @param database
* the database
* @param file
* the file
*
* @throws Exception
* the exception
*/
public static void importData(final SikevaDB database, final File file)
{
@ -172,11 +168,12 @@ public class XMLSikevaDB
/**
* Read element.
*
*
* @param in
* the in
* @return the element
* @throws SikevaDBException
* the sikeva DB exception
*/
public static Element readElement(final XMLReader in) throws SikevaDBException
{
@ -196,10 +193,10 @@ public class XMLSikevaDB
String value = StringEscapeUtils.unescapeXml(in.readContentTag("value").getContent());
int size = Integer.parseInt(tag.attributes().getByLabel("size").getValue());
String digest = in.readContentTag("digest").getContent();
DateTime creationDate = DateTime.parse(in.readContentTag("creation_date").getContent());
DateTime editionDate = DateTime.parse(in.readContentTag("edition_date").getContent());
LocalDateTime creationDate = LocalDateTime.parse(in.readContentTag("creation_date").getContent());
LocalDateTime editionDate = LocalDateTime.parse(in.readContentTag("edition_date").getContent());
DateTime archiveDate;
LocalDateTime archiveDate;
String archiveDateValue = in.readNullableContentTag("archive_date").getContent();
if (archiveDateValue == null)
{
@ -207,7 +204,7 @@ public class XMLSikevaDB
}
else
{
archiveDate = DateTime.parse(archiveDateValue);
archiveDate = LocalDateTime.parse(archiveDateValue);
}
//
@ -242,17 +239,13 @@ public class XMLSikevaDB
/**
* Read elements.
*
*
* @param target
* the target
* @param in
* the in
* @throws XMLBadFormatException
* @throws XMLStreamException
* @throws SikevaDBException
*
* @throws Exception
* the exception
* the sikeva DB exception
*/
public static void readElements(final SikevaDB target, final XMLReader in) throws SikevaDBException
{
@ -343,15 +336,13 @@ public class XMLSikevaDB
/**
* Write in an XML writer the elements of a database, sorting by keys and
* sub keys.
*
*
* @param out
* the out
* @param source
* the source
* @throws SikevaDBException
*
* @throws Exception
* the exception
* the sikeva DB exception
*/
public static void write(final XMLWriter out, final SikevaDB source) throws SikevaDBException
{

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013-2018 Christian Pierre MOMON <christian.momon@devinsy.fr>
* Copyright (C) 2013-2024 Christian Pierre MOMON <christian.momon@devinsy.fr>
*
* This file is part of SikevaDB, simple key value database.
*
@ -22,16 +22,16 @@ package fr.devinsy.sikevadb.demo;
import java.io.File;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.PropertyConfigurator;
import org.apache.logging.log4j.core.config.Configurator;
import org.apache.logging.log4j.core.config.DefaultConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import utils.BuildInformation;
import fr.devinsy.sikevadb.core.SikevaDB;
import fr.devinsy.sikevadb.core.SikevaDBException;
import fr.devinsy.sikevadb.core.SikevaDBFactory;
import fr.devinsy.util.strings.StringList;
import fr.devinsy.strings.StringList;
import utils.BuildInformation;
/**
* The Class SikevaDBDemo is a demo for SikevaDB.
@ -171,13 +171,13 @@ public final class SikevaDBDemo
File loggerConfig = new File("log4j.properties");
if (loggerConfig.exists())
{
PropertyConfigurator.configure(loggerConfig.getAbsolutePath());
Configurator.initialize(null, loggerConfig.getAbsolutePath());
logger.info("Dedicated log configuration done.");
logger.info("Configuration file was found in [{}].", loggerConfig.getAbsoluteFile());
}
else
{
BasicConfigurator.configure();
Configurator.initialize(new DefaultConfiguration());
logger.info("Basic log configuration done.");
logger.info("Configuration file was not found in [{}].", loggerConfig.getAbsoluteFile());
}

View file

@ -24,8 +24,6 @@ import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.SystemUtils;
import org.joda.time.format.DateTimeFormatter;
import org.joda.time.format.ISODateTimeFormat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -36,8 +34,8 @@ import fr.devinsy.sikevadb.core.Elements;
import fr.devinsy.sikevadb.core.OpenedDatabaseException;
import fr.devinsy.sikevadb.core.SikevaDB;
import fr.devinsy.sikevadb.core.SikevaDBException;
import fr.devinsy.util.strings.StringList;
import fr.devinsy.util.strings.StringsUtils;
import fr.devinsy.strings.StringList;
import fr.devinsy.strings.StringsUtils;
/**
* The Class FileTreeSikevaDB.
@ -58,15 +56,13 @@ import fr.devinsy.util.strings.StringsUtils;
*/
public class FileTreeSikevaDB implements SikevaDB
{
private static final Logger logger = LoggerFactory.getLogger(FileTreeSikevaDB.class);
public enum Status
{
OPENED,
CLOSED
};
private static final Logger logger = LoggerFactory.getLogger(FileTreeSikevaDB.class);
private static final DateTimeFormatter ISOFormatter = ISODateTimeFormat.dateHourMinuteSecondMillis();
}
private Status status;
private String login;

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013-2017 Christian Pierre MOMON <christian.momon@devinsy.fr>
* Copyright (C) 2013-2018 Christian Pierre MOMON <christian.momon@devinsy.fr>
*
* This file is part of SikevaDB, simple key value database.
*
@ -22,18 +22,18 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.time.LocalDateTime;
import javax.xml.stream.XMLStreamException;
import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.devinsy.sikevadb.core.Element;
import fr.devinsy.sikevadb.core.SikevaDBException;
import fr.devinsy.util.xml.XMLBadFormatException;
import fr.devinsy.util.xml.XMLReader;
import fr.devinsy.util.xml.XMLWriter;
import fr.devinsy.xml.XMLBadFormatException;
import fr.devinsy.xml.XMLReader;
import fr.devinsy.xml.XMLWriter;
/**
* The Class FileTreeSikevaDBTools.
@ -84,11 +84,11 @@ public class FileTreeSikevaDBTools
result.setId(id);
// private DateTime creationDate; IN
DateTime creationDate = DateTime.parse(in.readContentTag("creation_date").getContent());
LocalDateTime creationDate = LocalDateTime.parse(in.readContentTag("creation_date").getContent());
result.setCreationDate(creationDate);
// private DateTime editionDate; IN
DateTime editionDate = DateTime.parse(in.readContentTag("edition_date").getContent());
LocalDateTime editionDate = LocalDateTime.parse(in.readContentTag("edition_date").getContent());
result.setEditionDate(editionDate);
// private long size; IN

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013-2017 Christian Pierre MOMON <christian.momon@devinsy.fr>
* Copyright (C) 2013-2024 Christian Pierre MOMON <christian.momon@devinsy.fr>
*
* This file is part of SikevaDB, simple key value database.
*
@ -27,10 +27,7 @@ import fr.devinsy.sikevadb.core.SikevaDBException;
/**
* The Class SQLArchiver.
*
* @author Christian Pierre MOMON
*/
public class SQLArchiver implements Archiver
{
private static final Logger logger = LoggerFactory.getLogger(SQLArchiver.class);;

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013-2018 Christian Pierre MOMON <christian.momon@devinsy.fr>
* Copyright (C) 2013-2024 Christian Pierre MOMON <christian.momon@devinsy.fr>
*
* This file is part of SikevaDB, simple key value database.
*
@ -20,6 +20,7 @@ package fr.devinsy.sikevadb.sql;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
@ -43,7 +44,7 @@ import fr.devinsy.sikevadb.core.Elements;
import fr.devinsy.sikevadb.core.OpenedDatabaseException;
import fr.devinsy.sikevadb.core.SikevaDB;
import fr.devinsy.sikevadb.core.SikevaDBException;
import fr.devinsy.util.strings.StringList;
import fr.devinsy.strings.StringList;
/**
* The Class SQLSikevaDB.
@ -53,14 +54,14 @@ import fr.devinsy.util.strings.StringList;
public class SQLSikevaDB implements SikevaDB
{
private static final Logger logger = LoggerFactory.getLogger(SQLSikevaDB.class);;
public enum Status
{
OPENED,
CLOSED
};
private static final Logger logger = LoggerFactory.getLogger(SQLSikevaDB.class);;
private Status status;
private String driverClassname;
private String url;
@ -130,8 +131,9 @@ public class SQLSikevaDB implements SikevaDB
/**
* Activate archiver.
*
*
* @throws ClosedDatabaseException
* the closed database exception
*/
public void activateArchiver() throws ClosedDatabaseException
{
@ -938,8 +940,8 @@ public class SQLSikevaDB implements SikevaDB
//
connection = getConnection();
connection.setAutoCommit(true);
statement = connection
.prepareStatement("SELECT ID,TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE FROM sikevadb_elements WHERE ARCHIVE_DATE IS NULL AND TOPKEY=? AND SUBKEY IS NULL");
statement = connection.prepareStatement(
"SELECT ID,TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE FROM sikevadb_elements WHERE ARCHIVE_DATE IS NULL AND TOPKEY=? AND SUBKEY IS NULL");
statement.setString(1, key);
resultSet = statement.executeQuery();
@ -1036,8 +1038,8 @@ public class SQLSikevaDB implements SikevaDB
//
connection = getConnection();
connection.setAutoCommit(true);
statement = connection
.prepareStatement("SELECT ID,TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE FROM sikevadb_elements WHERE ARCHIVE_DATE IS NULL AND TOPKEY=? AND SUBKEY=?");
statement = connection.prepareStatement(
"SELECT ID,TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE FROM sikevadb_elements WHERE ARCHIVE_DATE IS NULL AND TOPKEY=? AND SUBKEY=?");
statement.setString(1, key);
statement.setString(2, subkey);
resultSet = statement.executeQuery();
@ -1110,8 +1112,8 @@ public class SQLSikevaDB implements SikevaDB
{
connection = getConnection();
connection.setAutoCommit(true);
statement = connection
.prepareStatement("SELECT ID,TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE FROM sikevadb_elements WHERE ARCHIVE_DATE IS NULL ORDER BY TOPKEY,SUBKEY ASC");
statement = connection.prepareStatement(
"SELECT ID,TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE FROM sikevadb_elements WHERE ARCHIVE_DATE IS NULL ORDER BY TOPKEY,SUBKEY ASC");
resultSet = statement.executeQuery();
while (resultSet.next())
@ -1177,8 +1179,8 @@ public class SQLSikevaDB implements SikevaDB
{
connection = getConnection();
connection.setAutoCommit(true);
statement = connection
.prepareStatement("SELECT ID,TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE FROM sikevadb_elements WHERE ARCHIVE_DATE IS NULL AND TOPKEY=? AND SUBKEY IS NULL ORDER BY CREATION_DATE ASC");
statement = connection.prepareStatement(
"SELECT ID,TOPKEY,SUBKEY,VALUE,SIZE,DIGEST,CREATION_DATE,EDITION_DATE,ARCHIVE_DATE FROM sikevadb_elements WHERE ARCHIVE_DATE IS NULL AND TOPKEY=? AND SUBKEY IS NULL ORDER BY CREATION_DATE ASC");
statement.setString(1, key);
resultSet = statement.executeQuery();
@ -1808,7 +1810,7 @@ public class SQLSikevaDB implements SikevaDB
//
if (this.url != null)
{
Class.forName(this.driverClassname).newInstance();
Class.forName(this.driverClassname).getDeclaredConstructor().newInstance();
this.singleConnection = DriverManager.getConnection(this.url, this.login, this.password);
logger.info("Single connection opened with [{}].", this.url);
this.status = Status.OPENED;
@ -1828,27 +1830,8 @@ public class SQLSikevaDB implements SikevaDB
throw new IllegalArgumentException("Undefined source.");
}
}
catch (InstantiationException exception)
{
logger.error("Error opening database.", exception);
throw new SikevaDBException("Error opening database.");
}
catch (IllegalAccessException exception)
{
logger.error("Error opening database.", exception);
throw new SikevaDBException("Error opening database.");
}
catch (ClassNotFoundException exception)
{
logger.error("Error opening database.", exception);
throw new SikevaDBException("Error opening database.");
}
catch (SQLException exception)
{
logger.error("Error opening database.", exception);
throw new SikevaDBException("Error opening database.");
}
catch (NamingException exception)
catch (IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException | NamingException | SQLException | InstantiationException | IllegalAccessException
| ClassNotFoundException exception)
{
logger.error("Error opening database.", exception);
throw new SikevaDBException("Error opening database.");

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013-2017 Christian Pierre MOMON <christian.momon@devinsy.fr>
* Copyright (C) 2013-2024 Christian Pierre MOMON <christian.momon@devinsy.fr>
*
* This file is part of SikevaDB, simple key value database.
*
@ -22,15 +22,17 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.StringReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.Date;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.devinsy.util.strings.StringList;
import fr.devinsy.strings.StringList;
/**
* The Class SQLSikevaDBTools.
@ -54,7 +56,7 @@ public class SQLSikevaDBTools
{
StringList result;
String script = IOUtils.toString(source);
String script = IOUtils.toString(source, StandardCharsets.UTF_8);
result = splitSQLCommands(script);
@ -129,9 +131,9 @@ public class SQLSikevaDBTools
* the source
* @return the date time
*/
public static DateTime toDateTime(final java.sql.Timestamp source)
public static LocalDateTime toDateTime(final java.sql.Timestamp source)
{
DateTime result;
LocalDateTime result;
if (source == null)
{
@ -139,7 +141,9 @@ public class SQLSikevaDBTools
}
else
{
result = new DateTime(source.getTime());
long seconds = source.getTime() / 1000;
long nanos = (source.getTime() - seconds * 1000) * 1000000;
result = LocalDateTime.ofEpochSecond(seconds, (int) nanos, ZoneOffset.UTC);
}
//
@ -163,7 +167,7 @@ public class SQLSikevaDBTools
}
else
{
result = new java.sql.Timestamp(source.getTime());
result = new java.sql.Timestamp(source.getTime() * 1000);
}
//
@ -177,7 +181,7 @@ public class SQLSikevaDBTools
* the source
* @return the java.sql. timestamp
*/
public static java.sql.Timestamp toTimestamp(final DateTime source)
public static java.sql.Timestamp toTimestamp(final LocalDateTime source)
{
java.sql.Timestamp result;
@ -187,7 +191,9 @@ public class SQLSikevaDBTools
}
else
{
result = new java.sql.Timestamp(source.getMillis());
long seconds = source.toEpochSecond(ZoneOffset.UTC);
long milliseconds = source.getNano() / 1000000;
result = new java.sql.Timestamp(seconds * 1000 + milliseconds);
}
//

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013-2018 Christian Pierre MOMON, DEVINSY
* Copyright (C) 2013-2024 Christian Pierre MOMON, DEVINSY
*
* This file is part of SikevaDB, simple key value database.
*
@ -19,13 +19,13 @@
package fr.devinsy.sikevadb.filetree;
import java.io.File;
import java.time.LocalDateTime;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.joda.time.DateTime;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.config.Configurator;
import org.apache.logging.log4j.core.config.DefaultConfiguration;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
@ -35,7 +35,7 @@ import fr.devinsy.sikevadb.core.Element;
import fr.devinsy.sikevadb.core.Elements;
import fr.devinsy.sikevadb.core.SikevaDBException;
import fr.devinsy.sikevadb.core.XMLSikevaDB;
import fr.devinsy.util.strings.StringList;
import fr.devinsy.strings.StringList;
/**
* The Class TreeFileSikevaDBTest.
@ -372,9 +372,9 @@ public class TreeFileSikevaDBTest
element.setSubkey(null);
element.setSize(10);
element.setDigest("qsdkfqskjf");
element.setCreationDate(DateTime.now().minusDays(11));
element.setEditionDate(DateTime.now().minusDays(11));
element.setArchiveDate(DateTime.now().minusDays(10));
element.setCreationDate(LocalDateTime.now().minusDays(11));
element.setEditionDate(LocalDateTime.now().minusDays(11));
element.setArchiveDate(LocalDateTime.now().minusDays(10));
element.setValue("bonjour");
database.put(element);
@ -409,9 +409,9 @@ public class TreeFileSikevaDBTest
element.setSubkey(null);
element.setSize(10);
element.setDigest("qsdkfqskjf");
element.setCreationDate(DateTime.now().minusDays(11));
element.setEditionDate(DateTime.now().minusDays(11));
element.setArchiveDate(DateTime.now().minusDays(10));
element.setCreationDate(LocalDateTime.now().minusDays(11));
element.setEditionDate(LocalDateTime.now().minusDays(11));
element.setArchiveDate(LocalDateTime.now().minusDays(10));
element.setValue("bonjour");
database.put(element);
@ -446,9 +446,9 @@ public class TreeFileSikevaDBTest
element.setSubkey(null);
element.setSize(10);
element.setDigest("qsdkfqskjf");
element.setCreationDate(DateTime.now().minusDays(11));
element.setEditionDate(DateTime.now().minusDays(11));
element.setArchiveDate(DateTime.now().minusDays(10));
element.setCreationDate(LocalDateTime.now().minusDays(11));
element.setEditionDate(LocalDateTime.now().minusDays(11));
element.setArchiveDate(LocalDateTime.now().minusDays(10));
element.setValue("bonjour");
database.put(element);
@ -461,9 +461,9 @@ public class TreeFileSikevaDBTest
element.setSubkey(null);
element.setSize(10);
element.setDigest("qsdkfqskjf");
element.setCreationDate(DateTime.now().minusDays(11));
element.setEditionDate(DateTime.now().minusDays(11));
element.setArchiveDate(DateTime.now().minusDays(10));
element.setCreationDate(LocalDateTime.now().minusDays(11));
element.setEditionDate(LocalDateTime.now().minusDays(11));
element.setArchiveDate(LocalDateTime.now().minusDays(10));
element.setValue("bonjour");
database.put(element);
@ -717,8 +717,8 @@ public class TreeFileSikevaDBTest
@BeforeClass
public static void beforeClass() throws SikevaDBException
{
BasicConfigurator.configure();
Logger.getRootLogger().setLevel(Level.DEBUG);
Configurator.initialize(new DefaultConfiguration());
Configurator.setRootLevel(Level.DEBUG);
// Add ?profileSQL=true to generate huge logs.

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013-2018 Christian Pierre MOMON, DEVINSY
* Copyright (C) 2013-2024 Christian Pierre MOMON, DEVINSY
*
* This file is part of SikevaDB, simple key value database.
*
@ -18,12 +18,13 @@
*/
package fr.devinsy.sikevadb.sql;
import java.time.LocalDateTime;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.joda.time.DateTime;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.config.Configurator;
import org.apache.logging.log4j.core.config.DefaultConfiguration;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
@ -32,7 +33,7 @@ import org.junit.Test;
import fr.devinsy.sikevadb.core.Element;
import fr.devinsy.sikevadb.core.Elements;
import fr.devinsy.sikevadb.core.SikevaDBException;
import fr.devinsy.util.strings.StringList;
import fr.devinsy.strings.StringList;
/**
* The Class SQLSikevaDBTest.
@ -61,9 +62,9 @@ public class SQLSikevaDBTest
element.setSubkey(null);
element.setSize(10);
element.setDigest("qsdkfqskjf");
element.setCreationDate(DateTime.now().minusDays(11));
element.setEditionDate(DateTime.now().minusDays(11));
element.setArchiveDate(DateTime.now().minusDays(10));
element.setCreationDate(LocalDateTime.now().minusDays(11));
element.setEditionDate(LocalDateTime.now().minusDays(11));
element.setArchiveDate(LocalDateTime.now().minusDays(10));
element.setValue("bonjour");
database.put(element);
@ -97,9 +98,9 @@ public class SQLSikevaDBTest
element.setSubkey(null);
element.setSize(10);
element.setDigest("qsdkfqskjf");
element.setCreationDate(DateTime.now());
element.setEditionDate(DateTime.now());
element.setArchiveDate(DateTime.now().minusDays(10));
element.setCreationDate(LocalDateTime.now());
element.setEditionDate(LocalDateTime.now());
element.setArchiveDate(LocalDateTime.now().minusDays(10));
element.setValue("bonjour");
database.put(element);
@ -379,9 +380,9 @@ public class SQLSikevaDBTest
element.setSubkey(null);
element.setSize(10);
element.setDigest("qsdkfqskjf");
element.setCreationDate(DateTime.now().minusDays(11));
element.setEditionDate(DateTime.now().minusDays(11));
element.setArchiveDate(DateTime.now().minusDays(10));
element.setCreationDate(LocalDateTime.now().minusDays(11));
element.setEditionDate(LocalDateTime.now().minusDays(11));
element.setArchiveDate(LocalDateTime.now().minusDays(10));
element.setValue("bonjour");
database.put(element);
@ -412,9 +413,9 @@ public class SQLSikevaDBTest
element.setSubkey(null);
element.setSize(10);
element.setDigest("qsdkfqskjf");
element.setCreationDate(DateTime.now().minusDays(11));
element.setEditionDate(DateTime.now().minusDays(11));
element.setArchiveDate(DateTime.now().minusDays(10));
element.setCreationDate(LocalDateTime.now().minusDays(11));
element.setEditionDate(LocalDateTime.now().minusDays(11));
element.setArchiveDate(LocalDateTime.now().minusDays(10));
element.setValue("bonjour");
database.put(element);
@ -446,9 +447,9 @@ public class SQLSikevaDBTest
element.setSubkey(null);
element.setSize(10);
element.setDigest("qsdkfqskjf");
element.setCreationDate(DateTime.now().minusDays(11));
element.setEditionDate(DateTime.now().minusDays(11));
element.setArchiveDate(DateTime.now().minusDays(10));
element.setCreationDate(LocalDateTime.now().minusDays(11));
element.setEditionDate(LocalDateTime.now().minusDays(11));
element.setArchiveDate(LocalDateTime.now().minusDays(10));
element.setValue("bonjour");
database.put(element);
@ -461,9 +462,9 @@ public class SQLSikevaDBTest
element.setSubkey(null);
element.setSize(10);
element.setDigest("qsdkfqskjf");
element.setCreationDate(DateTime.now().minusDays(11));
element.setEditionDate(DateTime.now().minusDays(11));
element.setArchiveDate(DateTime.now().minusDays(10));
element.setCreationDate(LocalDateTime.now().minusDays(11));
element.setEditionDate(LocalDateTime.now().minusDays(11));
element.setArchiveDate(LocalDateTime.now().minusDays(10));
element.setValue("bonjour");
database.put(element);
@ -691,8 +692,8 @@ public class SQLSikevaDBTest
@BeforeClass
public static void beforeClass() throws SikevaDBException
{
BasicConfigurator.configure();
Logger.getRootLogger().setLevel(Level.ERROR);
Configurator.initialize(new DefaultConfiguration());
Configurator.setRootLevel(Level.DEBUG);
// Add ?profileSQL=true to generate huge logs.