From 5f8d431c2696ddac70c83cb677165d53da74cb63 Mon Sep 17 00:00:00 2001 From: Alexander Fedorov Date: Mon, 25 Nov 2019 17:55:54 +0300 Subject: [PATCH 1/2] Bug 548112 - [Passage] create license plan from issue license wizard add ZeroOneMany approach Signed-off-by: Alexander Fedorov --- .../META-INF/MANIFEST.MF | 5 +- .../passage/loc/internal/api/ZeroOneMany.java | 45 +++++++ .../pom.xml | 2 + .../.classpath | 11 ++ .../.project | 34 +++++ .../.settings/org.eclipse.jdt.core.prefs | 101 +++++++++++++++ .../.settings/org.eclipse.jdt.ui.prefs | 122 ++++++++++++++++++ .../org.eclipse.pde.ds.annotations.prefs | 8 ++ .../.settings/org.eclipse.pde.prefs | 34 +++++ .../META-INF/MANIFEST.MF | 11 ++ .../OSGI-INF/l10n/bundle.properties | 23 ++++ .../build.properties | 18 +++ .../loc/api/tests/ZeroOneManyTest.java | 67 ++++++++++ 13 files changed, 479 insertions(+), 2 deletions(-) create mode 100644 bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ZeroOneMany.java create mode 100644 tests/org.eclipse.passage.loc.api.tests/.classpath create mode 100644 tests/org.eclipse.passage.loc.api.tests/.project create mode 100644 tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.core.prefs create mode 100644 tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.ui.prefs create mode 100644 tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.ds.annotations.prefs create mode 100644 tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.prefs create mode 100644 tests/org.eclipse.passage.loc.api.tests/META-INF/MANIFEST.MF create mode 100644 tests/org.eclipse.passage.loc.api.tests/OSGI-INF/l10n/bundle.properties create mode 100644 tests/org.eclipse.passage.loc.api.tests/build.properties create mode 100644 tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ZeroOneManyTest.java diff --git a/bundles/org.eclipse.passage.loc.api/META-INF/MANIFEST.MF b/bundles/org.eclipse.passage.loc.api/META-INF/MANIFEST.MF index 89cfa49db..a6ad3a244 100644 --- a/bundles/org.eclipse.passage.loc.api/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.passage.loc.api/META-INF/MANIFEST.MF @@ -2,12 +2,13 @@ Manifest-Version: 1.0 Automatic-Module-Name: org.eclipse.passage.loc.api Bundle-ManifestVersion: 2 Bundle-SymbolicName: org.eclipse.passage.loc.api -Bundle-Version: 0.5.0.qualifier +Bundle-Version: 0.5.100.qualifier Bundle-Name: %Bundle-Name Bundle-Vendor: %Bundle-Vendor Bundle-Copyright: %Bundle-Copyright Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Export-Package: org.eclipse.passage.loc.api +Export-Package: org.eclipse.passage.loc.api, + org.eclipse.passage.loc.internal.api;x-internal:=true Require-Bundle: org.eclipse.osgi.services;bundle-version="0.0.0", org.eclipse.equinox.common;bundle-version="0.0.0";visibility:=reexport, org.eclipse.e4.core.services;bundle-version="0.0.0", diff --git a/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ZeroOneMany.java b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ZeroOneMany.java new file mode 100644 index 000000000..d92c19ddc --- /dev/null +++ b/bundles/org.eclipse.passage.loc.api/src/org/eclipse/passage/loc/internal/api/ZeroOneMany.java @@ -0,0 +1,45 @@ +/******************************************************************************* + * Copyright (c) 2019 ArSysOp + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * ArSysOp - initial API and implementation + *******************************************************************************/ +package org.eclipse.passage.loc.internal.api; + +import java.util.Iterator; +import java.util.Optional; +import java.util.function.Function; +import java.util.function.Supplier; + +/** + * + * Experimental API to select existing or create new instance of + * + */ +public final class ZeroOneMany { + + private final Iterable input; + + public ZeroOneMany(Iterable input) { + this.input = input; + } + + public Optional choose(Supplier create, Function, Optional> select) { + Iterator iterator = input.iterator(); + if (!iterator.hasNext()) { + return Optional.ofNullable(create.get()); + } + C first = iterator.next(); + if (iterator.hasNext()) { + return select.apply(input); + } + return Optional.ofNullable(first); + } + +} diff --git a/releng/org.eclipse.passage.loc.aggregator/pom.xml b/releng/org.eclipse.passage.loc.aggregator/pom.xml index bfdc789f8..0103b0501 100644 --- a/releng/org.eclipse.passage.loc.aggregator/pom.xml +++ b/releng/org.eclipse.passage.loc.aggregator/pom.xml @@ -63,6 +63,8 @@ ../../bundles/org.eclipse.passage.loc.operator ../../features/org.eclipse.passage.loc.operator.feature + ../../tests/org.eclipse.passage.loc.api.tests + ../../releng/org.eclipse.passage.loc.repository ../../products/org.eclipse.passage.loc.operator.product diff --git a/tests/org.eclipse.passage.loc.api.tests/.classpath b/tests/org.eclipse.passage.loc.api.tests/.classpath new file mode 100644 index 000000000..77e037b1b --- /dev/null +++ b/tests/org.eclipse.passage.loc.api.tests/.classpath @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/tests/org.eclipse.passage.loc.api.tests/.project b/tests/org.eclipse.passage.loc.api.tests/.project new file mode 100644 index 000000000..337390fdf --- /dev/null +++ b/tests/org.eclipse.passage.loc.api.tests/.project @@ -0,0 +1,34 @@ + + + org.eclipse.passage.loc.api.tests + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.pde.api.tools.apiAnalysisBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + org.eclipse.pde.api.tools.apiAnalysisNature + + diff --git a/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..8f9ec5cde --- /dev/null +++ b/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,101 @@ +eclipse.preferences.version=1 +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.problem.APILeak=warning +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +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.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.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +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.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +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=error +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.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=warning +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=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.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +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=warning +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=warning +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=warning +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.unusedTypeParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning diff --git a/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000..906381876 --- /dev/null +++ b/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,122 @@ +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=false +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +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=false +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=false +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=false +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=false +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +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_modifiers=false +cleanup.remove_redundant_semicolons=false +cleanup.remove_redundant_type_arguments=false +cleanup.remove_trailing_whitespaces=false +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=false +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=false +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=false +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup_profile=org.eclipse.jdt.ui.default.eclipse_clean_up_profile +cleanup_settings_version=2 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +org.eclipse.jdt.ui.text.custom_code_templates= +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_functional_interfaces=false +sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.insert_inferred_type_arguments=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=false +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=false +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_redundant_modifiers=false +sp_cleanup.remove_redundant_semicolons=false +sp_cleanup.remove_redundant_type_arguments=false +sp_cleanup.remove_trailing_whitespaces=false +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=false +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_anonymous_class_creation=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_lambda=true +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.ds.annotations.prefs b/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.ds.annotations.prefs new file mode 100644 index 000000000..73a356b6d --- /dev/null +++ b/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.ds.annotations.prefs @@ -0,0 +1,8 @@ +classpath=true +dsVersion=V1_3 +eclipse.preferences.version=1 +enabled=true +generateBundleActivationPolicyLazy=true +path=OSGI-INF +validationErrorLevel=error +validationErrorLevel.missingImplicitUnbindMethod=error diff --git a/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.prefs new file mode 100644 index 000000000..47bd5bdfc --- /dev/null +++ b/tests/org.eclipse.passage.loc.api.tests/.settings/org.eclipse.pde.prefs @@ -0,0 +1,34 @@ +compilers.f.unresolved-features=1 +compilers.f.unresolved-plugins=1 +compilers.incompatible-environment=1 +compilers.p.build=1 +compilers.p.build.bin.includes=1 +compilers.p.build.encodings=2 +compilers.p.build.java.compiler=2 +compilers.p.build.java.compliance=1 +compilers.p.build.missing.output=2 +compilers.p.build.output.library=1 +compilers.p.build.source.library=1 +compilers.p.build.src.includes=1 +compilers.p.deprecated=1 +compilers.p.discouraged-class=1 +compilers.p.internal=1 +compilers.p.missing-packages=2 +compilers.p.missing-version-export-package=2 +compilers.p.missing-version-import-package=2 +compilers.p.missing-version-require-bundle=1 +compilers.p.no-required-att=0 +compilers.p.no.automatic.module=1 +compilers.p.not-externalized-att=0 +compilers.p.service.component.without.lazyactivation=1 +compilers.p.unknown-attribute=1 +compilers.p.unknown-class=1 +compilers.p.unknown-element=1 +compilers.p.unknown-identifier=1 +compilers.p.unknown-resource=1 +compilers.p.unresolved-ex-points=0 +compilers.p.unresolved-import=0 +compilers.s.create-docs=false +compilers.s.doc-folder=doc +compilers.s.open-tags=1 +eclipse.preferences.version=1 diff --git a/tests/org.eclipse.passage.loc.api.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.passage.loc.api.tests/META-INF/MANIFEST.MF new file mode 100644 index 000000000..e89430bfa --- /dev/null +++ b/tests/org.eclipse.passage.loc.api.tests/META-INF/MANIFEST.MF @@ -0,0 +1,11 @@ +Manifest-Version: 1.0 +Automatic-Module-Name: org.eclipse.passage.loc.api.tests +Bundle-ManifestVersion: 2 +Bundle-SymbolicName: org.eclipse.passage.loc.api.tests +Bundle-Version: 0.1.0.qualifier +Bundle-Name: %Bundle-Name +Bundle-Vendor: %Bundle-Vendor +Bundle-Copyright: %Bundle-Copyright +Bundle-RequiredExecutionEnvironment: JavaSE-12 +Require-Bundle: org.junit;bundle-version="4.12.0", + org.eclipse.passage.loc.api;bundle-version="0.5.100" diff --git a/tests/org.eclipse.passage.loc.api.tests/OSGI-INF/l10n/bundle.properties b/tests/org.eclipse.passage.loc.api.tests/OSGI-INF/l10n/bundle.properties new file mode 100644 index 000000000..f0d0e2678 --- /dev/null +++ b/tests/org.eclipse.passage.loc.api.tests/OSGI-INF/l10n/bundle.properties @@ -0,0 +1,23 @@ +#Properties file for org.eclipse.passage.loc.api.tests +############################################################################### +# Copyright (c) 2019 ArSysOp and others +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0. +# +# SPDX-License-Identifier: EPL-2.0 +# +# Contributors: +# ArSysOp - initial API and implementation +############################################################################### + +Bundle-Name = Passage LOC API Tests +Bundle-Vendor = Eclipse Passage +Bundle-Copyright = Copyright (c) 2018-2019 ArSysOp and others.\n\ +\n\ +This program and the accompanying materials are made\n\ +available under the terms of the Eclipse Public License 2.0\n\ +which is available at https://www.eclipse.org/legal/epl-2.0/\n\ +\n\ +SPDX-License-Identifier: EPL-2.0\n\ diff --git a/tests/org.eclipse.passage.loc.api.tests/build.properties b/tests/org.eclipse.passage.loc.api.tests/build.properties new file mode 100644 index 000000000..7abfdb18f --- /dev/null +++ b/tests/org.eclipse.passage.loc.api.tests/build.properties @@ -0,0 +1,18 @@ +############################################################################### +# Copyright (c) 2019 ArSysOp and others +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0. +# +# SPDX-License-Identifier: EPL-2.0 +# +# Contributors: +# ArSysOp - initial API and implementation +############################################################################### + +source.. = src/ +output.. = target/classes/ +bin.includes = META-INF/,\ + .,\ + OSGI-INF/ diff --git a/tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ZeroOneManyTest.java b/tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ZeroOneManyTest.java new file mode 100644 index 000000000..6f6580b66 --- /dev/null +++ b/tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ZeroOneManyTest.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * Copyright (c) 2019 ArSysOp + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * ArSysOp - initial API and implementation + *******************************************************************************/ +package org.eclipse.passage.loc.api.tests; + +import static org.junit.Assert.assertEquals; + +import java.util.Arrays; +import java.util.Collections; +import java.util.Optional; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; + +import org.eclipse.passage.loc.internal.api.ZeroOneMany; +import org.junit.Test; + +@SuppressWarnings("restriction") +public class ZeroOneManyTest { + + @Test + public void testZero() throws Exception { + ZeroOneMany zom = new ZeroOneMany<>(Collections.emptyList()); + Optional zero = zom.choose(() -> null, null); + assertEquals(true, zero.isEmpty()); + } + + @Test + public void testCreated() throws Exception { + Object single = new Object(); + ZeroOneMany zom = new ZeroOneMany<>(Collections.emptyList()); + Optional one = zom.choose(() -> single, null); + assertEquals(single, one.get()); + } + + @Test + public void testOne() throws Exception { + Object single = new Object(); + ZeroOneMany zom = new ZeroOneMany<>(Collections.singleton(single)); + Optional one = zom.choose(null, null); + assertEquals(single, one.get()); + } + + @Test + public void testMany() throws Exception { + Object first = new Object(); + Object second = new Object(); + ZeroOneMany zom = new ZeroOneMany<>(Arrays.asList(first, second)); + Optional one = zom.choose(null, source -> select(source, 1)); + assertEquals(second, one.get()); + } + + private Optional select(Iterable source, int index) { + Stream stream = StreamSupport.stream(source.spliterator(), false); + return Optional.of(stream.collect(Collectors.toList()).get(index)); + } + +} From 750f3296e4049ad45cc71d2a83df8371abb10415 Mon Sep 17 00:00:00 2001 From: Alexander Fedorov Date: Mon, 25 Nov 2019 18:12:49 +0300 Subject: [PATCH 2/2] Bug 548112 - [Passage] create license plan from issue license wizard use JDK 1.8 Signed-off-by: Alexander Fedorov --- tests/org.eclipse.passage.loc.api.tests/.classpath | 2 +- tests/org.eclipse.passage.loc.api.tests/META-INF/MANIFEST.MF | 2 +- .../src/org/eclipse/passage/loc/api/tests/ZeroOneManyTest.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/org.eclipse.passage.loc.api.tests/.classpath b/tests/org.eclipse.passage.loc.api.tests/.classpath index 77e037b1b..f19381878 100644 --- a/tests/org.eclipse.passage.loc.api.tests/.classpath +++ b/tests/org.eclipse.passage.loc.api.tests/.classpath @@ -1,6 +1,6 @@ - + diff --git a/tests/org.eclipse.passage.loc.api.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.passage.loc.api.tests/META-INF/MANIFEST.MF index e89430bfa..bba0848f8 100644 --- a/tests/org.eclipse.passage.loc.api.tests/META-INF/MANIFEST.MF +++ b/tests/org.eclipse.passage.loc.api.tests/META-INF/MANIFEST.MF @@ -6,6 +6,6 @@ Bundle-Version: 0.1.0.qualifier Bundle-Name: %Bundle-Name Bundle-Vendor: %Bundle-Vendor Bundle-Copyright: %Bundle-Copyright -Bundle-RequiredExecutionEnvironment: JavaSE-12 +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: org.junit;bundle-version="4.12.0", org.eclipse.passage.loc.api;bundle-version="0.5.100" diff --git a/tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ZeroOneManyTest.java b/tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ZeroOneManyTest.java index 6f6580b66..dc2509fd1 100644 --- a/tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ZeroOneManyTest.java +++ b/tests/org.eclipse.passage.loc.api.tests/src/org/eclipse/passage/loc/api/tests/ZeroOneManyTest.java @@ -31,7 +31,7 @@ public class ZeroOneManyTest { public void testZero() throws Exception { ZeroOneMany zom = new ZeroOneMany<>(Collections.emptyList()); Optional zero = zom.choose(() -> null, null); - assertEquals(true, zero.isEmpty()); + assertEquals(false, zero.isPresent()); } @Test