revised readme.md
This commit is contained in:
+4
-4
@@ -1,19 +1,19 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<classpath>
|
<classpath>
|
||||||
<classpathentry kind="src" output="build/classes/java/main" path="src/main/java">
|
<classpathentry kind="src" output="target/classes/java/main" path="src/main/java">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="gradle_scope" value="main"/>
|
<attribute name="gradle_scope" value="main"/>
|
||||||
<attribute name="gradle_used_by_scope" value="main,test"/>
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="src" output="build/classes/java/test" path="src/test/java">
|
<classpathentry kind="src" output="target/classes/java/test" path="src/test/java">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="gradle_scope" value="test"/>
|
<attribute name="gradle_scope" value="test"/>
|
||||||
<attribute name="gradle_used_by_scope" value="test"/>
|
<attribute name="gradle_used_by_scope" value="test"/>
|
||||||
<attribute name="test" value="true"/>
|
<attribute name="test" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="src" output="build/classes/java/main" path="src/main/resources">
|
<classpathentry kind="src" output="target/classes/java/main" path="src/main/resources">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="gradle_scope" value="main"/>
|
<attribute name="gradle_scope" value="main"/>
|
||||||
<attribute name="gradle_used_by_scope" value="main,test"/>
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
@@ -21,5 +21,5 @@
|
|||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
|
||||||
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
|
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
|
||||||
<classpathentry kind="output" path="build-default"/>
|
<classpathentry kind="output" path="target/bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|||||||
Vendored
+1
@@ -1,3 +1,4 @@
|
|||||||
|
.env
|
||||||
.vscode/
|
.vscode/
|
||||||
!.vscode/launch.json
|
!.vscode/launch.json
|
||||||
build/
|
build/
|
||||||
|
|||||||
@@ -23,17 +23,17 @@
|
|||||||
</buildSpec>
|
</buildSpec>
|
||||||
<natures>
|
<natures>
|
||||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
|
||||||
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
||||||
|
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||||
</natures>
|
</natures>
|
||||||
<filteredResources>
|
<filteredResources>
|
||||||
<filter>
|
<filter>
|
||||||
<id>1614986289528</id>
|
<id>1665579982442</id>
|
||||||
<name></name>
|
<name></name>
|
||||||
<type>30</type>
|
<type>30</type>
|
||||||
<matcher>
|
<matcher>
|
||||||
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
||||||
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
||||||
</matcher>
|
</matcher>
|
||||||
</filter>
|
</filter>
|
||||||
</filteredResources>
|
</filteredResources>
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
arguments=
|
arguments=--init-script C\:\\Users\\amer\\AppData\\Roaming\\Code\\User\\globalStorage\\redhat.java\\1.13.0\\config_win\\org.eclipse.osgi\\53\\0\\.cp\\gradle\\init\\init.gradle --init-script C\:\\Users\\amer\\AppData\\Roaming\\Code\\User\\globalStorage\\redhat.java\\1.13.0\\config_win\\org.eclipse.osgi\\53\\0\\.cp\\gradle\\protobuf\\init.gradle
|
||||||
auto.sync=false
|
auto.sync=false
|
||||||
build.scans.enabled=false
|
build.scans.enabled=false
|
||||||
connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(7.0))
|
connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(7.5.1))
|
||||||
connection.project.dir=
|
connection.project.dir=
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
gradle.user.home=
|
gradle.user.home=
|
||||||
java.home=C\:/Program Files/AdoptOpenJDK/jdk-15.0.2.7-hotspot
|
java.home=C\:/Program Files/Microsoft/jdk-11.0.12.7-hotspot
|
||||||
jvm.arguments=
|
jvm.arguments=
|
||||||
offline.mode=false
|
offline.mode=false
|
||||||
override.workspace.settings=true
|
override.workspace.settings=true
|
||||||
|
|||||||
@@ -1,9 +1,576 @@
|
|||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
|
enableParallelJavaIndexSearch=true
|
||||||
|
org.eclipse.jdt.core.builder.annotationPath.allLocations=disabled
|
||||||
|
org.eclipse.jdt.core.builder.cleanOutputFolder=clean
|
||||||
|
org.eclipse.jdt.core.builder.duplicateResourceTask=warning
|
||||||
|
org.eclipse.jdt.core.builder.invalidClasspath=abort
|
||||||
|
org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
|
||||||
|
org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
|
||||||
|
org.eclipse.jdt.core.circularClasspath=warning
|
||||||
|
org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
|
||||||
|
org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
|
||||||
|
org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
|
||||||
|
org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
|
||||||
|
org.eclipse.jdt.core.codeComplete.argumentPrefixes=
|
||||||
|
org.eclipse.jdt.core.codeComplete.argumentSuffixes=
|
||||||
|
org.eclipse.jdt.core.codeComplete.camelCaseMatch=enabled
|
||||||
|
org.eclipse.jdt.core.codeComplete.deprecationCheck=disabled
|
||||||
|
org.eclipse.jdt.core.codeComplete.discouragedReferenceCheck=disabled
|
||||||
|
org.eclipse.jdt.core.codeComplete.fieldPrefixes=
|
||||||
|
org.eclipse.jdt.core.codeComplete.fieldSuffixes=
|
||||||
|
org.eclipse.jdt.core.codeComplete.forbiddenReferenceCheck=enabled
|
||||||
|
org.eclipse.jdt.core.codeComplete.forceImplicitQualification=disabled
|
||||||
|
org.eclipse.jdt.core.codeComplete.localPrefixes=
|
||||||
|
org.eclipse.jdt.core.codeComplete.localSuffixes=
|
||||||
|
org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
|
||||||
|
org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
|
||||||
|
org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
|
||||||
|
org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
|
||||||
|
org.eclipse.jdt.core.codeComplete.subwordMatch=disabled
|
||||||
|
org.eclipse.jdt.core.codeComplete.suggestStaticImports=enabled
|
||||||
|
org.eclipse.jdt.core.codeComplete.visibilityCheck=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
|
||||||
|
org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
|
||||||
|
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
|
||||||
|
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
|
||||||
|
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
|
||||||
|
org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
|
||||||
|
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.lambda.genericSignature=do not generate
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.shareCommonFinallyBlocks=disabled
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||||
|
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.doc.comment.support=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.emulateJavacBug8031744=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.generateClassFiles=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
|
||||||
|
org.eclipse.jdt.core.compiler.problem.APILeak=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.annotatedTypeArgumentToUnannotated=info
|
||||||
|
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.deadCode=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.deadCodeInTrivialIfStatement=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.deprecation=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
|
||||||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
|
||||||
|
org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.nullReference=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.overridingMethodWithoutSuperInvocation=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
|
||||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
|
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info
|
||||||
|
org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.tasks=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.uninternedIdentityComparison=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedImport=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedTypeArgumentsForMethodInvocation=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
|
||||||
|
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
||||||
org.eclipse.jdt.core.compiler.processAnnotations=disabled
|
org.eclipse.jdt.core.compiler.processAnnotations=disabled
|
||||||
org.eclipse.jdt.core.compiler.release=disabled
|
org.eclipse.jdt.core.compiler.release=disabled
|
||||||
org.eclipse.jdt.core.compiler.source=1.8
|
org.eclipse.jdt.core.compiler.source=1.8
|
||||||
|
org.eclipse.jdt.core.compiler.storeAnnotations=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
|
||||||
|
org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
|
||||||
|
org.eclipse.jdt.core.computeJavaBuildOrder=ignore
|
||||||
|
org.eclipse.jdt.core.encoding=utf8
|
||||||
|
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
|
||||||
|
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
|
||||||
|
org.eclipse.jdt.core.formatter.align_selector_in_method_invocation_on_expression_first_line=true
|
||||||
|
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
||||||
|
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
|
||||||
|
org.eclipse.jdt.core.formatter.align_with_spaces=false
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_enum_constant=49
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field=49
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable=49
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method=49
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package=49
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter=0
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type=49
|
||||||
|
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
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
|
||||||
|
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_assertion_message=16
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
|
||||||
|
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_compact_loops=16
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
|
||||||
|
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_expressions_in_switch_case_with_arrow=16
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_switch_case_with_colon=16
|
||||||
|
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_record_components=16
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0
|
||||||
|
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_shift_operator=0
|
||||||
|
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_record_declaration=16
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
|
||||||
|
org.eclipse.jdt.core.formatter.alignment_for_switch_case_with_arrow=20
|
||||||
|
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_annotations=0
|
||||||
|
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_last_class_body_declaration=0
|
||||||
|
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
|
||||||
|
org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1
|
||||||
|
org.eclipse.jdt.core.formatter.blank_lines_before_field=0
|
||||||
|
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
|
||||||
|
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
|
||||||
|
org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
|
||||||
|
org.eclipse.jdt.core.formatter.blank_lines_before_method=1
|
||||||
|
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
|
||||||
|
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
|
||||||
|
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
|
||||||
|
org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0
|
||||||
|
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
|
||||||
|
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
|
||||||
|
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
|
||||||
|
org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
|
||||||
|
org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
|
||||||
|
org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
|
||||||
|
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
|
||||||
|
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
|
||||||
|
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
|
||||||
|
org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
|
||||||
|
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
|
||||||
|
org.eclipse.jdt.core.formatter.brace_position_for_record_constructor=end_of_line
|
||||||
|
org.eclipse.jdt.core.formatter.brace_position_for_record_declaration=end_of_line
|
||||||
|
org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
|
||||||
|
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
|
||||||
|
org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
|
||||||
|
org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
|
||||||
|
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=true
|
||||||
|
org.eclipse.jdt.core.formatter.comment.format_block_comments=true
|
||||||
|
org.eclipse.jdt.core.formatter.comment.format_header=false
|
||||||
|
org.eclipse.jdt.core.formatter.comment.format_html=true
|
||||||
|
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
|
||||||
|
org.eclipse.jdt.core.formatter.comment.format_line_comments=true
|
||||||
|
org.eclipse.jdt.core.formatter.comment.format_source_code=true
|
||||||
|
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
|
||||||
|
org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
|
||||||
|
org.eclipse.jdt.core.formatter.comment.indent_tag_description=false
|
||||||
|
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
|
||||||
|
org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.comment.line_length=80
|
||||||
|
org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
|
||||||
|
org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
|
||||||
|
org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
|
||||||
|
org.eclipse.jdt.core.formatter.compact_else_if=true
|
||||||
|
org.eclipse.jdt.core.formatter.continuation_indentation=2
|
||||||
|
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
|
||||||
|
org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
|
||||||
|
org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
|
||||||
|
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
|
||||||
|
org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
|
||||||
|
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
|
||||||
|
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
|
||||||
|
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
|
||||||
|
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_record_header=true
|
||||||
|
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
|
||||||
|
org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
|
||||||
|
org.eclipse.jdt.core.formatter.indent_empty_lines=false
|
||||||
|
org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
|
||||||
|
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
|
||||||
|
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
|
||||||
|
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=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not 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_arrow_in_switch_case=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=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_bitwise_operator=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not 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
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_permitted_types=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_record_components=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert
|
||||||
|
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_not_operator=do not 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
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
|
||||||
|
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_arrow_in_switch_case=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=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_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
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_permitted_types=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert
|
||||||
|
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
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_constructor=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_record_declaration=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
|
||||||
|
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
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
|
||||||
|
org.eclipse.jdt.core.formatter.join_lines_in_comments=false
|
||||||
|
org.eclipse.jdt.core.formatter.join_wrapped_lines=false
|
||||||
|
org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never
|
||||||
|
org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never
|
||||||
|
org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never
|
||||||
|
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
|
||||||
|
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
|
||||||
|
org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never
|
||||||
|
org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never
|
||||||
|
org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never
|
||||||
|
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
|
||||||
|
org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never
|
||||||
|
org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never
|
||||||
|
org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never
|
||||||
|
org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line=one_line_never
|
||||||
|
org.eclipse.jdt.core.formatter.keep_record_declaration_on_one_line=one_line_never
|
||||||
|
org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
|
||||||
|
org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
|
||||||
|
org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false
|
||||||
|
org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
|
||||||
|
org.eclipse.jdt.core.formatter.keep_switch_body_block_on_one_line=one_line_never
|
||||||
|
org.eclipse.jdt.core.formatter.keep_switch_case_with_arrow_on_one_line=one_line_never
|
||||||
|
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
|
||||||
|
org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never
|
||||||
|
org.eclipse.jdt.core.formatter.lineSplit=120
|
||||||
|
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_after_code_block=0
|
||||||
|
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0
|
||||||
|
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
|
||||||
|
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0
|
||||||
|
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0
|
||||||
|
org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=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_record_declaration=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=space
|
||||||
|
org.eclipse.jdt.core.formatter.tabulation.size=4
|
||||||
|
org.eclipse.jdt.core.formatter.text_block_indentation=0
|
||||||
|
org.eclipse.jdt.core.formatter.use_on_off_tags=true
|
||||||
|
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
|
||||||
|
org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
|
||||||
|
org.eclipse.jdt.core.formatter.wrap_before_assertion_message_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_relational_operator=true
|
||||||
|
org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true
|
||||||
|
org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
|
||||||
|
org.eclipse.jdt.core.formatter.wrap_before_switch_case_arrow_operator=false
|
||||||
|
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
|
||||||
|
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
|
||||||
|
org.eclipse.jdt.core.incompleteClasspath=error
|
||||||
|
org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
|
||||||
|
org.eclipse.jdt.core.timeoutForParameterNameFromAttachedJavadoc=50
|
||||||
|
|||||||
@@ -1,12 +1,36 @@
|
|||||||
# Jabba the easy going java web app plumber
|
# Jabba the easy going java web app plumber
|
||||||
Jabba is a java library that gets its inspiration from Python Flask. It will expose all the elementary features needed for deveopment of web apps and microservices.
|
Jabba is a java library that gets its inspiration from Python Flask. It will expose all the elementary features needed for deveopment of web apps and microservices.
|
||||||
|
|
||||||
# How to Run Things
|
# How to Build Things
|
||||||
|
|
||||||
* running a build via: gradle jar
|
* running a build via: gradle jar
|
||||||
* running a test via: gradle test
|
* running a test via: gradle test
|
||||||
* running a continouse server via: gradle --watch-fs -t runServer, then work on code
|
* running a continouse server via: gradle --watch-fs -t runServer, then work on code (every save will rebuild and restart so you just refresh browser)
|
||||||
|
|
||||||
## Things Left to Do
|
Jabba depends on following libraries:
|
||||||
|
|
||||||
|
* org.eclipse.jetty:jetty-server - http servlet container
|
||||||
|
* org.slf4j:slf4j-simple - logging facility
|
||||||
|
* com.github.jknack:handlebars - handlebars templating
|
||||||
|
* com.h2database:h2 - java native comprehensive sql database (so comprehensive it can emulate postgres)
|
||||||
|
* org.postgresql:postgresql - proven and logical sql server implementation (no hacks like the identity column)
|
||||||
|
* com.zaxxer:HikariCP - database connection pooling (trust me you need it)
|
||||||
|
|
||||||
|
Normally maven or gradle will auto-resolve and download these dependencies.
|
||||||
|
If you build the libraries yourself there is "fat jabba" task that with combine all dependencies in one jar/zip file.
|
||||||
|
If you just want to use the library without the hassle of building anything please include the following into your build.
|
||||||
|
|
||||||
|
```
|
||||||
|
repositories {
|
||||||
|
maven{
|
||||||
|
url "https://repo.reliancy.com/repository/maven-hub"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
This is a sonatype nexus repository manager we host here at reliancy.
|
||||||
|
|
||||||
|
# Things Left to Do
|
||||||
* ~~Complete support for demarshalling and marshalling of objects to java methods~~
|
* ~~Complete support for demarshalling and marshalling of objects to java methods~~
|
||||||
* ~~Session middleware~~
|
* ~~Session middleware~~
|
||||||
* ~~Auth middleware supporting basic and digest, and security entities~~
|
* ~~Auth middleware supporting basic and digest, and security entities~~
|
||||||
@@ -18,5 +42,59 @@ Jabba is a java library that gets its inspiration from Python Flask. It will exp
|
|||||||
* ~~Database layer or serial/deserial system like SQL Alchemy~~
|
* ~~Database layer or serial/deserial system like SQL Alchemy~~
|
||||||
|
|
||||||
With above things complete we ~~will~~ have a library that can be used for new webapps.
|
With above things complete we ~~will~~ have a library that can be used for new webapps.
|
||||||
Don't have a profile page (which goes into app templates) and the dbo layer is basic not like sql alchemy but mostly things are in place. At this point we could use jabba to spawn new apps.
|
Don't have a profile page yet (which goes into app templates) and the dbo layer is basic not like sql alchemy but mostly things are in place.
|
||||||
Now I could prepare it for github and for maven central.
|
|
||||||
|
At this point we could use jabba to spawn new apps.
|
||||||
|
|
||||||
|
# Code Structure
|
||||||
|
|
||||||
|
There are 4 major modules all located under com.reliancy.
|
||||||
|
|
||||||
|
They are:
|
||||||
|
|
||||||
|
* rec - slot based object and array definition, akin to json, base of dbo and any data access object (DAO)
|
||||||
|
* dbo - database access layer on top of rec
|
||||||
|
* jabba - web application layer
|
||||||
|
* util - ulity methods maximally independent
|
||||||
|
|
||||||
|
## util
|
||||||
|
This module is a treasure trove of useful classes and methods. Most standalone methods are implemented in Handy class. One very useful class is the Tokenizer which starts out as a static method and is then wrapped by an iterator.
|
||||||
|
|
||||||
|
You can then do something like:
|
||||||
|
``` java
|
||||||
|
for(String token:new Tokenizer(bodyOftext)){
|
||||||
|
System.out.println("Word:"+token);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## rec
|
||||||
|
|
||||||
|
The core of rec module is the interface Rec/Arr and plain implementation of it called Obj which can be an array or a key-value object. The values are kept in Obj while a parent object of type Hdr describes structure (the header). JSON encoder and decoder are provided and others could be implemented.
|
||||||
|
|
||||||
|
At the field level the class Slot describes a field or property. It is usually defined statically at class level. Accessing a value can be done in two ways:
|
||||||
|
``` java
|
||||||
|
rec.get(Slot s); // record centric
|
||||||
|
Product.first_name.get(rec); // field centric
|
||||||
|
```
|
||||||
|
The slot mechanism does not just describe fields it also allows us to generate conditions over slots which is useful in query construction.
|
||||||
|
|
||||||
|
One example would be notation like:
|
||||||
|
``` java
|
||||||
|
db.query(Product.class).where(Product.first_name.equals("Bla"))
|
||||||
|
```
|
||||||
|
|
||||||
|
Use slot based value access instead of by string names. The reason is that change happens and then you potentially have multiple places to change. Slots are smart they know type and format and position of the field.
|
||||||
|
|
||||||
|
## dbo
|
||||||
|
Here we define a very generic DAO interface. At the center is a Terminal which represents a data store and allows us to perform CRUD with some extra facility for complex queries. For database purposes we implement DBO or database object as a special instance of Rec interface. Finally to make this a useful module we provide SQLTerminal and helper classes to deal with read, create/update, delete actions using SQL language. Of course read action deals with querying.
|
||||||
|
|
||||||
|
Plese note one thing about SQL in particular. SQL and related RDBMs are nothing ground breaking or throughput busting. They are an old and messy protocol to access data. The most important point is do not treat SQL connections as an open file handle. Instead you connect, you CRUD, you disconnect (and if that sounds inefficient it is). If you forget this, as I did, and you build your entire app on the premise that you can reuse a connection by multiplexing commands down the pipe you will be in a world of hurt. The hurt does not manifest during development but once tens or tousands of sessions start working the same few connections.
|
||||||
|
|
||||||
|
In any case this module tries to be SQL agnostic while sharing nomenclature. If you stick with the interface your app will be too. In my decades old experience there is no way to allow just a little SQL in your code. So treat your database layer as if it was not a SQL database and maybe you will be able to later switch to something else. Otherwise it will SQL till the judgement day.
|
||||||
|
|
||||||
|
## jabba
|
||||||
|
|
||||||
|
Finally the center of the library is the module that implements an HTTP servlet (jetty handler actually). Entire machinery is added to perorm marshalling and unmarshaling of HTTP requests into and out of java methods. Along the way we also deal with sessions and security and errors and also server side templating. Ideally your app will be a set of REST endpoints that are used by ReactJS or similar front end GUIs but in case you like server-side templating it is available.
|
||||||
|
|
||||||
|
You application can be any POJO, the entry point is JettyApp from there a request processor is installed which parses your class and discovers all the endpoints. We chain request processors landing on a MethodEndPoint. Middleware is injected, you guessed it, as a request processor in the middle of the chain. Examples include session management, security policy.
|
||||||
|
|
||||||
|
|||||||
+41
-122
@@ -6,29 +6,37 @@ For example - /Users/alex/.m2/repository/<library_path>/<version>/<name>.<extens
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
apply plugin: 'java'
|
apply plugin: 'java'
|
||||||
apply plugin: 'eclipse'
|
|
||||||
apply plugin: 'application'
|
|
||||||
apply plugin: 'maven-publish'
|
apply plugin: 'maven-publish'
|
||||||
|
apply plugin: 'application'
|
||||||
|
apply plugin: 'eclipse'
|
||||||
|
apply from: 'extra.gradle'
|
||||||
|
|
||||||
group='com.reliancy'
|
group='com.reliancy'
|
||||||
mainClassName = group+'.'+name+'.JettyApp'
|
mainClassName = group+'.'+name+'.JettyApp'
|
||||||
version = '0.1'
|
version = '0.2-SNAPSHOT'
|
||||||
sourceCompatibility = 1.8
|
sourceCompatibility = 1.8
|
||||||
targetCompatibility = 1.8
|
targetCompatibility = 1.8
|
||||||
|
project.buildDir = 'target'
|
||||||
|
|
||||||
System.out.println("group:"+group);
|
// print some info for orientation
|
||||||
System.out.println("name:"+name);
|
println("group:"+group);
|
||||||
System.out.println("version:"+version);
|
println("name:"+name);
|
||||||
System.out.println("entry:"+mainClassName);
|
println("version:"+version);
|
||||||
|
println("entry:"+mainClassName);
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
//mavenLocal()
|
||||||
mavenCentral()
|
//mavenCentral()
|
||||||
|
maven{
|
||||||
|
url "https://repo.reliancy.com/repository/maven-public"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
publishing {
|
publishing {
|
||||||
publications {
|
publications {
|
||||||
mavenJava(MavenPublication) {
|
mavenJava(MavenPublication) {
|
||||||
from components.java
|
from components.java
|
||||||
|
artifact packageJavadoc
|
||||||
|
artifact packageSources
|
||||||
pom {
|
pom {
|
||||||
licenses {
|
licenses {
|
||||||
license {
|
license {
|
||||||
@@ -39,11 +47,31 @@ publishing {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
repositories {
|
||||||
|
maven {
|
||||||
|
if (project.version.toUpperCase().endsWith("-SNAPSHOT")) {
|
||||||
|
url project.repo_url+"-snapshots"
|
||||||
|
} else {
|
||||||
|
url project.repo_url+"-releases"
|
||||||
|
}
|
||||||
|
credentials{
|
||||||
|
username project.repo_user
|
||||||
|
password project.repo_pwd
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
javadoc {
|
javadoc {
|
||||||
source = sourceSets.main.allJava
|
source = sourceSets.main.allJava
|
||||||
//classpath = configurations.compile
|
//classpath = configurations.compile
|
||||||
|
classpath = configurations.compileClasspath
|
||||||
|
options
|
||||||
|
{
|
||||||
|
setMemberLevel JavadocMemberLevel.PUBLIC
|
||||||
|
setAuthor true
|
||||||
|
links "https://docs.oracle.com/javase/8/docs/api/"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation "org.eclipse.jetty:jetty-server:11.0.1"
|
implementation "org.eclipse.jetty:jetty-server:11.0.1"
|
||||||
@@ -91,124 +119,15 @@ task copyToLib(type: Copy) {
|
|||||||
into layout.buildDirectory.dir("libs") from configurations.runtimeClasspath
|
into layout.buildDirectory.dir("libs") from configurations.runtimeClasspath
|
||||||
}
|
}
|
||||||
build.finalizedBy(copyToLib)
|
build.finalizedBy(copyToLib)
|
||||||
task fat_jar(type: Jar) {
|
|
||||||
archiveBaseName = 'fat-'+project.name
|
|
||||||
archiveVersion = project.version
|
|
||||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
||||||
/*
|
|
||||||
manifest {
|
|
||||||
attributes "Main-Class": mainClassName
|
|
||||||
attributes "Class-Path": configurations.runtimeClasspath.collect { it.getName() }.join(' ')
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
from {
|
|
||||||
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
|
|
||||||
}{
|
|
||||||
exclude "META-INF/NOTICE.txt"
|
|
||||||
exclude "META-INF/LICENSE"
|
|
||||||
}
|
|
||||||
with jar
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
We define a singleton pattern using background thread to launch a blocking process.
|
|
||||||
Later we make sure to terminate previous running driver threads before starting new.
|
|
||||||
Also we split start, stop because we might not run in continouse mode.
|
|
||||||
*/
|
|
||||||
class Server implements Runnable{
|
|
||||||
static Server singleton=null;
|
|
||||||
public static Server getSingleton(){
|
|
||||||
if(singleton==null){
|
|
||||||
System.out.println("creating new server");
|
|
||||||
singleton=new Server();
|
|
||||||
}
|
|
||||||
return singleton;
|
|
||||||
}
|
|
||||||
//org.slf4j.Logger log=org.slf4j.LoggerFactory.getLogger("server.driver");
|
|
||||||
Thread driver=null;
|
|
||||||
Runnable task=null;
|
|
||||||
protected Server(){}
|
|
||||||
public void info(String msg){
|
|
||||||
System.out.println(msg);
|
|
||||||
}
|
|
||||||
public Server useDriver(boolean f){
|
|
||||||
info("using driver:"+f);
|
|
||||||
if(f){
|
|
||||||
driver=new Thread(this);
|
|
||||||
driver.setName("server.driver");
|
|
||||||
}else{
|
|
||||||
driver=null;
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
public void run(){
|
|
||||||
info("running task");
|
|
||||||
try{
|
|
||||||
task.run();
|
|
||||||
}catch(java.lang.Exception ex){
|
|
||||||
info("running task:interrupted");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public Server start(Runnable c){
|
|
||||||
info("starting server");
|
|
||||||
this.task=c;
|
|
||||||
if(driver!=null)
|
|
||||||
driver.start();
|
|
||||||
else
|
|
||||||
this.run();
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
public Server stop(){
|
|
||||||
info("stopping server");
|
|
||||||
if(driver!=null){
|
|
||||||
driver.interrupt();
|
|
||||||
driver.join();
|
|
||||||
}
|
|
||||||
for(Thread th:Thread.getAllStackTraces().keySet()){
|
|
||||||
if(th.getName().equalsIgnoreCase("executor")){
|
|
||||||
info("cleaning up stale driver:"+th.toString())
|
|
||||||
th.stop();
|
|
||||||
}
|
|
||||||
if(th.getName().equalsIgnoreCase("server.driver")){
|
|
||||||
info("cleaning up stale driver:"+th.toString())
|
|
||||||
th.stop();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
task runServer{
|
|
||||||
inputs.files 'src'
|
|
||||||
doFirst {
|
|
||||||
//println 'This is executed first during the execution phase.'
|
|
||||||
Server.getSingleton().stop();
|
|
||||||
Server.getSingleton().useDriver(project.gradle.startParameter.continuous);
|
|
||||||
}
|
|
||||||
doLast {
|
|
||||||
//println 'This is executed last during the execution phase.'
|
|
||||||
Server.getSingleton().start({
|
|
||||||
project.javaexec {
|
|
||||||
classpath = project.sourceSets.main.runtimeClasspath
|
|
||||||
main = mainClassName
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
group = 'Run' // <-- change the name as per your need
|
|
||||||
description = 'execute run but continously'
|
|
||||||
classpath sourceSets.main.runtimeClasspath // <-- Don't change this
|
|
||||||
main = mainClassName
|
|
||||||
//args "arg1", "arg2"
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
eclipse{
|
eclipse{
|
||||||
classpath {
|
classpath {
|
||||||
defaultOutputDir = file("build") ///default
|
defaultOutputDir = file("target/bin") ///default
|
||||||
file.whenMerged { cp ->
|
file.whenMerged { cp ->
|
||||||
cp.entries.forEach { cpe ->
|
cp.entries.forEach { cpe ->
|
||||||
if (cpe.kind == 'src' && cpe.hasProperty('output')) {
|
if (cpe.kind == 'src' && cpe.hasProperty('output')) {
|
||||||
cpe.output = cpe.output.replace('bin/', "build/classes/java/")
|
cpe.output = cpe.output.replace('bin/', "target/classes/java/")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+125
@@ -0,0 +1,125 @@
|
|||||||
|
/** we define some extra tasks to be imported into main build or shared. */
|
||||||
|
|
||||||
|
// load .env settings - mostly secrets
|
||||||
|
task dotenv{
|
||||||
|
def ef=file('.env');
|
||||||
|
if(!ef.exists()) ef=file('../.env');
|
||||||
|
ef.readLines().each() {
|
||||||
|
if(it.isEmpty() || it.startsWith("#")) return true;
|
||||||
|
def (key,value)=it.tokenize('=')
|
||||||
|
project.ext.set(key,value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
task packageJavadoc(type: Jar, dependsOn: 'javadoc') {
|
||||||
|
from javadoc
|
||||||
|
classifier = 'javadoc'
|
||||||
|
}
|
||||||
|
task packageSources(type: Jar, dependsOn: 'classes') {
|
||||||
|
from sourceSets.main.allSource
|
||||||
|
classifier = 'sources'
|
||||||
|
}
|
||||||
|
task fat_jar(type: Jar) {
|
||||||
|
archiveBaseName = 'fat-'+project.name
|
||||||
|
archiveVersion = project.version
|
||||||
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||||
|
/*
|
||||||
|
manifest {
|
||||||
|
attributes "Main-Class": mainClassName
|
||||||
|
attributes "Class-Path": configurations.runtimeClasspath.collect { it.getName() }.join(' ')
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
from {
|
||||||
|
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
|
||||||
|
}{
|
||||||
|
exclude "META-INF/NOTICE.txt"
|
||||||
|
exclude "META-INF/LICENSE"
|
||||||
|
}
|
||||||
|
with jar
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
We define a singleton pattern using background thread to launch a blocking process.
|
||||||
|
Later we make sure to terminate previous running driver threads before starting new.
|
||||||
|
Also we split start, stop because we might not run in continouse mode.
|
||||||
|
*/
|
||||||
|
class Server implements Runnable{
|
||||||
|
static Server singleton=null;
|
||||||
|
public static Server main(){
|
||||||
|
if(singleton==null) singleton=new Server();
|
||||||
|
return singleton;
|
||||||
|
}
|
||||||
|
//org.slf4j.Logger log=null;
|
||||||
|
Thread driver=null;
|
||||||
|
Runnable task=null;
|
||||||
|
protected Server(){}
|
||||||
|
public void info(String msg){
|
||||||
|
//if(log!=null) log.info(msg); else println(msg);
|
||||||
|
println(msg);
|
||||||
|
}
|
||||||
|
//public Server setLogger(org.slf4j.Logger l){
|
||||||
|
// log=l;
|
||||||
|
// return this;
|
||||||
|
//}
|
||||||
|
public Server useDriver(boolean f){
|
||||||
|
info("using driver:"+f);
|
||||||
|
if(f){
|
||||||
|
driver=new Thread(this);
|
||||||
|
driver.setName("server.driver");
|
||||||
|
}else{
|
||||||
|
driver=null;
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
public void run(){
|
||||||
|
info("running task");
|
||||||
|
try{
|
||||||
|
task.run();
|
||||||
|
}catch(java.lang.Exception ex){
|
||||||
|
info("running task:interrupted");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public Server start(Runnable c){
|
||||||
|
info("starting server");
|
||||||
|
this.task=c;
|
||||||
|
if(driver!=null){
|
||||||
|
driver.start();
|
||||||
|
}else{
|
||||||
|
this.run();
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
public Server stop(){
|
||||||
|
info("stopping server");
|
||||||
|
if(driver!=null){
|
||||||
|
driver.interrupt();
|
||||||
|
driver.join();
|
||||||
|
}
|
||||||
|
for(Thread th:Thread.getAllStackTraces().keySet()){
|
||||||
|
if(th.getName().equalsIgnoreCase("executor")){
|
||||||
|
info("cleaning up stale driver:"+th.toString())
|
||||||
|
th.stop();
|
||||||
|
}
|
||||||
|
if(th.getName().equalsIgnoreCase("server.driver")){
|
||||||
|
info("cleaning up stale driver:"+th.toString())
|
||||||
|
th.stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
task runServer{
|
||||||
|
inputs.files 'src'
|
||||||
|
doFirst {
|
||||||
|
boolean threaded=project.gradle.startParameter.continuous;
|
||||||
|
Server.main().stop().useDriver(threaded);//.setLogger(logger);
|
||||||
|
}
|
||||||
|
doLast {
|
||||||
|
Server.main().start({
|
||||||
|
project.javaexec {
|
||||||
|
classpath = project.sourceSets.main.runtimeClasspath
|
||||||
|
main = mainClassName
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
org.gradle.caching=true
|
||||||
|
org.gradle.parallel=true
|
||||||
|
org.gradle.vfs.watch=true
|
||||||
@@ -7,6 +7,7 @@ You may not use this file except in compliance with the License.
|
|||||||
*/
|
*/
|
||||||
package com.reliancy.jabba;
|
package com.reliancy.jabba;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.EventListener;
|
import java.util.EventListener;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -212,14 +213,20 @@ public class JettyApp extends App implements Handler{
|
|||||||
}
|
}
|
||||||
public static void main( String[] args ) throws Exception{
|
public static void main( String[] args ) throws Exception{
|
||||||
//System.out.println("Hello World!");
|
//System.out.println("Hello World!");
|
||||||
Template.search_path("./var",App.class);
|
//String rt=new File(".").getAbsolutePath();
|
||||||
|
//System.out.println("ROOT:"+rt);
|
||||||
|
String work_dir="./var";
|
||||||
|
if(new File(work_dir).exists()==false){
|
||||||
|
work_dir="../var";
|
||||||
|
}
|
||||||
|
Template.search_path(work_dir,App.class);
|
||||||
JettyApp app=new JettyApp();
|
JettyApp app=new JettyApp();
|
||||||
app.addAppSession();
|
app.addAppSession();
|
||||||
SecurityPolicy secpol=new SecurityPolicy().setStore(new PlainSecurityStore());
|
SecurityPolicy secpol=new SecurityPolicy().setStore(new PlainSecurityStore());
|
||||||
app.setSecurityPolicy(secpol);
|
app.setSecurityPolicy(secpol);
|
||||||
RoutedEndPoint rep=new RoutedEndPoint().importMethods(app);
|
RoutedEndPoint rep=new RoutedEndPoint().importMethods(app);
|
||||||
app.setRouter(rep);
|
app.setRouter(rep);
|
||||||
FileServer fs=new FileServer("/static","./var/public");
|
FileServer fs=new FileServer("/static",work_dir+"/public");
|
||||||
fs.exportRoutes(app.getRouter());
|
fs.exportRoutes(app.getRouter());
|
||||||
Menu top_menu=Menu.request(Menu.TOP);
|
Menu top_menu=Menu.request(Menu.TOP);
|
||||||
top_menu.add(new MenuItem("home")).addSpacer().add(new MenuItem("login"));
|
top_menu.add(new MenuItem("home")).addSpacer().add(new MenuItem("login"));
|
||||||
@@ -238,7 +245,6 @@ public class JettyApp extends App implements Handler{
|
|||||||
System.out.println("Template:"+t);
|
System.out.println("Template:"+t);
|
||||||
ret = t.render(context).toString();
|
ret = t.render(context).toString();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
@@ -320,7 +326,6 @@ public class JettyApp extends App implements Handler{
|
|||||||
//.with("feedback",events)
|
//.with("feedback",events)
|
||||||
.end(resp.getEncoder().getWriter());
|
.end(resp.getEncoder().getWriter());
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,13 +84,11 @@ public class PlainSecurable implements Securable{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SecurityPermit> getDirectPermits() {
|
public List<SecurityPermit> getDirectPermits() {
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SecurityPermit getPermit(Securable sec) {
|
public SecurityPermit getPermit(Securable sec) {
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user