├── .github ├── FUNDING.yml └── workflows │ ├── [A] build and test, release if requested.yml │ ├── [A] compute coverage.yml │ ├── [A] update documentation.yml │ ├── [A][S] build and test.yml │ ├── [A][S][experimental] build and test.yml │ └── [M] build and test, compute coverage, release.yml ├── .gitignore ├── LICENSE ├── README.md ├── docs ├── _config.yml ├── _layouts │ └── default.html ├── assets │ ├── css │ │ └── style.scss │ └── fonts │ │ ├── AldoPro-Black.ttf │ │ ├── AldoPro-Black.woff │ │ ├── AldoPro-Black.woff2 │ │ ├── AldoPro-Bold.ttf │ │ ├── AldoPro-Bold.woff │ │ ├── AldoPro-Bold.woff2 │ │ ├── AldoPro-Book.ttf │ │ ├── AldoPro-Book.woff │ │ ├── AldoPro-Book.woff2 │ │ ├── AldoPro-Hairline.ttf │ │ ├── AldoPro-Hairline.woff │ │ ├── AldoPro-Hairline.woff2 │ │ ├── AldoPro-Light.ttf │ │ ├── AldoPro-Light.woff │ │ ├── AldoPro-Light.woff2 │ │ ├── AldoPro-Medium.ttf │ │ ├── AldoPro-Medium.woff │ │ ├── AldoPro-Medium.woff2 │ │ ├── AldoPro-Regular.ttf │ │ ├── AldoPro-Regular.woff │ │ ├── AldoPro-Regular.woff2 │ │ ├── AldoPro-Thin.ttf │ │ ├── AldoPro-Thin.woff │ │ └── AldoPro-Thin.woff2 └── index.md ├── launcher └── eclipse │ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 11 (Semeru).launch │ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 11.launch │ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 14.launch │ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 15.launch │ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 16 (Semeru).launch │ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 17.launch │ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 18.launch │ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 19.launch │ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 20.launch │ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 24.launch │ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 8 (Semeru).launch │ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 8.launch │ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 9.launch │ ├── Burningwave Core - AllTestsSuite.launch │ ├── Burningwave Core - Debug attacher.launch │ ├── Burningwave Core - build and test with REMOTE DEBUG.launch │ ├── Burningwave Core - clean package install.launch │ └── Burningwave Core - clean package test.launch ├── pom.xml └── src ├── main ├── java │ ├── module-info.java │ └── org │ │ └── burningwave │ │ └── core │ │ ├── Cache.java │ │ ├── Cleanable.java │ │ ├── Closeable.java │ │ ├── Component.java │ │ ├── Context.java │ │ ├── Criteria.java │ │ ├── Executable.java │ │ ├── Identifiable.java │ │ ├── LoggingLevel.java │ │ ├── ManagedLogger.java │ │ ├── Memorizer.java │ │ ├── Objects.java │ │ ├── SLF4JManagedLoggerRepository.java │ │ ├── SimpleManagedLoggerRepository.java │ │ ├── Strings.java │ │ ├── SystemProperties.java │ │ ├── Virtual.java │ │ ├── assembler │ │ ├── ComponentContainer.java │ │ ├── ComponentSupplier.java │ │ └── StaticComponentContainer.java │ │ ├── classes │ │ ├── AnnotationSourceGenerator.java │ │ ├── BodySourceGenerator.java │ │ ├── ByteCodeHunter.java │ │ ├── ByteCodeHunterImpl.java │ │ ├── ClassCriteria.java │ │ ├── ClassFactory.java │ │ ├── ClassFactoryImpl.java │ │ ├── ClassHunter.java │ │ ├── ClassHunterImpl.java │ │ ├── ClassLoaderManager.java │ │ ├── ClassPathHelper.java │ │ ├── ClassPathHelperImpl.java │ │ ├── ClassPathHunter.java │ │ ├── ClassPathHunterImpl.java │ │ ├── ClassPathScanner.java │ │ ├── ClassSourceGenerator.java │ │ ├── Classes.java │ │ ├── CodeExecutor.java │ │ ├── CodeExecutorImpl.java │ │ ├── ConstructorCriteria.java │ │ ├── Constructors.java │ │ ├── CriteriaWithClassElementsSupplyingSupport.java │ │ ├── ExecutableMemberCriteria.java │ │ ├── ExecuteConfig.java │ │ ├── FieldAccessor.java │ │ ├── FieldCriteria.java │ │ ├── Fields.java │ │ ├── FunctionSourceGenerator.java │ │ ├── FunctionalInterfaceFactory.java │ │ ├── FunctionalInterfaceFactoryImpl.java │ │ ├── FunctionalInterfaceSourceGenerator.java │ │ ├── GenericSourceGenerator.java │ │ ├── JavaClass.java │ │ ├── JavaMemoryCompiler.java │ │ ├── JavaMemoryCompilerImpl.java │ │ ├── LoadOrBuildAndDefineConfig.java │ │ ├── LoadOrBuildAndDefineConfigAbst.java │ │ ├── MemberCriteria.java │ │ ├── Members.java │ │ ├── MembersRetriever.java │ │ ├── MemoryClassLoader.java │ │ ├── MethodCriteria.java │ │ ├── Methods.java │ │ ├── Modules.java │ │ ├── PathScannerClassLoader.java │ │ ├── PojoSourceGenerator.java │ │ ├── SearchConfig.java │ │ ├── SearchContext.java │ │ ├── SearchResult.java │ │ ├── SourceCodeHandler.java │ │ ├── SourceGenerator.java │ │ ├── TypeDeclarationSourceGenerator.java │ │ ├── UnitSourceGenerator.java │ │ └── VariableSourceGenerator.java │ │ ├── concurrent │ │ ├── NullExecutableException.java │ │ ├── QueuedTaskExecutor.java │ │ ├── Synchronizer.java │ │ ├── TaskStateException.java │ │ ├── TasksMonitorer.java │ │ └── Thread.java │ │ ├── function │ │ ├── Executor.java │ │ ├── MultiParamsConsumer.java │ │ ├── MultiParamsFunction.java │ │ ├── MultiParamsPredicate.java │ │ ├── PentaConsumer.java │ │ ├── PentaFunction.java │ │ ├── PentaPredicate.java │ │ ├── QuadConsumer.java │ │ ├── QuadPredicate.java │ │ ├── Runnable.java │ │ ├── ThrowingBiConsumer.java │ │ ├── ThrowingBiFunction.java │ │ ├── ThrowingBiPredicate.java │ │ ├── ThrowingConsumer.java │ │ ├── ThrowingFunction.java │ │ ├── ThrowingPredicate.java │ │ ├── ThrowingQuadFunction.java │ │ ├── ThrowingRunnable.java │ │ ├── ThrowingSupplier.java │ │ ├── ThrowingTriFunction.java │ │ ├── ThrowingTriPredicate.java │ │ ├── TriConsumer.java │ │ ├── TriFunction.java │ │ └── TriPredicate.java │ │ ├── io │ │ ├── ByteBufferInputStream.java │ │ ├── ByteBufferOutputStream.java │ │ ├── FileCriteria.java │ │ ├── FileInputStream.java │ │ ├── FileOutputStream.java │ │ ├── FileSystemHelper.java │ │ ├── FileSystemItem.java │ │ ├── FileSystemItemNotFoundException.java │ │ ├── IterableZipContainer.java │ │ ├── PathHelper.java │ │ ├── PathHelperImpl.java │ │ ├── Resources.java │ │ ├── Streams.java │ │ ├── StreamsImpl.java │ │ ├── ZipContainerEntryCriteria.java │ │ ├── ZipFile.java │ │ └── ZipInputStream.java │ │ ├── iterable │ │ ├── IterableObjectHelper.java │ │ ├── IterableObjectHelperImpl.java │ │ ├── Properties.java │ │ ├── TaskBasedIterator.java │ │ └── ThreadBasedIterator.java │ │ └── jvm │ │ └── BufferHandler.java └── resources │ └── org │ └── burningwave │ └── banner.bwb └── test ├── external-resources ├── commons-lang │ └── org │ │ └── apache │ │ └── commons │ │ └── lang │ │ ├── ArrayUtils.class │ │ ├── BitField.class │ │ ├── BooleanUtils.class │ │ ├── CharEncoding.class │ │ ├── CharRange$1.class │ │ ├── CharRange$CharacterIterator.class │ │ ├── CharRange.class │ │ ├── CharSet.class │ │ ├── CharSetUtils.class │ │ ├── CharUtils.class │ │ ├── ClassUtils.class │ │ ├── Entities$ArrayEntityMap.class │ │ ├── Entities$BinaryEntityMap.class │ │ ├── Entities$EntityMap.class │ │ ├── Entities$HashEntityMap.class │ │ ├── Entities$LookupEntityMap.class │ │ ├── Entities$MapIntMap.class │ │ ├── Entities$PrimitiveEntityMap.class │ │ ├── Entities$TreeEntityMap.class │ │ ├── Entities.class │ │ ├── IllegalClassException.class │ │ ├── IncompleteArgumentException.class │ │ ├── IntHashMap$Entry.class │ │ ├── IntHashMap.class │ │ ├── LocaleUtils.class │ │ ├── NotImplementedException.class │ │ ├── NullArgumentException.class │ │ ├── NumberRange.class │ │ ├── NumberUtils.class │ │ ├── ObjectUtils$Null.class │ │ ├── ObjectUtils.class │ │ ├── RandomStringUtils.class │ │ ├── SerializationException.class │ │ ├── SerializationUtils.class │ │ ├── StringEscapeUtils.class │ │ ├── StringUtils.class │ │ ├── SystemUtils.class │ │ ├── UnhandledException.class │ │ ├── Validate.class │ │ ├── WordUtils.class │ │ ├── builder │ │ ├── CompareToBuilder.class │ │ ├── EqualsBuilder.class │ │ ├── HashCodeBuilder.class │ │ ├── IDKey.class │ │ ├── ReflectionToStringBuilder.class │ │ ├── StandardToStringStyle.class │ │ ├── ToStringBuilder.class │ │ ├── ToStringStyle$DefaultToStringStyle.class │ │ ├── ToStringStyle$MultiLineToStringStyle.class │ │ ├── ToStringStyle$NoFieldNameToStringStyle.class │ │ ├── ToStringStyle$ShortPrefixToStringStyle.class │ │ ├── ToStringStyle$SimpleToStringStyle.class │ │ └── ToStringStyle.class │ │ ├── enum │ │ ├── Enum$Entry.class │ │ ├── Enum.class │ │ ├── EnumUtils.class │ │ └── ValuedEnum.class │ │ ├── enums │ │ ├── Enum$Entry.class │ │ ├── Enum.class │ │ ├── EnumUtils.class │ │ └── ValuedEnum.class │ │ ├── exception │ │ ├── CloneFailedException.class │ │ ├── ExceptionUtils.class │ │ ├── Nestable.class │ │ ├── NestableDelegate.class │ │ ├── NestableError.class │ │ ├── NestableException.class │ │ └── NestableRuntimeException.class │ │ ├── math │ │ ├── DoubleRange.class │ │ ├── FloatRange.class │ │ ├── Fraction.class │ │ ├── IEEE754rUtils.class │ │ ├── IntRange.class │ │ ├── JVMRandom.class │ │ ├── LongRange.class │ │ ├── NumberRange.class │ │ ├── NumberUtils.class │ │ ├── RandomUtils.class │ │ └── Range.class │ │ ├── mutable │ │ ├── Mutable.class │ │ ├── MutableBoolean.class │ │ ├── MutableByte.class │ │ ├── MutableDouble.class │ │ ├── MutableFloat.class │ │ ├── MutableInt.class │ │ ├── MutableLong.class │ │ ├── MutableObject.class │ │ └── MutableShort.class │ │ ├── reflect │ │ ├── ConstructorUtils.class │ │ ├── FieldUtils.class │ │ ├── MemberUtils.class │ │ └── MethodUtils.class │ │ ├── text │ │ ├── CompositeFormat.class │ │ ├── ExtendedMessageFormat.class │ │ ├── FormatFactory.class │ │ ├── StrBuilder$StrBuilderReader.class │ │ ├── StrBuilder$StrBuilderTokenizer.class │ │ ├── StrBuilder$StrBuilderWriter.class │ │ ├── StrBuilder.class │ │ ├── StrLookup$MapStrLookup.class │ │ ├── StrLookup.class │ │ ├── StrMatcher$CharMatcher.class │ │ ├── StrMatcher$CharSetMatcher.class │ │ ├── StrMatcher$NoMatcher.class │ │ ├── StrMatcher$StringMatcher.class │ │ ├── StrMatcher$TrimMatcher.class │ │ ├── StrMatcher.class │ │ ├── StrSubstitutor.class │ │ └── StrTokenizer.class │ │ └── time │ │ ├── DateFormatUtils.class │ │ ├── DateUtils$DateIterator.class │ │ ├── DateUtils.class │ │ ├── DurationFormatUtils$Token.class │ │ ├── DurationFormatUtils.class │ │ ├── FastDateFormat$CharacterLiteral.class │ │ ├── FastDateFormat$NumberRule.class │ │ ├── FastDateFormat$PaddedNumberField.class │ │ ├── FastDateFormat$Pair.class │ │ ├── FastDateFormat$Rule.class │ │ ├── FastDateFormat$StringLiteral.class │ │ ├── FastDateFormat$TextField.class │ │ ├── FastDateFormat$TimeZoneDisplayKey.class │ │ ├── FastDateFormat$TimeZoneNameRule.class │ │ ├── FastDateFormat$TimeZoneNumberRule.class │ │ ├── FastDateFormat$TwelveHourField.class │ │ ├── FastDateFormat$TwentyFourHourField.class │ │ ├── FastDateFormat$TwoDigitMonthField.class │ │ ├── FastDateFormat$TwoDigitNumberField.class │ │ ├── FastDateFormat$TwoDigitYearField.class │ │ ├── FastDateFormat$UnpaddedMonthField.class │ │ ├── FastDateFormat$UnpaddedNumberField.class │ │ ├── FastDateFormat.class │ │ └── StopWatch.class ├── libs-for-test.zip └── spring-core-4.3.4.RELEASE.jar ├── java └── org │ └── burningwave │ └── core │ ├── AllExceptHeavyTestsSuite.java │ ├── AllTestsReducedSuite.java │ ├── AllTestsSuite.java │ ├── BackgroundExecutorTest.java │ ├── BaseTest.java │ ├── ByteBufferHandlerTest.java │ ├── ByteCodeHunterTest.java │ ├── ClassFactoryTest.java │ ├── ClassHunterTest.java │ ├── ClassLoadersTest.java │ ├── ClassPathHunterTest.java │ ├── ClassesTest.java │ ├── CodeExecutorTest.java │ ├── ComponentContainerTest.java │ ├── ConstructorsTest.java │ ├── FieldAccessorTest.java │ ├── FieldsTest.java │ ├── FileSystemHelperTest.java │ ├── FileSystemItemTest.java │ ├── FunctionalInterfaceFactoryTest.java │ ├── IterableObjectHelperTest.java │ ├── IterableZipContainerTest.java │ ├── ManagedLoggerRepositoryTest.java │ ├── MembersTest.java │ ├── MemoryClassLoaderTest.java │ ├── MethodsTest.java │ ├── ModulesTest.java │ ├── PathHelperTest.java │ ├── PathScannerClassLoaderTest.java │ ├── PropertiesTest.java │ ├── RepeatedClassFactoryTest.java │ ├── RepeatedComponentContainerTest.java │ ├── SourceCodeHandlerTest.java │ ├── StringsTest.java │ ├── ThreadSupplierTest.java │ ├── UnitSourceGeneratorTest.java │ ├── bean │ ├── Complex.java │ └── PojoInterface.java │ ├── examples │ ├── backgroundexecutor │ │ └── TaskLauncher.java │ ├── classfactory │ │ ├── ExternalClassRuntimeExtender.java │ │ ├── FunctionalInterfaceBuilder.java │ │ ├── RuntimeClassExtender.java │ │ ├── RuntimeClassExtenderTwo.java │ │ └── UseFunctionalInterface.java │ ├── classhunter │ │ ├── AllAnnotatedClassFinder.java │ │ ├── ClassForPackageAndAnnotationFinder.java │ │ ├── ClassForPackageAndAnnotationFinderByConsideringClassHierarchy.java │ │ ├── ClassForPackageFinder.java │ │ ├── ClassHunterMixedExample.java │ │ └── FieldAnnotatedClassOfPackageFinder.java │ ├── codeexecutor │ │ └── SourceCodeExecutor.java │ ├── componentcontainer │ │ └── RetrievingDynamicComponentContainerAndComponents.java │ ├── filesystemitem │ │ └── ResourceReacher.java │ ├── functionalinterfacefactory │ │ ├── Binder.java │ │ └── Service.java │ ├── iterableobjecthelper │ │ ├── CollectionAndArrayIterator.java │ │ └── ItemFromMapRetriever.java │ ├── member │ │ ├── ConstructorsHandler.java │ │ ├── FieldsHandler.java │ │ └── MethodsHandler.java │ ├── propertyaccessor │ │ └── GetAndSetPropertiesThroughPath.java │ ├── usecase001 │ │ └── Finder.java │ ├── usecase002 │ │ └── Finder.java │ ├── usecase003 │ │ └── Finder.java │ ├── usecase005 │ │ └── Finder.java │ ├── usecase006 │ │ └── Finder.java │ ├── usecase008 │ │ └── Finder.java │ ├── usecase009 │ │ └── Finder.java │ └── usecase010 │ │ └── Finder.java │ └── service │ ├── ExtendedService.java │ ├── Service.java │ └── ServiceInterface.java └── resources ├── burningwave.properties ├── burningwave.static.properties ├── custom-folder └── code.properties ├── junit-platform.properties ├── logback-test.xml └── logging.properties /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: https://www.paypal.com/donate/?cmd=_donations&business=EY4TMTW8SWDAC&item_name=Support+maintenance+and+improvement+of+Burningwave+Core¤cy_code=EUR&source=url 2 | -------------------------------------------------------------------------------- /.github/workflows/[A] build and test, release if requested.yml: -------------------------------------------------------------------------------- 1 | name: Build and test -> Release if requested 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | paths: 8 | - "src/main/**.java" 9 | - "src/test/**.java" 10 | # - ".github/workflows/**" 11 | - "**.properties" 12 | - "**.xml" 13 | 14 | jobs: 15 | 16 | build-and-test-with-Java-8-and-later: 17 | name: Build -> Test (JVM ${{ matrix.java }}, ${{ matrix.os }}) 18 | strategy: 19 | fail-fast: true 20 | max-parallel: 15 21 | matrix: 22 | architecture: [x64] 23 | os: [windows-latest, macOS-latest, ubuntu-latest] 24 | java: [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24] 25 | exclude: 26 | - os: ubuntu-latest 27 | java: 10 28 | runs-on: ${{ matrix.os }} 29 | steps: 30 | - uses: actions/checkout@v3 31 | - name: Set up JDK ${{ matrix.java }} 32 | uses: actions/setup-java@v3 33 | with: 34 | java-version: ${{ matrix.java }} 35 | distribution: 'zulu' 36 | architecture: ${{ matrix.architecture }} 37 | - name: Build and test 38 | run: mvn -B clean test -DskipTests=false --file pom.xml 39 | 40 | 41 | release: 42 | name: Release if requested 43 | needs: [build-and-test-with-Java-8-and-later] 44 | runs-on: ubuntu-latest 45 | if: github.event_name == 'push' && endsWith(github.event.head_commit.message, 'Releasing new version') 46 | steps: 47 | - uses: actions/checkout@v3 48 | - name: Set up JDK 24 49 | uses: actions/setup-java@v3 50 | with: 51 | java-version: 24 52 | distribution: 'zulu' 53 | server-id: ossrh 54 | server-username: MAVEN_USERNAME 55 | server-password: MAVEN_PASSWORD 56 | - name: Publish to the Maven Central repository 57 | run: | 58 | export GPG_TTY=$(tty) 59 | echo "${{ secrets.gpg_private_key }}" | gpg --batch --import 60 | git config user.name "${{ github.event.head_commit.committer.name }}" 61 | git config user.email "${{ github.event.head_commit.committer.email }}" 62 | mvn -B release:prepare release:perform -DskipTests=true -Dgpg.passphrase=${{ secrets.gpg_passphrase }} -Dgpg.keyname=${{ secrets.gpg_key_id }} -Drepository.url=https://${GITHUB_ACTOR}:${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git 63 | env: 64 | MAVEN_USERNAME: ${{ secrets.nexus_username }} 65 | MAVEN_PASSWORD: ${{ secrets.nexus_password }} 66 | -------------------------------------------------------------------------------- /.github/workflows/[A] compute coverage.yml: -------------------------------------------------------------------------------- 1 | name: Compute coverage 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | paths: 8 | - "src/main/**.java" 9 | - "src/test/**.java" 10 | # - ".github/workflows/**" 11 | - "**.properties" 12 | - "**.xml" 13 | 14 | jobs: 15 | compute-coverage: 16 | name: Compute coverage 17 | runs-on: ubuntu-latest 18 | steps: 19 | - uses: actions/checkout@v3 20 | - uses: actions/setup-java@v3 21 | with: 22 | java-version: 8 23 | distribution: 'zulu' 24 | architecture: x64 25 | - name: Build and test 26 | run: mvn clean test -DskipTests=false -Dproject.test.testSuite=AllTestsSuite -P run-coveralls jacoco:report coveralls:report -DrepoToken=${{ secrets.coveralls_repo_token }} 27 | 28 | -------------------------------------------------------------------------------- /.github/workflows/[A] update documentation.yml: -------------------------------------------------------------------------------- 1 | name: Update index page 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | paths: 8 | - "**README.md" 9 | 10 | jobs: 11 | update-index-page: 12 | runs-on: ubuntu-latest 13 | name: Update index page 14 | steps: 15 | - uses: actions/checkout@master 16 | - name: Overwrite the index.md 17 | run: | 18 | git config user.name "${{ github.event.head_commit.committer.name }}" 19 | git config user.email "${{ github.event.head_commit.committer.email }}" 20 | git pull origin ${{github.ref}} 21 | cp "./README.md" "./docs/index.md" 22 | git add . 23 | git commit -am "Update" --allow-empty 24 | git push 25 | -------------------------------------------------------------------------------- /.github/workflows/[A][S] build and test.yml: -------------------------------------------------------------------------------- 1 | name: Build and test 2 | 3 | on: 4 | schedule: 5 | # - cron: "0 3-23/6 * * *" 6 | - cron: "0 15 * * 5" 7 | # - cron: "0 10,22 30 9 *" 8 | 9 | jobs: 10 | 11 | build-and-test-with-Java-8-and-later: 12 | name: Build -> Test (JVM ${{ matrix.java }}, ${{ matrix.os }}) 13 | strategy: 14 | fail-fast: true 15 | max-parallel: 15 16 | matrix: 17 | architecture: [x64] 18 | os: [windows-latest, macOS-latest, ubuntu-latest] 19 | java: [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24] 20 | exclude: 21 | - os: ubuntu-latest 22 | java: 10 23 | runs-on: ${{ matrix.os }} 24 | steps: 25 | - uses: actions/checkout@v3 26 | - name: Set up JDK ${{ matrix.java }} 27 | uses: actions/setup-java@v3 28 | with: 29 | java-version: ${{ matrix.java }} 30 | distribution: 'zulu' 31 | architecture: ${{ matrix.architecture }} 32 | - name: Build and test 33 | run: mvn -B clean test -DskipTests=false --file pom.xml 34 | -------------------------------------------------------------------------------- /.github/workflows/[A][S][experimental] build and test.yml: -------------------------------------------------------------------------------- 1 | name: Build and test (experimental branch) 2 | 3 | on: 4 | schedule: 5 | # - cron: "0 0-23/6 * * *" 6 | - cron: "0 17 * * 5" 7 | # - cron: "0 4,16 30 9 *" 8 | 9 | jobs: 10 | 11 | build-and-test-with-Java-8-and-later: 12 | name: Build -> Test (JVM ${{ matrix.java }}, ${{ matrix.os }}) 13 | strategy: 14 | fail-fast: true 15 | max-parallel: 15 16 | matrix: 17 | architecture: [x64] 18 | os: [windows-latest, macOS-latest, ubuntu-latest] 19 | java: [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24] 20 | exclude: 21 | - os: ubuntu-latest 22 | java: 10 23 | runs-on: ${{ matrix.os }} 24 | steps: 25 | - uses: actions/checkout@v3 26 | with: 27 | ref: experimental 28 | - name: Set up JDK ${{ matrix.java }} 29 | uses: actions/setup-java@v3 30 | with: 31 | java-version: ${{ matrix.java }} 32 | distribution: 'zulu' 33 | architecture: ${{ matrix.architecture }} 34 | - name: Build and test 35 | run: mvn -B clean test -DskipTests=false --file pom.xml 36 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Log file 2 | *.log 3 | 4 | # BlueJ files 5 | *.ctxt 6 | 7 | # Mobile Tools for Java (J2ME) 8 | .mtj.tmp/ 9 | 10 | # Package Files # 11 | *.jar 12 | *.war 13 | *.nar 14 | *.ear 15 | *.tar.gz 16 | *.rar 17 | 18 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 19 | hs_err_pid* 20 | 21 | /target/ 22 | /.project 23 | /.settings 24 | /.classpath 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Roberto Gentili 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman 2 | title: Burningwave Core 3 | google_analytics: UA-154852845-4 4 | show_downloads: false 5 | -------------------------------------------------------------------------------- /docs/_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {% if site.google_analytics %} 6 | 7 | 13 | {% endif %} 14 | 15 | 16 | {% seo %} 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 37 | 38 |
39 | {{ content }} 40 | 41 | 49 |
50 | 51 | 52 | -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Black.ttf -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Black.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Black.woff -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Black.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Black.woff2 -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Bold.ttf -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Bold.woff -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Bold.woff2 -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Book.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Book.ttf -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Book.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Book.woff -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Book.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Book.woff2 -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Hairline.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Hairline.ttf -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Hairline.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Hairline.woff -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Hairline.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Hairline.woff2 -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Light.ttf -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Light.woff -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Light.woff2 -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Medium.ttf -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Medium.woff -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Medium.woff2 -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Regular.ttf -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Regular.woff -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Regular.woff2 -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Thin.ttf -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Thin.woff -------------------------------------------------------------------------------- /docs/assets/fonts/AldoPro-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Thin.woff2 -------------------------------------------------------------------------------- /launcher/eclipse/Burningwave Core - AllTestsSuite.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /launcher/eclipse/Burningwave Core - Debug attacher.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /launcher/eclipse/Burningwave Core - build and test with REMOTE DEBUG.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /launcher/eclipse/Burningwave Core - clean package install.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /launcher/eclipse/Burningwave Core - clean package test.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | module org.burningwave.core { 30 | 31 | requires java.base; 32 | requires java.compiler; 33 | requires jdk.unsupported; 34 | requires transitive io.github.toolfactory.jvm; 35 | requires transitive org.burningwave.jvm; 36 | requires static org.slf4j; 37 | 38 | exports org.burningwave.core; 39 | exports org.burningwave.core.assembler; 40 | exports org.burningwave.core.classes; 41 | exports org.burningwave.core.concurrent; 42 | exports org.burningwave.core.function; 43 | exports org.burningwave.core.io; 44 | exports org.burningwave.core.iterable; 45 | exports org.burningwave.core.jvm; 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/Cleanable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core; 30 | 31 | import static org.burningwave.core.assembler.StaticComponentContainer.Strings; 32 | 33 | import org.burningwave.core.concurrent.QueuedTaskExecutor; 34 | 35 | public interface Cleanable { 36 | 37 | public default void clear() { 38 | throw new UnsupportedOperationException(Strings.compile("Method is not defined by class {} and its super classes", getClass().getName())); 39 | } 40 | 41 | public default QueuedTaskExecutor.Task clearInBackground() { 42 | throw new UnsupportedOperationException(Strings.compile("Method is not defined by class {} and its super classes", getClass().getName())); 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/Component.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core; 30 | 31 | import org.burningwave.core.iterable.Properties; 32 | 33 | public interface Component extends Closeable, Cleanable, Properties.Listener, Memorizer { 34 | 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/Context.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core; 30 | 31 | import java.util.Map; 32 | import java.util.concurrent.ConcurrentHashMap; 33 | 34 | @SuppressWarnings("unchecked") 35 | public class Context implements Closeable { 36 | protected Map, Object> context; 37 | 38 | protected Context() { 39 | context = new ConcurrentHashMap<>(); 40 | } 41 | 42 | public static Context create() { 43 | return new Context(); 44 | } 45 | 46 | public Context put(Enum name, Object parameter) { 47 | if (parameter != null) { 48 | context.put(name, parameter); 49 | } else { 50 | context.remove(name); 51 | } 52 | return this; 53 | } 54 | 55 | public T get(Enum name) { 56 | return ((T)context.get(name)); 57 | } 58 | 59 | @Override 60 | public void close() { 61 | context.clear(); 62 | context = null; 63 | } 64 | } -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/Executable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core; 30 | 31 | @SuppressWarnings("unchecked") 32 | @FunctionalInterface 33 | public interface Executable { 34 | 35 | 36 | public default T executeAndCast(Object... parameters) throws Throwable { 37 | return (T)execute(parameters); 38 | } 39 | 40 | public Object execute(Object... parameters) throws Throwable; 41 | 42 | 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/Identifiable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core; 30 | 31 | import static org.burningwave.core.assembler.StaticComponentContainer.Objects; 32 | 33 | public interface Identifiable { 34 | 35 | default public String getId() { 36 | return Objects.getId(this); 37 | } 38 | 39 | default public String getOperationId(String operation) { 40 | return Objects.getId(this) + "_" + operation; 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/Memorizer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core; 30 | 31 | import static org.burningwave.core.assembler.StaticComponentContainer.FileSystemHelper; 32 | 33 | import java.io.File; 34 | 35 | public interface Memorizer { 36 | 37 | default public String getTemporaryFolderPrefix() { 38 | return getClass().getName() + "@" + Integer.toHexString(System.identityHashCode(this)); 39 | } 40 | 41 | default public File getOrCreateTemporaryFolder() { 42 | //Register main temporary folder for deleting on FileSystemHelper closing 43 | return FileSystemHelper.getOrCreateTemporaryFolder(getTemporaryFolderPrefix()); 44 | } 45 | 46 | default public File getOrCreateTemporaryFolder(String folderName) { 47 | return FileSystemHelper.getOrCreateTemporaryFolder(getOrCreateTemporaryFolder().getName() + "/" + folderName); 48 | } 49 | 50 | } -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/Virtual.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core; 30 | 31 | import static org.burningwave.core.assembler.StaticComponentContainer.Fields; 32 | import static org.burningwave.core.assembler.StaticComponentContainer.Methods; 33 | 34 | import java.lang.reflect.Field; 35 | import java.util.Map; 36 | 37 | public interface Virtual { 38 | 39 | default T getValueOf(String fieldName) { 40 | return Fields.get(this, fieldName); 41 | } 42 | 43 | default T getDirectValueOf(String fieldName) { 44 | return Fields.getDirect(this, fieldName); 45 | } 46 | 47 | default T invoke(String methodName, Object... parameters) { 48 | return Methods.invoke(this, methodName, parameters); 49 | } 50 | 51 | default T invokeDirect(String methodName, Object... parameters) { 52 | return Methods.invokeDirect(this, methodName, parameters); 53 | } 54 | 55 | default Map getAllValues() { 56 | return Fields.getAll(this); 57 | } 58 | 59 | default Map getAllDirectValues() { 60 | return Fields.getAllDirect(this); 61 | } 62 | } -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/concurrent/NullExecutableException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.concurrent; 30 | 31 | public class NullExecutableException extends RuntimeException { 32 | 33 | private static final long serialVersionUID = 3011104623285664660L; 34 | 35 | public NullExecutableException(String message) { 36 | super(message); 37 | } 38 | 39 | } -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/concurrent/TaskStateException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.concurrent; 30 | 31 | import static org.burningwave.core.assembler.StaticComponentContainer.Strings; 32 | 33 | public class TaskStateException extends IllegalStateException { 34 | 35 | private static final long serialVersionUID = -6504561450589871045L; 36 | 37 | public TaskStateException(QueuedTaskExecutor.TaskAbst task, String message, Throwable exception) { 38 | super( 39 | Strings.compile( 40 | "{} {} and was created at:{}\nException stacktrace:", 41 | task, 42 | message, 43 | Strings.from(task.getCreatorInfos(), 1) 44 | ), 45 | exception 46 | ); 47 | } 48 | 49 | public TaskStateException(QueuedTaskExecutor.TaskAbst task, String message) { 50 | super( 51 | Strings.compile( 52 | "{} {} and was created at:{}\nException stacktrace:", 53 | task, 54 | message, 55 | Strings.from(task.getCreatorInfos(), 1) 56 | ) 57 | ); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/MultiParamsConsumer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | import java.util.function.Consumer; 33 | 34 | public interface MultiParamsConsumer { 35 | 36 | void accept(Object... objects); 37 | 38 | default Consumer andThen(Consumer after) { 39 | Objects.requireNonNull(after); 40 | return (objects) -> { 41 | accept(objects); 42 | after.accept(objects); 43 | }; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/MultiParamsFunction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | import java.util.function.Function; 33 | 34 | public interface MultiParamsFunction { 35 | 36 | public R apply(Object... objects); 37 | 38 | default Function andThen(Function after) { 39 | Objects.requireNonNull(after); 40 | return (objects) -> after.apply(apply(objects)); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/MultiParamsPredicate.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | import java.util.function.Predicate; 33 | 34 | public interface MultiParamsPredicate { 35 | 36 | public boolean test(Object... objects); 37 | 38 | default Predicate and(Predicate other) { 39 | Objects.requireNonNull(other); 40 | return objects -> test(objects) && other.test(objects); 41 | } 42 | 43 | default Predicate negate() { 44 | return (objects) -> !test(objects); 45 | } 46 | 47 | default Predicate or(Predicate other) { 48 | Objects.requireNonNull(other); 49 | return objects -> test(objects) || other.test(objects); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/PentaConsumer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | 33 | @FunctionalInterface 34 | public interface PentaConsumer { 35 | 36 | public abstract void accept(P0 p0, P1 p1, P2 p2, P3 p3, P4 p4); 37 | 38 | default PentaConsumer andThen(PentaConsumer after) { 39 | Objects.requireNonNull(after); 40 | return (p0, p1, p2, p3, p4) -> { 41 | accept(p0, p1, p2, p3, p4); 42 | after.accept(p0, p1, p2, p3, p4); 43 | }; 44 | } 45 | 46 | } -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/PentaFunction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | import java.util.function.Function; 33 | 34 | @FunctionalInterface 35 | public interface PentaFunction { 36 | 37 | R apply(P0 p0, P1 p1, P2 p2, P3 p3, P4 p4); 38 | 39 | default PentaFunction andThen(Function after) { 40 | Objects.requireNonNull(after); 41 | return (P0 p0, P1 p1, P2 p2, P3 p3, P4 p4) -> after.apply(apply(p0, p1, p2, p3, p4)); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/PentaPredicate.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | 32 | import java.util.Objects; 33 | 34 | 35 | @FunctionalInterface 36 | public interface PentaPredicate { 37 | 38 | boolean test(P0 p0, P1 p1, P2 p2, P3 p3, P4 p4); 39 | 40 | default PentaPredicate and(PentaPredicate other) { 41 | Objects.requireNonNull(other); 42 | return (P0 p0, P1 p1, P2 p2, P3 p3, P4 p4) -> test(p0, p1, p2, p3, p4) && other.test(p0, p1, p2, p3, p4); 43 | } 44 | 45 | default PentaPredicate negate() { 46 | return (P0 p0, P1 p1, P2 p2, P3 p3, P4 p4) -> !test(p0, p1, p2, p3, p4); 47 | } 48 | 49 | default PentaPredicate or(PentaPredicate other) { 50 | Objects.requireNonNull(other); 51 | return (P0 p0, P1 p1, P2 p2, P3 p3, P4 p4) -> test(p0, p1, p2, p3, p4) || other.test(p0, p1, p2, p3, p4); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/QuadConsumer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | 33 | @FunctionalInterface 34 | public interface QuadConsumer { 35 | 36 | void accept(P0 p0, P1 p1, P2 p2, P3 p3); 37 | 38 | default QuadConsumer andThen(QuadConsumer after) { 39 | Objects.requireNonNull(after); 40 | return (p0, p1, p2, p3) -> { 41 | accept(p0, p1, p2, p3); 42 | after.accept(p0, p1, p2, p3); 43 | }; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/QuadPredicate.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | 32 | import java.util.Objects; 33 | 34 | 35 | @FunctionalInterface 36 | public interface QuadPredicate { 37 | 38 | boolean test(P0 p0, P1 p1, P2 p2, P3 p3); 39 | 40 | default QuadPredicate and(QuadPredicate other) { 41 | Objects.requireNonNull(other); 42 | return (P0 p0, P1 p1, P2 p2, P3 p3) -> test(p0, p1, p2, p3) && other.test(p0, p1, p2, p3); 43 | } 44 | 45 | default QuadPredicate negate() { 46 | return (P0 p0, P1 p1, P2 p2, P3 p3) -> !test(p0, p1, p2, p3); 47 | } 48 | 49 | default QuadPredicate or(QuadPredicate other) { 50 | Objects.requireNonNull(other); 51 | return (P0 p0, P1 p1, P2 p2, P3 p3) -> test(p0, p1, p2, p3) || other.test(p0, p1, p2, p3); 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/Runnable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | 32 | import java.util.Objects; 33 | 34 | 35 | @FunctionalInterface 36 | public interface Runnable extends java.lang.Runnable { 37 | 38 | 39 | default Runnable andThen(java.lang.Runnable after) { 40 | Objects.requireNonNull(after); 41 | return () -> { 42 | run(); 43 | after.run(); 44 | }; 45 | } 46 | } -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/ThrowingBiConsumer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | 33 | @FunctionalInterface 34 | public interface ThrowingBiConsumer { 35 | 36 | void accept(P0 p0, P1 p1) throws E; 37 | 38 | default ThrowingBiConsumer andThen(ThrowingBiConsumer after) { 39 | Objects.requireNonNull(after); 40 | return (p0, p1) -> { 41 | accept(p0, p1); 42 | after.accept(p0, p1); 43 | }; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/ThrowingBiFunction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | 33 | @FunctionalInterface 34 | public interface ThrowingBiFunction { 35 | 36 | R apply(P0 p0, P1 p1) throws E; 37 | 38 | default ThrowingBiFunction andThen(ThrowingFunction after) { 39 | Objects.requireNonNull(after); 40 | return (P0 p0, P1 p1) -> after.apply(apply(p0, p1)); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/ThrowingBiPredicate.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | 33 | @FunctionalInterface 34 | public interface ThrowingBiPredicate { 35 | 36 | 37 | boolean test(T t, U u) throws E; 38 | 39 | default ThrowingBiPredicate and(ThrowingBiPredicate other) { 40 | Objects.requireNonNull(other); 41 | return (T t, U u) -> test(t, u) && other.test(t, u); 42 | } 43 | 44 | default ThrowingBiPredicate negate() { 45 | return (T t, U u) -> !test(t, u); 46 | } 47 | 48 | default ThrowingBiPredicate or(ThrowingBiPredicate other) { 49 | Objects.requireNonNull(other); 50 | return (T t, U u) -> test(t, u) || other.test(t, u); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/ThrowingConsumer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | 33 | @FunctionalInterface 34 | public interface ThrowingConsumer { 35 | 36 | void accept(T t) throws E; 37 | 38 | default ThrowingConsumer andThen(ThrowingConsumer after) { 39 | Objects.requireNonNull(after); 40 | return (T t) -> { accept(t); after.accept(t); }; 41 | } 42 | 43 | } 44 | 45 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/ThrowingFunction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | 32 | import java.util.Objects; 33 | 34 | 35 | @FunctionalInterface 36 | public interface ThrowingFunction { 37 | 38 | 39 | R apply(T t) throws E; 40 | 41 | 42 | default ThrowingFunction compose(ThrowingFunction before) { 43 | Objects.requireNonNull(before); 44 | return (V v) -> apply(before.apply(v)); 45 | } 46 | 47 | 48 | default ThrowingFunction andThen(ThrowingFunction after) { 49 | Objects.requireNonNull(after); 50 | return (T t) -> after.apply(apply(t)); 51 | } 52 | 53 | 54 | static ThrowingFunction identity() { 55 | return t -> t; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/ThrowingPredicate.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | 33 | @FunctionalInterface 34 | public interface ThrowingPredicate { 35 | 36 | boolean test(T t) throws E; 37 | 38 | default ThrowingPredicate and(ThrowingPredicate other) { 39 | Objects.requireNonNull(other); 40 | return (t) -> test(t) && other.test(t); 41 | } 42 | 43 | default ThrowingPredicate negate() { 44 | return (t) -> !test(t); 45 | } 46 | 47 | default ThrowingPredicate or(ThrowingPredicate other) { 48 | Objects.requireNonNull(other); 49 | return (t) -> test(t) || other.test(t); 50 | } 51 | 52 | static ThrowingPredicate isEqual(Object targetRef) { 53 | return (null == targetRef) 54 | ? Objects::isNull 55 | : object -> targetRef.equals(object); 56 | } 57 | } 58 | 59 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/ThrowingQuadFunction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | 33 | @FunctionalInterface 34 | public interface ThrowingQuadFunction { 35 | 36 | R apply(P0 p0, P1 p1, P2 p2, P3 p3) throws E; 37 | 38 | default ThrowingQuadFunction andThen(ThrowingFunction after) { 39 | Objects.requireNonNull(after); 40 | return (P0 p0, P1 p1, P2 p2, P3 p3) -> after.apply(apply(p0, p1, p2, p3)); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/ThrowingRunnable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | 33 | @FunctionalInterface 34 | public interface ThrowingRunnable { 35 | 36 | public abstract void run() throws E; 37 | 38 | default ThrowingRunnable andThen(ThrowingRunnable after) { 39 | Objects.requireNonNull(after); 40 | return () -> { 41 | run(); 42 | after.run(); 43 | }; 44 | } 45 | } -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/ThrowingSupplier.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | @FunctionalInterface 32 | public interface ThrowingSupplier { 33 | 34 | T get() throws E; 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/ThrowingTriFunction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | 33 | @FunctionalInterface 34 | public interface ThrowingTriFunction { 35 | 36 | R apply(P0 p0, P1 p1, P2 p2) throws E; 37 | 38 | default ThrowingTriFunction andThen(ThrowingFunction after) { 39 | Objects.requireNonNull(after); 40 | return (P0 p0, P1 p1, P2 p2) -> after.apply(apply(p0, p1, p2)); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/ThrowingTriPredicate.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | 32 | import java.util.Objects; 33 | 34 | 35 | @FunctionalInterface 36 | public interface ThrowingTriPredicate { 37 | 38 | boolean test(P0 p0, P1 p1, P2 p2) throws Throwable; 39 | 40 | default ThrowingTriPredicate and(ThrowingTriPredicate other) { 41 | Objects.requireNonNull(other); 42 | return (P0 p0, P1 p1, P2 p2) -> test(p0, p1, p2) && other.test(p0, p1, p2); 43 | } 44 | 45 | default ThrowingTriPredicate negate() { 46 | return (P0 p0, P1 p1, P2 p2) -> !test(p0, p1, p2); 47 | } 48 | 49 | default ThrowingTriPredicate or(ThrowingTriPredicate other) { 50 | Objects.requireNonNull(other); 51 | return (P0 p0, P1 p1, P2 p2) -> test(p0, p1, p2) || other.test(p0, p1, p2); 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/TriConsumer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | 33 | @FunctionalInterface 34 | public interface TriConsumer { 35 | 36 | void accept(P0 p0, P1 p1, P2 p2); 37 | 38 | default TriConsumer andThen(TriConsumer after) { 39 | Objects.requireNonNull(after); 40 | return (p0, p1, p2) -> { 41 | accept(p0, p1, p2); 42 | after.accept(p0, p1, p2); 43 | }; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/TriFunction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | import java.util.Objects; 32 | import java.util.function.Function; 33 | 34 | @FunctionalInterface 35 | public interface TriFunction { 36 | 37 | R apply(P0 p0, P1 p1, P2 p2); 38 | 39 | default TriFunction andThen(Function after) { 40 | Objects.requireNonNull(after); 41 | return (P0 p0, P1 p1, P2 p2) -> after.apply(apply(p0, p1, p2)); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/function/TriPredicate.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.function; 30 | 31 | 32 | import java.util.Objects; 33 | 34 | 35 | @FunctionalInterface 36 | public interface TriPredicate { 37 | 38 | boolean test(P0 p0, P1 p1, P2 p2); 39 | 40 | default TriPredicate and(TriPredicate other) { 41 | Objects.requireNonNull(other); 42 | return (P0 p0, P1 p1, P2 p2) -> test(p0, p1, p2) && other.test(p0, p1, p2); 43 | } 44 | 45 | default TriPredicate negate() { 46 | return (P0 p0, P1 p1, P2 p2) -> !test(p0, p1, p2); 47 | } 48 | 49 | default TriPredicate or(TriPredicate other) { 50 | Objects.requireNonNull(other); 51 | return (P0 p0, P1 p1, P2 p2) -> test(p0, p1, p2) || other.test(p0, p1, p2); 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/io/FileCriteria.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.io; 30 | 31 | import java.io.File; 32 | import java.util.function.Predicate; 33 | 34 | import org.burningwave.core.Criteria; 35 | 36 | public class FileCriteria extends Criteria.Simple { 37 | 38 | private FileCriteria() {} 39 | 40 | public static FileCriteria create() { 41 | return new FileCriteria(); 42 | } 43 | 44 | public FileCriteria absolutePath(Predicate predicate) { 45 | this.predicate = concat( 46 | this.predicate, 47 | (file) -> predicate.test(file.getAbsolutePath()) 48 | ); 49 | return this; 50 | } 51 | 52 | 53 | public FileCriteria name(Predicate predicate) { 54 | this.predicate = concat( 55 | this.predicate, 56 | (file) -> predicate.test(file.getName()) 57 | ); 58 | return this; 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/io/FileSystemItemNotFoundException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.io; 30 | 31 | 32 | public class FileSystemItemNotFoundException extends RuntimeException { 33 | 34 | private static final long serialVersionUID = 7265824022880218451L; 35 | 36 | public FileSystemItemNotFoundException(String message, Throwable cause) { 37 | super(message, cause); 38 | } 39 | 40 | public FileSystemItemNotFoundException(java.io.FileNotFoundException exc) { 41 | super(exc); 42 | } 43 | 44 | public FileSystemItemNotFoundException(String message) { 45 | super(message); 46 | } 47 | } -------------------------------------------------------------------------------- /src/main/java/org/burningwave/core/io/ZipContainerEntryCriteria.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Burningwave Core. 3 | * 4 | * Author: Roberto Gentili 5 | * 6 | * Hosted at: https://github.com/burningwave/core 7 | * 8 | * -- 9 | * 10 | * The MIT License (MIT) 11 | * 12 | * Copyright (c) 2019 Roberto Gentili 13 | * 14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 15 | * documentation files (the "Software"), to deal in the Software without restriction, including without 16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following 18 | * conditions: 19 | * 20 | * The above copyright notice and this permission notice shall be included in all copies or substantial 21 | * portions of the Software. 22 | * 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 27 | * OR OTHER DEALINGS IN THE SOFTWARE. 28 | */ 29 | package org.burningwave.core.io; 30 | 31 | import java.util.function.Predicate; 32 | 33 | import org.burningwave.core.Criteria; 34 | 35 | public class ZipContainerEntryCriteria extends Criteria>{ 36 | 37 | private ZipContainerEntryCriteria() {} 38 | 39 | public static ZipContainerEntryCriteria create() { 40 | return new ZipContainerEntryCriteria(); 41 | } 42 | 43 | public ZipContainerEntryCriteria absolutePath(final Predicate predicate) { 44 | this.predicate = concat( 45 | this.predicate, 46 | (context, zipEntry) -> predicate.test(zipEntry.getAbsolutePath()) 47 | ); 48 | return this; 49 | } 50 | 51 | 52 | public ZipContainerEntryCriteria name(final Predicate predicate) { 53 | this.predicate = concat( 54 | this.predicate, 55 | (context, zipEntry) -> predicate.test(zipEntry.getName()) 56 | ); 57 | return this; 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/ArrayUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/ArrayUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/BitField.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/BitField.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/BooleanUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/BooleanUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/CharEncoding.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/CharEncoding.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/CharRange$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/CharRange$1.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/CharRange$CharacterIterator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/CharRange$CharacterIterator.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/CharRange.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/CharRange.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/CharSet.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/CharSet.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/CharSetUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/CharSetUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/CharUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/CharUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/ClassUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/ClassUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$ArrayEntityMap.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$ArrayEntityMap.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$BinaryEntityMap.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$BinaryEntityMap.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$EntityMap.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$EntityMap.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$HashEntityMap.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$HashEntityMap.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$LookupEntityMap.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$LookupEntityMap.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$MapIntMap.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$MapIntMap.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$PrimitiveEntityMap.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$PrimitiveEntityMap.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$TreeEntityMap.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$TreeEntityMap.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/Entities.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/IllegalClassException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/IllegalClassException.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/IncompleteArgumentException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/IncompleteArgumentException.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/IntHashMap$Entry.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/IntHashMap$Entry.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/IntHashMap.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/IntHashMap.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/LocaleUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/LocaleUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/NotImplementedException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/NotImplementedException.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/NullArgumentException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/NullArgumentException.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/NumberRange.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/NumberRange.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/NumberUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/NumberUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/ObjectUtils$Null.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/ObjectUtils$Null.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/ObjectUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/ObjectUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/RandomStringUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/RandomStringUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/SerializationException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/SerializationException.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/SerializationUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/SerializationUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/StringEscapeUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/StringEscapeUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/StringUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/StringUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/SystemUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/SystemUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/UnhandledException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/UnhandledException.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/Validate.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Validate.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/WordUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/WordUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/builder/CompareToBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/CompareToBuilder.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/builder/EqualsBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/EqualsBuilder.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/builder/HashCodeBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/HashCodeBuilder.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/builder/IDKey.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/IDKey.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ReflectionToStringBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ReflectionToStringBuilder.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/builder/StandardToStringStyle.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/StandardToStringStyle.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringBuilder.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$DefaultToStringStyle.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$DefaultToStringStyle.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$MultiLineToStringStyle.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$MultiLineToStringStyle.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$NoFieldNameToStringStyle.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$NoFieldNameToStringStyle.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$ShortPrefixToStringStyle.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$ShortPrefixToStringStyle.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$SimpleToStringStyle.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$SimpleToStringStyle.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/enum/Enum$Entry.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enum/Enum$Entry.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/enum/Enum.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enum/Enum.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/enum/EnumUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enum/EnumUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/enum/ValuedEnum.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enum/ValuedEnum.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/enums/Enum$Entry.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enums/Enum$Entry.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/enums/Enum.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enums/Enum.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/enums/EnumUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enums/EnumUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/enums/ValuedEnum.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enums/ValuedEnum.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/exception/CloneFailedException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/CloneFailedException.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/exception/ExceptionUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/ExceptionUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/exception/Nestable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/Nestable.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableDelegate.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableDelegate.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableError.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableError.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableException.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableRuntimeException.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableRuntimeException.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/math/DoubleRange.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/DoubleRange.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/math/FloatRange.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/FloatRange.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/math/Fraction.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/Fraction.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/math/IEEE754rUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/IEEE754rUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/math/IntRange.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/IntRange.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/math/JVMRandom.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/JVMRandom.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/math/LongRange.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/LongRange.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/math/NumberRange.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/NumberRange.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/math/NumberUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/NumberUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/math/RandomUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/RandomUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/math/Range.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/Range.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/Mutable.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/Mutable.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableBoolean.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableBoolean.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableByte.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableByte.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableDouble.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableDouble.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableFloat.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableFloat.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableInt.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableInt.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableLong.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableLong.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableObject.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableObject.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableShort.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableShort.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/ConstructorUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/ConstructorUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/FieldUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/FieldUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/MemberUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/MemberUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/MethodUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/MethodUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/CompositeFormat.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/CompositeFormat.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/ExtendedMessageFormat.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/ExtendedMessageFormat.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/FormatFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/FormatFactory.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder$StrBuilderReader.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder$StrBuilderReader.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder$StrBuilderTokenizer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder$StrBuilderTokenizer.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder$StrBuilderWriter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder$StrBuilderWriter.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrLookup$MapStrLookup.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrLookup$MapStrLookup.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrLookup.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrLookup.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$CharMatcher.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$CharMatcher.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$CharSetMatcher.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$CharSetMatcher.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$NoMatcher.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$NoMatcher.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$StringMatcher.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$StringMatcher.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$TrimMatcher.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$TrimMatcher.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrSubstitutor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrSubstitutor.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrTokenizer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrTokenizer.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/DateFormatUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/DateFormatUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/DateUtils$DateIterator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/DateUtils$DateIterator.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/DateUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/DateUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/DurationFormatUtils$Token.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/DurationFormatUtils$Token.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/DurationFormatUtils.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/DurationFormatUtils.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$CharacterLiteral.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$CharacterLiteral.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$NumberRule.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$NumberRule.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$PaddedNumberField.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$PaddedNumberField.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$Pair.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$Pair.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$Rule.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$Rule.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$StringLiteral.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$StringLiteral.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TextField.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TextField.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TimeZoneDisplayKey.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TimeZoneDisplayKey.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TimeZoneNameRule.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TimeZoneNameRule.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TimeZoneNumberRule.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TimeZoneNumberRule.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwelveHourField.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwelveHourField.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwentyFourHourField.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwentyFourHourField.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwoDigitMonthField.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwoDigitMonthField.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwoDigitNumberField.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwoDigitNumberField.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwoDigitYearField.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwoDigitYearField.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$UnpaddedMonthField.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$UnpaddedMonthField.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$UnpaddedNumberField.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$UnpaddedNumberField.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat.class -------------------------------------------------------------------------------- /src/test/external-resources/commons-lang/org/apache/commons/lang/time/StopWatch.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/StopWatch.class -------------------------------------------------------------------------------- /src/test/external-resources/libs-for-test.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/libs-for-test.zip -------------------------------------------------------------------------------- /src/test/external-resources/spring-core-4.3.4.RELEASE.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/spring-core-4.3.4.RELEASE.jar -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/AllExceptHeavyTestsSuite.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | import org.junit.platform.runner.JUnitPlatform; 4 | import org.junit.platform.suite.api.ExcludeTags; 5 | import org.junit.platform.suite.api.SelectClasses; 6 | import org.junit.runner.RunWith; 7 | 8 | @SuppressWarnings("unused") 9 | @RunWith(JUnitPlatform.class) 10 | //@SelectPackages("org.burningwave.core") 11 | @SelectClasses({ 12 | ModulesTest.class, 13 | BackgroundExecutorTest.class, 14 | ByteBufferHandlerTest.class, 15 | ByteCodeHunterTest.class, 16 | ClassesTest.class, 17 | ClassFactoryTest.class, 18 | ComponentContainerTest.class, 19 | ClassHunterTest.class, 20 | ClassLoadersTest.class, 21 | ClassPathHunterTest.class, 22 | CodeExecutorTest.class, 23 | ConstructorsTest.class, 24 | FieldsTest.class, 25 | FileSystemHelperTest.class, 26 | FileSystemItemTest.class, 27 | FunctionalInterfaceFactoryTest.class, 28 | IterableObjectHelperTest.class, 29 | IterableZipContainerTest.class, 30 | ManagedLoggerRepositoryTest.class, 31 | MembersTest.class, 32 | MemoryClassLoaderTest.class, 33 | MethodsTest.class, 34 | PathHelperTest.class, 35 | PathScannerClassLoaderTest.class, 36 | FieldAccessorTest.class, 37 | PropertiesTest.class, 38 | SourceCodeHandlerTest.class, 39 | StringsTest.class, 40 | ThreadSupplierTest.class, 41 | UnitSourceGeneratorTest.class, 42 | RepeatedClassFactoryTest.class, 43 | RepeatedComponentContainerTest.class 44 | }) 45 | @ExcludeTags("Heavy") 46 | public class AllExceptHeavyTestsSuite { 47 | 48 | } -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/AllTestsReducedSuite.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | import org.junit.platform.runner.JUnitPlatform; 4 | import org.junit.platform.suite.api.SelectClasses; 5 | import org.junit.runner.RunWith; 6 | 7 | @SuppressWarnings("unused") 8 | @RunWith(JUnitPlatform.class) 9 | //@SelectPackages("org.burningwave.core") 10 | @SelectClasses({ 11 | // ByteBufferHandlerTest.class, 12 | ByteCodeHunterTest.class, 13 | // ClassesTest.class, 14 | // ClassFactoryTest.class, 15 | // ClassHunterTest.class, 16 | // ClassLoadersTest.class, 17 | // ClassPathHunterTest.class, 18 | // CodeExecutorTest.class, 19 | // ConstructorsTest.class, 20 | // FieldsTest.class, 21 | // FileSystemHelperTest.class, 22 | // FileSystemItemTest.class, 23 | // FunctionalInterfaceFactoryTest.class, 24 | // IterableObjectHelperTest.class, 25 | // IterableZipContainerTest.class, 26 | // LowLevelObjectsHandlerTest.class, 27 | ManagedLoggerRepositoryTest.class, 28 | // MembersTest.class, 29 | // MemoryClassLoaderTest.class, 30 | // MethodsTest.class, 31 | // PathHelperTest.class, 32 | // PathScannerClassLoaderTest.class, 33 | // PropertyAccessorTest.class, 34 | // PropertiesTest.class, 35 | // SourceCodeHandlerTest.class, 36 | // StringsTest.class, 37 | // UnitSourceGeneratorTest.class, 38 | RepeatedClassFactoryTest.class, 39 | ComponentContainerTest.class, 40 | // RepeatedComponentContainerTest.class 41 | }) 42 | //@ExcludeTags("Heavy") 43 | public class AllTestsReducedSuite { 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/AllTestsSuite.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | import org.junit.platform.runner.JUnitPlatform; 4 | import org.junit.platform.suite.api.SelectPackages; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(JUnitPlatform.class) 8 | @SelectPackages("org.burningwave.core") 9 | public class AllTestsSuite { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/ByteBufferHandlerTest.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.BufferHandler; 4 | 5 | import org.burningwave.core.jvm.BufferHandler.Deallocator; 6 | 7 | public class ByteBufferHandlerTest extends BaseTest { 8 | 9 | 10 | //@Test 11 | public void getAddressTest() { 12 | testNotNull(() -> { 13 | Long.valueOf(BufferHandler.getAddress(BufferHandler.allocateDirect(1))); 14 | return Long.valueOf(BufferHandler.getAddress(BufferHandler.allocateDirect(1))); 15 | }); 16 | } 17 | 18 | //@Test 19 | public void getDeallocatorTest() { 20 | testDoesNotThrow(() -> { 21 | Deallocator deallocator = BufferHandler.getDeallocator(BufferHandler.allocateDirect(1).duplicate(), true); 22 | deallocator.freeMemory(); 23 | deallocator.freeMemory(); 24 | BufferHandler.getDeallocator(BufferHandler.allocateDirect(1), false).freeMemory(); 25 | }); 26 | } 27 | 28 | //@Test 29 | public void destroyTest() { 30 | testDoesNotThrow(() -> { 31 | BufferHandler.destroy(BufferHandler.allocateDirect(1).duplicate(), true); 32 | }); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/ClassesTest.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.Classes; 4 | 5 | import org.junit.jupiter.api.Test; 6 | 7 | 8 | public class ClassesTest extends BaseTest { 9 | 10 | @Test 11 | public void getDeclaredMethodTestOne() { 12 | testNotNull(() -> 13 | Classes.getDeclaredMethod(Classes.getClass(), method -> method.getName().equals("retrieveNames")) 14 | ); 15 | } 16 | 17 | @Test 18 | public void getDeclaredConstructorTestOne() { 19 | testNotNull(() -> 20 | Classes.getDeclaredConstructor(Classes.getClass(), ctor -> ctor.getParameterCount() == 0) 21 | ); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/ConstructorsTest.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.Constructors; 4 | 5 | import org.burningwave.core.assembler.ComponentSupplier; 6 | import org.burningwave.core.classes.MemoryClassLoader; 7 | import org.burningwave.core.classes.SearchConfig; 8 | import org.burningwave.core.service.ExtendedService; 9 | import org.junit.jupiter.api.Test; 10 | 11 | @SuppressWarnings("all") 12 | public class ConstructorsTest extends BaseTest { 13 | 14 | @Test 15 | public void newInstanceOfTestOne() { 16 | testNotNull(() -> Constructors.newInstanceDirectOf(ExtendedService.class)); 17 | } 18 | 19 | @Test 20 | public void newInstanceOfTestTwo() { 21 | ComponentSupplier componentSupplier = getComponentSupplier(); 22 | testNotNull(() -> Constructors.newInstanceDirectOf( 23 | Class.forName("org.burningwave.core.classes.FunctionalInterfaceFactoryImpl"), 24 | componentSupplier.getClassFactory() 25 | ) 26 | ); 27 | } 28 | 29 | @Test 30 | public void convertToMethodHandleTestOne() { 31 | testNotNull(() -> 32 | Constructors.findDirectHandle( 33 | Constructors.findOneAndMakeItAccessible(ExtendedService.class) 34 | ).invokeWithArguments() 35 | ); 36 | } 37 | 38 | @Test 39 | public void newInstanceOfDirectTestOne() { 40 | testNotNull(() -> { 41 | try (MemoryClassLoader classLoader = Constructors.newInstanceDirectOf(MemoryClassLoader.class, Thread.currentThread().getContextClassLoader())) { 42 | return classLoader; 43 | } 44 | }); 45 | } 46 | 47 | @Test 48 | public void newInstanceOfDirectTestTwo() { 49 | testNotNull(() -> { 50 | try (MemoryClassLoader classLoader = Constructors.newInstanceDirectOf(MemoryClassLoader.class, null)) { 51 | return classLoader; 52 | } 53 | }); 54 | } 55 | 56 | @Test 57 | public void newInstanceOfDirectTestThree() { 58 | testNotNull(() -> 59 | Constructors.newInstanceDirectOf(SearchConfig.class) 60 | ); 61 | } 62 | 63 | @Test 64 | public void newInstanceOfTestThree() { 65 | testNotNull(() -> 66 | Constructors.newInstanceOf(SearchConfig.class) 67 | ); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/FileSystemHelperTest.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.FileSystemHelper; 4 | import static org.junit.Assert.assertTrue; 5 | 6 | import org.burningwave.core.io.FileSystemItem; 7 | import org.junit.jupiter.api.Test; 8 | 9 | public class FileSystemHelperTest extends BaseTest { 10 | 11 | @Test 12 | public void createFolderTest() { 13 | assertTrue(FileSystemItem.of(FileSystemHelper.createTemporaryFolder("FolderForTest")).exists()); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/IterableZipContainerTest.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | import org.burningwave.core.assembler.ComponentSupplier; 4 | import org.burningwave.core.io.FileSystemItem; 5 | import org.burningwave.core.io.IterableZipContainer; 6 | import org.junit.jupiter.api.Test; 7 | 8 | 9 | public class IterableZipContainerTest extends BaseTest { 10 | 11 | @Test 12 | public void getConventionedAbsolutePathTestOne() { 13 | testNotNull(() ->{ 14 | ComponentSupplier componentSupplier = getComponentSupplier(); 15 | FileSystemItem fIS = componentSupplier.getPathHelper().getResource( 16 | "/../../src/test/external-resources/libs-for-test.zip/java.desktop.jmod" 17 | ); 18 | fIS.reset(); 19 | IterableZipContainer zip = IterableZipContainer.create(fIS.getAbsolutePath()); 20 | return zip.getConventionedAbsolutePath(); 21 | }); 22 | } 23 | 24 | @Test 25 | public void getConventionedAbsolutePathTestTwo() { 26 | testNotNull(() ->{ 27 | ComponentSupplier componentSupplier = getComponentSupplier(); 28 | FileSystemItem fIS = componentSupplier.getPathHelper().getResource( 29 | "/../../src/test/external-resources/libs-for-test.zip/ESC-Lib.ear/APP-INF/lib/bcel-5.1.jar" 30 | ); 31 | fIS.reset(); 32 | IterableZipContainer zip = IterableZipContainer.create(fIS.getAbsolutePath()); 33 | return zip.getConventionedAbsolutePath(); 34 | }); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/ManagedLoggerRepositoryTest.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.GlobalProperties; 4 | 5 | import org.burningwave.core.iterable.Properties; 6 | import org.junit.jupiter.api.Test; 7 | 8 | 9 | public class ManagedLoggerRepositoryTest extends BaseTest { 10 | 11 | @Test 12 | public void placeHolderedLogInfoTest() { 13 | testDoesNotThrow(() -> { 14 | Properties config = new Properties(); 15 | config.putAll(GlobalProperties); 16 | config.put(ManagedLogger.Repository.Configuration.Key.TYPE, SimpleManagedLoggerRepository.class.getName()); 17 | ManagedLogger.Repository managedLoggerRepository = ManagedLogger.Repository.create(config); 18 | managedLoggerRepository.logInfo(() -> ManagedLoggerRepositoryTest.class.getName(), "{}{}{}{}", "Hello", " ", "world", "!"); 19 | }); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/ModulesTest.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.JVMInfo; 4 | import static org.burningwave.core.assembler.StaticComponentContainer.Modules; 5 | import static org.burningwave.core.assembler.StaticComponentContainer.Resources; 6 | 7 | import java.lang.reflect.Constructor; 8 | import java.lang.reflect.Method; 9 | import java.net.URL; 10 | import java.net.URLClassLoader; 11 | 12 | import org.burningwave.core.classes.MemoryClassLoader; 13 | import org.junit.jupiter.api.MethodOrderer; 14 | import org.junit.jupiter.api.Order; 15 | import org.junit.jupiter.api.Test; 16 | import org.junit.jupiter.api.TestMethodOrder; 17 | 18 | @TestMethodOrder(MethodOrderer.OrderAnnotation.class) 19 | @SuppressWarnings("unchecked") 20 | public class ModulesTest extends BaseTest { 21 | 22 | @Test 23 | @Order(1) 24 | public void exportPackageToAllUnnamedTest() { 25 | MemoryClassLoader.DebugSupport.enable(); 26 | testDoesNotThrow(() -> { 27 | if (JVMInfo.getVersion() > 8) { 28 | Modules.exportPackageToAll("java.base", "java.net"); 29 | Method method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class); 30 | method.setAccessible(true); 31 | ClassLoader classLoader = new URLClassLoader(new URL[] {}, null); 32 | method.invoke( 33 | classLoader, 34 | Resources.getClassPath(ModulesTest.class).getURL() 35 | ); 36 | method.invoke( 37 | classLoader, 38 | Resources.getClassPath(Modules.getClass()).getURL() 39 | ); 40 | classLoader.loadClass(ModulesTest.class.getName()); 41 | } 42 | }); 43 | } 44 | 45 | 46 | @Test 47 | @Order(10) 48 | public void exportAllToAllTest() { 49 | testDoesNotThrow(() -> { 50 | if (JVMInfo.getVersion() > 8) { 51 | Modules.exportAllToAll(); 52 | Class bootClassLoaderClass = Class.forName("jdk.internal.loader.ClassLoaders$BootClassLoader"); 53 | Constructor constructor = (Constructor) 54 | Class.forName("jdk.internal.loader.ClassLoaders$PlatformClassLoader").getDeclaredConstructor(bootClassLoaderClass); 55 | constructor.setAccessible(true); 56 | Class classLoadersClass = Class.forName("jdk.internal.loader.ClassLoaders"); 57 | Method bootClassLoaderRetriever = classLoadersClass.getDeclaredMethod("bootLoader"); 58 | bootClassLoaderRetriever.setAccessible(true); 59 | ClassLoader newBuiltinclassLoader = constructor.newInstance(bootClassLoaderRetriever.invoke(classLoadersClass)); 60 | System.out.println(newBuiltinclassLoader + " instantiated"); 61 | } 62 | }); 63 | } 64 | 65 | } 66 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/PropertiesTest.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.GlobalProperties; 4 | 5 | import org.junit.jupiter.api.Test; 6 | 7 | public class PropertiesTest extends BaseTest { 8 | 9 | @Test 10 | public void changeManagedLoggerRepository() { 11 | GlobalProperties.put( 12 | ManagedLogger.Repository.Configuration.Key.TYPE, SimpleManagedLoggerRepository.class.getName() 13 | ); 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/RepeatedClassFactoryTest.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | public class RepeatedClassFactoryTest extends ClassFactoryTest { 4 | 5 | 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/RepeatedComponentContainerTest.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | public class RepeatedComponentContainerTest extends ComponentContainerTest { 4 | 5 | 6 | } 7 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/SourceCodeHandlerTest.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | public class SourceCodeHandlerTest extends BaseTest { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/StringsTest.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.Paths; 4 | import static org.burningwave.core.assembler.StaticComponentContainer.Strings; 5 | import static org.junit.Assert.assertTrue; 6 | 7 | import java.util.HashMap; 8 | import java.util.Map; 9 | import java.util.regex.Pattern; 10 | 11 | import org.junit.jupiter.api.Test; 12 | 13 | public class StringsTest extends BaseTest { 14 | 15 | @Test 16 | public void extractTestOne() { 17 | testNotNull(() -> 18 | Strings.extractAllGroups(Pattern.compile("\\$\\{([\\w\\d\\.]*)\\}([\\w]*)"), "${${ciao.Asdf.1}prova${ciao}}").get(1).get(0) 19 | ); 20 | } 21 | 22 | @Test 23 | public void convertURLTestOne() { 24 | testNotNull(() -> 25 | Paths.convertURLPathToAbsolutePath(this.getClass().getClassLoader().getResource(java.util.regex.Pattern.class 26 | .getName().replace(".", "/")+ ".class").toString()) 27 | ); 28 | } 29 | 30 | 31 | @Test 32 | public void stripTest() { 33 | assertTrue(!Strings.contains(Strings.strip(" Hello! ", " "), ' ')); 34 | } 35 | 36 | 37 | @Test 38 | public void replaceTest() { 39 | Map parameters = new HashMap<>(); 40 | parameters.put("${firstParameter}", "firstParameter"); 41 | parameters.put("${secondParameter}", "secondParameter"); 42 | assertTrue(!Strings.contains(Strings.replace("${firstParameter},${secondParameter}", parameters), '$')); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/ThreadSupplierTest.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.ManagedLoggerRepository; 4 | import static org.burningwave.core.assembler.StaticComponentContainer.ThreadSupplier; 5 | import static org.junit.jupiter.api.Assertions.assertEquals; 6 | 7 | import java.util.concurrent.atomic.AtomicInteger; 8 | 9 | import org.burningwave.core.concurrent.Thread; 10 | import org.junit.jupiter.api.Test; 11 | 12 | public class ThreadSupplierTest extends BaseTest { 13 | 14 | 15 | @Test 16 | public void setNullExecutableTestOne() { 17 | testThrow(() -> { 18 | ThreadSupplier.getOrCreateThread().setExecutable(null).start(); 19 | }); 20 | } 21 | 22 | @Test 23 | public void getPoolableThreadsTest() { 24 | AtomicInteger operationCount = new AtomicInteger(0); 25 | testDoesNotThrow(() -> { 26 | int iterationsCount = 100000; 27 | Thread.Supplier threadSupplier = Thread.Supplier.create( 28 | "ThreadSupplier for test", 29 | org.burningwave.core.assembler.StaticComponentContainer.GlobalProperties, 30 | false 31 | ); 32 | for (int i = 0; i < iterationsCount; i++) { 33 | Thread thread = threadSupplier.getOrCreatePoolableThread().setExecutable(thr -> { 34 | int currentOperationCount = operationCount.incrementAndGet(); 35 | if (currentOperationCount % (iterationsCount / 5) == 0 && currentOperationCount != iterationsCount) { 36 | synchronized(thr) { 37 | long waitTime = 7500; 38 | ManagedLoggerRepository.logInfo(getClass()::getName, "Operation count: {} - Waiting for {}", currentOperationCount, waitTime); 39 | thr.wait(waitTime); 40 | } 41 | } else if (currentOperationCount % 10000 == 0) { 42 | ManagedLoggerRepository.logInfo(getClass()::getName, "Operation count: {}", currentOperationCount); 43 | } 44 | }); 45 | thread.start(); 46 | } 47 | threadSupplier.joinAllRunningThreads() 48 | .shutDownAllThreads(true); 49 | assertEquals(100000, operationCount.get()); 50 | }); 51 | } 52 | 53 | //@Test 54 | public void stressTest() { 55 | testDoesNotThrow(() -> { 56 | int remainedRequestCount = 100_000_000; 57 | while (remainedRequestCount-- > 0) { 58 | final int remainedRequestCountTemp = remainedRequestCount; 59 | ThreadSupplier.getOrCreateThread().setExecutable(thread -> { 60 | if (remainedRequestCountTemp % 100_000 == 0) { 61 | ManagedLoggerRepository.logInfo(getClass()::getName, "{} thread - Remained iterations: {}", thread.getClass().getSimpleName(), remainedRequestCountTemp); 62 | } 63 | }).start(); 64 | } 65 | }); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/bean/Complex.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.bean; 2 | 3 | import java.util.LinkedHashMap; 4 | import java.util.List; 5 | import java.util.Map; 6 | 7 | public class Complex { 8 | private Complex.Data data; 9 | 10 | public Complex() { 11 | setData(new Data()); 12 | } 13 | 14 | 15 | public Complex.Data getData() { 16 | return data; 17 | } 18 | 19 | public void setData(Complex.Data data) { 20 | this.data = data; 21 | } 22 | 23 | 24 | public static class Data { 25 | private Data.Item[][] items; 26 | private List itemsList; 27 | private Map itemsMap; 28 | 29 | public Data() { 30 | items = new Data.Item[][] { 31 | new Data.Item[] { 32 | new Item("Hello"), 33 | new Item("World!"), 34 | new Item("How do you do?") 35 | }, 36 | new Data.Item[] { 37 | new Item("How do you do?"), 38 | new Item("Hello"), 39 | new Item("Bye") 40 | } 41 | }; 42 | itemsMap = new LinkedHashMap<>(); 43 | itemsMap.put("items", items); 44 | } 45 | 46 | public Data.Item[][] getItems() { 47 | return items; 48 | } 49 | public void setItems(Data.Item[][] items) { 50 | this.items = items; 51 | } 52 | 53 | public List getItemsList() { 54 | return itemsList; 55 | } 56 | public void setItemsList(List itemsList) { 57 | this.itemsList = itemsList; 58 | } 59 | 60 | public Map getItemsMap() { 61 | return itemsMap; 62 | } 63 | public void setItemsMap(Map itemsMap) { 64 | this.itemsMap = itemsMap; 65 | } 66 | 67 | public static class Item { 68 | private String name; 69 | 70 | public Item(String name) { 71 | this.name = name; 72 | } 73 | 74 | public String getName() { 75 | return name; 76 | } 77 | 78 | public void setName(String name) { 79 | this.name = name; 80 | } 81 | } 82 | } 83 | } -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/bean/PojoInterface.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.bean; 2 | 3 | import java.util.List; 4 | 5 | public interface PojoInterface { 6 | 7 | public List getList(); 8 | 9 | public void setList(List value); 10 | 11 | public boolean isValid(); 12 | 13 | } -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/backgroundexecutor/TaskLauncher.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.backgroundexecutor; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.BackgroundExecutor; 4 | 5 | import org.burningwave.core.ManagedLogger; 6 | import org.burningwave.core.concurrent.QueuedTaskExecutor.ProducerTask; 7 | import org.burningwave.core.concurrent.QueuedTaskExecutor.Task; 8 | 9 | 10 | public class TaskLauncher implements ManagedLogger { 11 | 12 | public void launch() { 13 | ProducerTask taskOne = BackgroundExecutor.createProducerTask(task -> { 14 | Long startTime = System.currentTimeMillis(); 15 | logInfo("task one started"); 16 | synchronized (this) { 17 | wait(5000); 18 | } 19 | Task internalTask = BackgroundExecutor.createTask(tsk -> { 20 | logInfo("internal task started"); 21 | synchronized (this) { 22 | wait(5000); 23 | } 24 | logInfo("internal task finished"); 25 | }, Thread.MAX_PRIORITY).submit(); 26 | internalTask.waitForFinish(); 27 | logInfo("task one finished"); 28 | return startTime; 29 | }, Thread.MAX_PRIORITY); 30 | taskOne.submit(); 31 | Task taskTwo = BackgroundExecutor.createTask(task -> { 32 | logInfo("task two started and wait for task one finishing"); 33 | taskOne.waitForFinish(); 34 | logInfo("task two finished"); 35 | }, Thread.NORM_PRIORITY); 36 | taskTwo.submit(); 37 | ProducerTask taskThree = BackgroundExecutor.createProducerTask(task -> { 38 | logInfo("task three started and wait for task two finishing"); 39 | taskTwo.waitForFinish(); 40 | logInfo("task two finished"); 41 | return System.currentTimeMillis(); 42 | }, Thread.MIN_PRIORITY); 43 | taskThree.submit(); 44 | taskThree.waitForFinish(); 45 | logInfo("Elapsed time: {}ms", taskThree.join() - taskOne.join()); 46 | } 47 | 48 | public static void main(String[] args) { 49 | new TaskLauncher().launch(); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/classfactory/FunctionalInterfaceBuilder.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.classfactory; 2 | 3 | import java.lang.reflect.Modifier; 4 | import java.util.function.Function; 5 | 6 | import org.burningwave.core.assembler.ComponentContainer; 7 | import org.burningwave.core.assembler.ComponentSupplier; 8 | import org.burningwave.core.assembler.StaticComponentContainer; 9 | import org.burningwave.core.classes.AnnotationSourceGenerator; 10 | import org.burningwave.core.classes.ClassFactory; 11 | import org.burningwave.core.classes.ClassSourceGenerator; 12 | import org.burningwave.core.classes.FunctionSourceGenerator; 13 | import org.burningwave.core.classes.TypeDeclarationSourceGenerator; 14 | import org.burningwave.core.classes.UnitSourceGenerator; 15 | import org.burningwave.core.classes.VariableSourceGenerator; 16 | 17 | public class FunctionalInterfaceBuilder { 18 | 19 | @SuppressWarnings("resource") 20 | public static void execute() throws Throwable { 21 | UnitSourceGenerator unitSG = UnitSourceGenerator.create("packagename").addClass( 22 | ClassSourceGenerator.createInterface( 23 | TypeDeclarationSourceGenerator.create("MyFunctionalInterface") 24 | ).addModifier( 25 | Modifier.PUBLIC 26 | //generating new method that override MyInterface.convert(LocalDateTime) 27 | ).addMethod( 28 | FunctionSourceGenerator.create("convert") 29 | .setReturnType(TypeDeclarationSourceGenerator.create(Integer.class)) 30 | .addParameter(VariableSourceGenerator.create(String.class, "number")) 31 | .addModifier(Modifier.ABSTRACT) 32 | .useType(Function.class) 33 | ).addAnnotation(AnnotationSourceGenerator.create(FunctionalInterface.class)) 34 | ); 35 | System.out.println("\nGenerated code:\n" + unitSG.make()); 36 | //With this we store the generated source to a path 37 | unitSG.storeToClassPath(StaticComponentContainer.SystemProperties.get("user.home") + "/Desktop/bw-tests"); 38 | ComponentSupplier componentSupplier = ComponentContainer.getInstance(); 39 | ClassFactory classFactory = componentSupplier.getClassFactory(); 40 | @SuppressWarnings("unused") 41 | Class generatedClass = classFactory.loadOrBuildAndDefine( 42 | unitSG 43 | ).get( 44 | "packagename.MyFunctionalInterface" 45 | ); 46 | } 47 | 48 | public static void main(String[] args) throws Throwable { 49 | execute(); 50 | } 51 | } -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/classhunter/AllAnnotatedClassFinder.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.classhunter; 2 | 3 | import java.util.Collection; 4 | 5 | import org.burningwave.core.assembler.ComponentContainer; 6 | import org.burningwave.core.assembler.ComponentSupplier; 7 | import org.burningwave.core.classes.ClassCriteria; 8 | import org.burningwave.core.classes.ClassHunter; 9 | import org.burningwave.core.classes.ClassHunter.SearchResult; 10 | import org.burningwave.core.classes.ConstructorCriteria; 11 | import org.burningwave.core.classes.FieldCriteria; 12 | import org.burningwave.core.classes.MethodCriteria; 13 | import org.burningwave.core.classes.SearchConfig; 14 | import org.burningwave.core.io.PathHelper; 15 | 16 | public class AllAnnotatedClassFinder { 17 | 18 | public Collection> find() { 19 | ComponentSupplier componentSupplier = ComponentContainer.getInstance(); 20 | PathHelper pathHelper = componentSupplier.getPathHelper(); 21 | ClassHunter classHunter = componentSupplier.getClassHunter(); 22 | 23 | SearchConfig searchConfig = SearchConfig.forPaths( 24 | //Here you can add all absolute path you want: 25 | //both folders, zip and jar will be recursively scanned. 26 | //For example you can add: "C:\\Users\\user\\.m2" 27 | //With the row below the search will be executed on runtime Classpaths 28 | pathHelper.getMainClassPaths() 29 | ).by( 30 | ClassCriteria.create().allThoseThatMatch((cls) -> { 31 | return cls.getAnnotations() != null && cls.getAnnotations().length > 0; 32 | }).or().byMembers( 33 | MethodCriteria.withoutConsideringParentClasses().allThoseThatMatch((method) -> { 34 | return method.getAnnotations() != null && method.getAnnotations().length > 0; 35 | }) 36 | ).or().byMembers( 37 | FieldCriteria.withoutConsideringParentClasses().allThoseThatMatch((field) -> { 38 | return field.getAnnotations() != null && field.getAnnotations().length > 0; 39 | }) 40 | ).or().byMembers( 41 | ConstructorCriteria.withoutConsideringParentClasses().allThoseThatMatch((ctor) -> { 42 | return ctor.getAnnotations() != null && ctor.getAnnotations().length > 0; 43 | }) 44 | ) 45 | ); 46 | 47 | try (SearchResult searchResult = classHunter.findBy(searchConfig)) { 48 | 49 | //If you need all annotaded methods unconment this 50 | //searchResult.getMembersFlatMap().values(); 51 | 52 | return searchResult.getClasses(); 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/classhunter/ClassForPackageAndAnnotationFinder.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.classhunter; 2 | 3 | import java.util.Collection; 4 | 5 | import org.burningwave.core.assembler.ComponentContainer; 6 | import org.burningwave.core.assembler.ComponentSupplier; 7 | import org.burningwave.core.classes.ClassCriteria; 8 | import org.burningwave.core.classes.ClassHunter; 9 | import org.burningwave.core.classes.ClassHunter.SearchResult; 10 | import org.burningwave.core.classes.ConstructorCriteria; 11 | import org.burningwave.core.classes.FieldCriteria; 12 | import org.burningwave.core.classes.MethodCriteria; 13 | import org.burningwave.core.classes.SearchConfig; 14 | 15 | public class ClassForPackageAndAnnotationFinder { 16 | 17 | public Collection> find() { 18 | ComponentSupplier componentSupplier = ComponentContainer.getInstance(); 19 | ClassHunter classHunter = componentSupplier.getClassHunter(); 20 | 21 | try ( 22 | SearchResult result = classHunter.findBy( 23 | //Highly optimized scanning by filtering resources before loading from ClassLoader 24 | SearchConfig.forResources( 25 | "org/springframework" 26 | ).by( 27 | ClassCriteria.create().allThoseThatMatch((cls) -> { 28 | return cls.getAnnotations() != null && cls.getAnnotations().length > 0; 29 | }).or().byMembers( 30 | MethodCriteria.withoutConsideringParentClasses().allThoseThatMatch((method) -> { 31 | return method.getAnnotations() != null && method.getAnnotations().length > 0; 32 | }) 33 | ).or().byMembers( 34 | FieldCriteria.withoutConsideringParentClasses().allThoseThatMatch((field) -> { 35 | return field.getAnnotations() != null && field.getAnnotations().length > 0; 36 | }) 37 | ).or().byMembers( 38 | ConstructorCriteria.withoutConsideringParentClasses().allThoseThatMatch((ctor) -> { 39 | return ctor.getAnnotations() != null && ctor.getAnnotations().length > 0; 40 | }) 41 | ) 42 | ) 43 | ) 44 | ) { 45 | return result.getClasses(); 46 | } 47 | } 48 | 49 | } -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/classhunter/ClassForPackageAndAnnotationFinderByConsideringClassHierarchy.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.classhunter; 2 | 3 | import java.util.Collection; 4 | 5 | import org.burningwave.core.assembler.ComponentContainer; 6 | import org.burningwave.core.assembler.ComponentSupplier; 7 | import org.burningwave.core.classes.ClassCriteria; 8 | import org.burningwave.core.classes.ClassHunter; 9 | import org.burningwave.core.classes.ClassHunter.SearchResult; 10 | import org.burningwave.core.classes.ConstructorCriteria; 11 | import org.burningwave.core.classes.FieldCriteria; 12 | import org.burningwave.core.classes.MethodCriteria; 13 | import org.burningwave.core.classes.SearchConfig; 14 | 15 | public class ClassForPackageAndAnnotationFinderByConsideringClassHierarchy { 16 | 17 | public Collection> find() { 18 | ComponentSupplier componentSupplier = ComponentContainer.getInstance(); 19 | ClassHunter classHunter = componentSupplier.getClassHunter(); 20 | 21 | try ( 22 | SearchResult result = classHunter.findBy( 23 | //Highly optimized scanning by filtering resources before loading from ClassLoader 24 | SearchConfig.forResources( 25 | "org/springframework" 26 | ).by( 27 | ClassCriteria.create().allThoseThatHaveAMatchInHierarchy((cls) -> { 28 | return cls.getAnnotations() != null && cls.getAnnotations().length > 0; 29 | }).or().byMembers( 30 | MethodCriteria.forEntireClassHierarchy().allThoseThatMatch((method) -> { 31 | return method.getAnnotations() != null && method.getAnnotations().length > 0; 32 | }) 33 | ).or().byMembers( 34 | FieldCriteria.forEntireClassHierarchy().allThoseThatMatch((field) -> { 35 | return field.getAnnotations() != null && field.getAnnotations().length > 0; 36 | }) 37 | ).or().byMembers( 38 | ConstructorCriteria.forEntireClassHierarchy().allThoseThatMatch((ctor) -> { 39 | return ctor.getAnnotations() != null && ctor.getAnnotations().length > 0; 40 | }) 41 | ) 42 | ) 43 | ) 44 | ) { 45 | return result.getClasses(); 46 | } 47 | } 48 | 49 | } -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/classhunter/FieldAnnotatedClassOfPackageFinder.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.classhunter; 2 | import java.util.Collection; 3 | 4 | import javax.validation.constraints.NotNull; 5 | 6 | import org.burningwave.core.assembler.ComponentContainer; 7 | import org.burningwave.core.assembler.ComponentSupplier; 8 | import org.burningwave.core.classes.ClassCriteria; 9 | import org.burningwave.core.classes.ClassHunter; 10 | import org.burningwave.core.classes.ClassHunter.SearchResult; 11 | import org.burningwave.core.classes.FieldCriteria; 12 | import org.burningwave.core.classes.SearchConfig; 13 | 14 | public class FieldAnnotatedClassOfPackageFinder { 15 | 16 | public Collection> find() { 17 | ComponentSupplier componentSupplier = ComponentContainer.getInstance(); 18 | ClassHunter classHunter = componentSupplier.getClassHunter(); 19 | 20 | try ( 21 | SearchResult result = classHunter.findBy( 22 | //Highly optimized scanning by filtering resources before loading from ClassLoader 23 | SearchConfig.forResources( 24 | "org/springframework" 25 | ).by( 26 | ClassCriteria.create().byMembers( 27 | FieldCriteria.withoutConsideringParentClasses().allThoseThatMatch((field) -> { 28 | return field.getAnnotation(NotNull.class) != null; 29 | }) 30 | ) 31 | ) 32 | ) 33 | ) { 34 | return result.getClasses(); 35 | } 36 | } 37 | 38 | } -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/codeexecutor/SourceCodeExecutor.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.codeexecutor; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import org.burningwave.core.assembler.ComponentContainer; 7 | import org.burningwave.core.assembler.ComponentSupplier; 8 | import org.burningwave.core.classes.BodySourceGenerator; 9 | import org.burningwave.core.classes.ExecuteConfig; 10 | 11 | public class SourceCodeExecutor { 12 | 13 | public static Integer execute() { 14 | ComponentSupplier componentSupplier = ComponentContainer.getInstance(); 15 | return componentSupplier.getCodeExecutor().execute( 16 | ExecuteConfig.forBodySourceGenerator( 17 | BodySourceGenerator.createSimple().useType(ArrayList.class, List.class) 18 | .addCodeLine("System.out.println(\"number to add: \" + parameter[0]);") 19 | .addCodeLine("List numbers = new ArrayList<>();") 20 | .addCodeLine("numbers.add((Integer)parameter[0]);") 21 | .addCodeLine("System.out.println(\"number list size: \" + numbers.size());") 22 | .addCodeLine("System.out.println(\"number in the list: \" + numbers.get(0));") 23 | .addCodeLine("Integer inputNumber = (Integer)parameter[0];") 24 | .addCodeLine("return Integer.valueOf(inputNumber + (Integer)parameter[1]);") 25 | ).withParameter(Integer.valueOf(5), Integer.valueOf(3)) 26 | ); 27 | 28 | } 29 | 30 | public static void main(String[] args) { 31 | System.out.println("Total is: " + execute()); 32 | } 33 | 34 | } -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/componentcontainer/RetrievingDynamicComponentContainerAndComponents.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.componentcontainer; 2 | 3 | import org.burningwave.core.assembler.ComponentContainer; 4 | import org.burningwave.core.assembler.ComponentSupplier; 5 | import org.burningwave.core.classes.ClassFactory; 6 | import org.burningwave.core.classes.ClassHunter; 7 | import org.burningwave.core.io.PathHelper; 8 | import org.burningwave.core.iterable.Properties; 9 | 10 | @SuppressWarnings("unused") 11 | public class RetrievingDynamicComponentContainerAndComponents { 12 | 13 | public static void execute() throws Throwable { 14 | //In this case we are retrieving the singleton component container instance 15 | ComponentSupplier componentSupplier = ComponentContainer.getInstance(); 16 | 17 | //In this case we are creating a component container by using a custom configuration file 18 | ComponentSupplier customComponentSupplier = ComponentContainer.create("your-custom-properties-file.properties"); 19 | 20 | //In this case we are creating a component container programmatically by using a custom properties object 21 | Properties configProps = new Properties(); 22 | configProps.put(ClassFactory.Configuration.Key.DEFAULT_CLASS_LOADER, Thread.currentThread().getContextClassLoader()); 23 | configProps.put(ClassHunter.Configuration.Key.DEFAULT_PATH_SCANNER_CLASS_LOADER, componentSupplier.getPathScannerClassLoader()); 24 | ComponentSupplier customComponentSupplier2 = ComponentContainer.create(configProps); 25 | 26 | PathHelper pathHelper = componentSupplier.getPathHelper(); 27 | ClassFactory classFactory = customComponentSupplier.getClassFactory(); 28 | ClassHunter classHunter = customComponentSupplier2.getClassHunter(); 29 | 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/iterableobjecthelper/ItemFromMapRetriever.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.iterableobjecthelper; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.IterableObjectHelper; 4 | 5 | import java.io.IOException; 6 | import java.util.Collection; 7 | import java.util.HashMap; 8 | import java.util.Map; 9 | import java.util.Properties; 10 | 11 | import org.burningwave.core.assembler.ComponentContainer; 12 | import org.burningwave.core.assembler.ComponentSupplier; 13 | import org.burningwave.core.io.PathHelper; 14 | import org.burningwave.core.iterable.IterableObjectHelper.ResolveConfig; 15 | 16 | @SuppressWarnings("unused") 17 | public class ItemFromMapRetriever { 18 | 19 | public void execute() throws IOException { 20 | ComponentSupplier componentSupplier = ComponentContainer.getInstance(); 21 | PathHelper pathHelper = componentSupplier.getPathHelper(); 22 | Properties properties = new Properties(); 23 | properties.load(pathHelper.getResourceAsStream("burningwave.properties")); 24 | String code = IterableObjectHelper.resolveStringValue( 25 | ResolveConfig.forNamedKey("code-block-1") 26 | .on(properties) 27 | ); 28 | 29 | Map map = new HashMap<>(); 30 | map.put("class-loader-01", "${class-loader-02}"); 31 | map.put("class-loader-02", "${class-loader-03}"); 32 | map.put("class-loader-03", Thread.currentThread().getContextClassLoader().getParent()); 33 | ClassLoader parentClassLoader = IterableObjectHelper.resolveValue( 34 | ResolveConfig.forNamedKey("class-loader-01") 35 | .on(map) 36 | ); 37 | 38 | map.clear(); 39 | map.put("class-loaders", "${class-loader-02};${class-loader-03};"); 40 | map.put("class-loader-02", Thread.currentThread().getContextClassLoader()); 41 | map.put("class-loader-03", Thread.currentThread().getContextClassLoader().getParent()); 42 | Collection classLoaders = IterableObjectHelper.resolveValues( 43 | ResolveConfig.forNamedKey("class-loaders") 44 | .on(map) 45 | .withValuesSeparator(";") 46 | ); 47 | } 48 | 49 | public static void main(String[] args) throws IOException { 50 | new ItemFromMapRetriever().execute(); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/member/ConstructorsHandler.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.member; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.Constructors; 4 | 5 | import org.burningwave.core.classes.MemoryClassLoader; 6 | 7 | 8 | public class ConstructorsHandler { 9 | 10 | public static void execute() { 11 | //Invoking constructor by using reflection 12 | MemoryClassLoader classLoader = Constructors.newInstanceOf(MemoryClassLoader.class, Thread.currentThread().getContextClassLoader()); 13 | 14 | //Invoking constructor with a null parameter value by using MethodHandle 15 | classLoader = Constructors.newInstanceDirectOf(MemoryClassLoader.class, new Object[] {null}); 16 | System.out.println(classLoader); 17 | } 18 | 19 | public static void main(String[] args) { 20 | execute(); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/member/FieldsHandler.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.member; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.Fields; 4 | 5 | import java.lang.reflect.Field; 6 | import java.util.Collection; 7 | import java.util.List; 8 | import java.util.Map; 9 | 10 | import org.burningwave.core.classes.FieldCriteria; 11 | 12 | 13 | @SuppressWarnings("unused") 14 | public class FieldsHandler { 15 | 16 | public static void execute() { 17 | ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); 18 | //Fast access by memory address 19 | Collection> loadedClasses = Fields.getDirect(classLoader, "classes"); 20 | //Access by Reflection 21 | loadedClasses = Fields.get(classLoader, "classes"); 22 | 23 | //Get all field values of an object through memory address access 24 | Map values = Fields.getAllDirect(classLoader); 25 | //Get all field values of an object through reflection access 26 | values = Fields.getAll(classLoader); 27 | 28 | Object obj = new Object() { 29 | volatile List objectValue; 30 | volatile int intValue = 1; 31 | volatile long longValue = 2l; 32 | volatile float floatValue = 3f; 33 | volatile double doubleValue = 4.1d; 34 | volatile boolean booleanValue = true; 35 | volatile byte byteValue = (byte)5; 36 | volatile char charValue = 'c'; 37 | }; 38 | 39 | //Get all filtered field values of an object through memory address access 40 | Fields.getAllDirect( 41 | FieldCriteria.withoutConsideringParentClasses().allThoseThatMatch(field -> { 42 | return field.getType().isPrimitive(); 43 | }), 44 | obj 45 | ).values(); 46 | } 47 | 48 | public static void main(String[] args) { 49 | execute(); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/member/MethodsHandler.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.member; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.Classes; 4 | import static org.burningwave.core.assembler.StaticComponentContainer.Methods; 5 | 6 | import java.lang.invoke.MethodHandle; 7 | import java.lang.reflect.Method; 8 | import java.nio.ByteBuffer; 9 | import java.security.ProtectionDomain; 10 | import java.util.Collection; 11 | 12 | import org.burningwave.core.classes.MethodCriteria; 13 | 14 | 15 | @SuppressWarnings("unused") 16 | public class MethodsHandler { 17 | 18 | public static void execute() { 19 | //Invoking method by using reflection 20 | Methods.invoke(System.out, "println", "Hello World"); 21 | 22 | //Invoking static method by using MethodHandle 23 | Integer number = Methods.invokeStaticDirect(Integer.class, "valueOf", 1); 24 | 25 | //Invoking method by using MethodHandle 26 | Methods.invokeDirect(System.out, "println", number); 27 | 28 | //Filtering and obtaining a MethodHandle reference 29 | MethodHandle methodHandle = Methods.findFirstDirectHandle( 30 | MethodCriteria.byScanUpTo((cls) -> 31 | //We only analyze the ClassLoader class and not all of its hierarchy (default behavior) 32 | cls.getName().equals(ClassLoader.class.getName()) 33 | ).name( 34 | "defineClass"::equals 35 | ).and().parameterTypes(params -> 36 | params.length == 3 37 | ).and().parameterTypesAreAssignableFrom( 38 | String.class, ByteBuffer.class, ProtectionDomain.class 39 | ).and().returnType((cls) -> 40 | cls.getName().equals(Class.class.getName()) 41 | ), ClassLoader.class 42 | ); 43 | 44 | //Filtering and obtaining all methods of ClassLoader class that have at least 45 | //one input parameter of Class type 46 | Collection methods = Methods.findAll( 47 | MethodCriteria.byScanUpTo((cls) -> 48 | //We only analyze the ClassLoader class and not all of its hierarchy (default behavior) 49 | cls.getName().equals(ClassLoader.class.getName()) 50 | ).parameter((params, idx) -> { 51 | return Classes.isAssignableFrom(params[idx].getType(), Class.class); 52 | }), ClassLoader.class 53 | ); 54 | } 55 | 56 | public static void main(String[] args) { 57 | execute(); 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/propertyaccessor/GetAndSetPropertiesThroughPath.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.propertyaccessor; 2 | import static org.burningwave.core.assembler.StaticComponentContainer.ByFieldOrByMethodPropertyAccessor; 3 | import static org.burningwave.core.assembler.StaticComponentContainer.ByMethodOrByFieldPropertyAccessor; 4 | 5 | import org.burningwave.core.bean.Complex; 6 | 7 | public class GetAndSetPropertiesThroughPath{ 8 | 9 | public void execute() { 10 | Complex complex = new Complex(); 11 | //This type of property accessor try to access by field introspection: if no field was found 12 | //it will search getter method and invokes it 13 | String nameFromObjectInArray = ByFieldOrByMethodPropertyAccessor.get(complex, "data.items[1][0].name"); 14 | String nameFromObjectMap = ByFieldOrByMethodPropertyAccessor.get(complex, "data.itemsMap[items][1][1].name"); 15 | System.out.println(nameFromObjectInArray); 16 | System.out.println(nameFromObjectMap); 17 | //This type of property accessor looks for getter method and invokes it: if no getter method was found 18 | //it will search for field and try to retrieve it 19 | nameFromObjectInArray = ByMethodOrByFieldPropertyAccessor.get(complex, "data.items[1][2].name"); 20 | nameFromObjectMap = ByMethodOrByFieldPropertyAccessor.get(complex, "data.itemsMap[items][1][1].name"); 21 | System.out.println(nameFromObjectInArray); 22 | System.out.println(nameFromObjectMap); 23 | ByMethodOrByFieldPropertyAccessor.set(complex, "data.itemsMap[items][1][1].name", "Good evening!"); 24 | nameFromObjectInArray = ByMethodOrByFieldPropertyAccessor.get(complex, "data.itemsMap[items][1][1].name"); 25 | System.out.println(nameFromObjectInArray); 26 | } 27 | 28 | public static void main(String[] args) { 29 | new GetAndSetPropertiesThroughPath().execute(); 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/usecase001/Finder.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.usecase001; 2 | 3 | import java.io.Closeable; 4 | import java.io.Serializable; 5 | import java.util.Collection; 6 | 7 | import org.burningwave.core.assembler.ComponentContainer; 8 | import org.burningwave.core.assembler.ComponentSupplier; 9 | import org.burningwave.core.classes.ClassCriteria; 10 | import org.burningwave.core.classes.ClassHunter; 11 | import org.burningwave.core.classes.ClassHunter.SearchResult; 12 | import org.burningwave.core.classes.SearchConfig; 13 | import org.burningwave.core.io.PathHelper; 14 | 15 | public class Finder { 16 | 17 | public Collection> find() { 18 | ComponentSupplier componentSupplier = ComponentContainer.getInstance(); 19 | PathHelper pathHelper = componentSupplier.getPathHelper(); 20 | ClassHunter classHunter = componentSupplier.getClassHunter(); 21 | 22 | SearchConfig searchConfig = SearchConfig.forPaths( 23 | //Here you can add all absolute path you want: 24 | //both folders, zip and jar will be recursively scanned. 25 | //For example you can add: "C:\\Users\\user\\.m2" 26 | //With the row below the search will be executed on runtime Classpaths 27 | pathHelper.getMainClassPaths() 28 | ).by( 29 | ClassCriteria.create().byClassesThatMatch((uploadedClasses, currentScannedClass) -> 30 | //[1]here you recall the uploaded class by "useClasses" method. 31 | //In this case we're looking for all classes that implement java.io.Closeable or java.io.Serializable 32 | uploadedClasses.get(Closeable.class).isAssignableFrom(currentScannedClass) || 33 | uploadedClasses.get(Serializable.class).isAssignableFrom(currentScannedClass) 34 | ).useClasses( 35 | //With this directive we ask the library to load one or more classes to be used for comparisons: 36 | //it serves to eliminate the problem that a class, loaded by different class loaders, 37 | //turns out to be different for the comparison operators (eg. The isAssignableFrom method). 38 | //If you call this method, you must retrieve the uploaded class in all methods that support this feature like in the point[1] 39 | Closeable.class, 40 | Serializable.class 41 | ) 42 | ); 43 | 44 | SearchResult searchResult = classHunter.findBy(searchConfig); 45 | 46 | return searchResult.getClasses(); 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/usecase002/Finder.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.usecase002; 2 | 3 | import java.util.Collection; 4 | import java.util.Date; 5 | 6 | import org.burningwave.core.assembler.ComponentContainer; 7 | import org.burningwave.core.assembler.ComponentSupplier; 8 | import org.burningwave.core.classes.ClassCriteria; 9 | import org.burningwave.core.classes.ClassHunter; 10 | import org.burningwave.core.classes.ClassHunter.SearchResult; 11 | import org.burningwave.core.classes.MethodCriteria; 12 | import org.burningwave.core.classes.SearchConfig; 13 | import org.burningwave.core.io.PathHelper; 14 | 15 | public class Finder { 16 | 17 | public Collection> find() { 18 | ComponentSupplier componentSupplier = ComponentContainer.getInstance(); 19 | PathHelper pathHelper = componentSupplier.getPathHelper(); 20 | ClassHunter classHunter = componentSupplier.getClassHunter(); 21 | 22 | MethodCriteria methodCriteria = MethodCriteria.forEntireClassHierarchy().name(methodName -> 23 | methodName.startsWith("set") 24 | ).and().parameterType( 25 | (uploadedClasses, array, idx) -> 26 | idx == 0 && array[idx].equals(uploadedClasses.get(Date.class)) 27 | ).skip((classes, initialClass, examinedClass) -> 28 | classes.get(Object.class) == examinedClass 29 | ); 30 | 31 | SearchConfig searchConfig = SearchConfig.forPaths( 32 | //Here you can add all absolute path you want: 33 | //both folders, zip and jar will be recursively scanned. 34 | //For example you can add: "C:\\Users\\user\\.m2" 35 | //With the row below the search will be executed on runtime Classpaths 36 | pathHelper.getMainClassPaths() 37 | ).by( 38 | ClassCriteria.create().byMembers( 39 | methodCriteria 40 | ).useClasses( 41 | Date.class, 42 | Object.class 43 | ) 44 | ); 45 | 46 | SearchResult searchResult = classHunter.findBy(searchConfig); 47 | 48 | //If you need all found methods unconment this 49 | //searchResult.getMembersFlatMap().values(); 50 | 51 | return searchResult.getClasses(); 52 | } 53 | 54 | } -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/usecase003/Finder.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.usecase003; 2 | 3 | import java.util.Collection; 4 | 5 | import org.burningwave.core.assembler.ComponentContainer; 6 | import org.burningwave.core.assembler.ComponentSupplier; 7 | import org.burningwave.core.classes.ClassCriteria; 8 | import org.burningwave.core.classes.ClassPathHunter; 9 | import org.burningwave.core.classes.ClassPathHunter.SearchResult; 10 | import org.burningwave.core.classes.SearchConfig; 11 | import org.burningwave.core.io.FileSystemItem; 12 | import org.burningwave.core.io.PathHelper; 13 | 14 | public class Finder { 15 | 16 | public Collection find() { 17 | ComponentSupplier componentSupplier = ComponentContainer.getInstance(); 18 | PathHelper pathHelper = componentSupplier.getPathHelper(); 19 | ClassPathHunter classPathHunter = componentSupplier.getClassPathHunter(); 20 | 21 | SearchConfig searchConfig = SearchConfig.forPaths( 22 | //Here you can add all absolute path you want: 23 | //both folders, zip and jar will be recursively scanned. 24 | //For example you can add: "C:\\Users\\user\\.m2" 25 | //With the row below the search will be executed on runtime Classpaths 26 | pathHelper.getMainClassPaths() 27 | ).by( 28 | ClassCriteria.create().allThoseThatMatch(cls -> 29 | cls.getName().equals("Finder") 30 | ) 31 | ); 32 | 33 | SearchResult searchResult = classPathHunter.findBy(searchConfig); 34 | return searchResult.getClassPaths(); 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/usecase005/Finder.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.usecase005; 2 | 3 | import java.util.AbstractList; 4 | import java.util.Collection; 5 | 6 | import org.burningwave.core.assembler.ComponentContainer; 7 | import org.burningwave.core.assembler.ComponentSupplier; 8 | import org.burningwave.core.classes.ClassCriteria; 9 | import org.burningwave.core.classes.ClassHunter; 10 | import org.burningwave.core.classes.ClassHunter.SearchResult; 11 | import org.burningwave.core.classes.SearchConfig; 12 | import org.burningwave.core.io.PathHelper; 13 | 14 | public class Finder { 15 | 16 | public Collection> find() { 17 | ComponentSupplier componentSupplier = ComponentContainer.getInstance(); 18 | PathHelper pathHelper = componentSupplier.getPathHelper(); 19 | ClassHunter classHunter = componentSupplier.getClassHunter(); 20 | 21 | SearchConfig searchConfig = SearchConfig.forPaths( 22 | //Here you can add all absolute path you want: 23 | //both folders, zip and jar will be recursively scanned. 24 | //For example you can add: "C:\\Users\\user\\.m2" 25 | //With the row below the search will be executed on runtime Classpaths 26 | pathHelper.getMainClassPaths() 27 | ).by( 28 | ClassCriteria.create().byClassesThatMatch((uploadedClasses, currentScannedClass) -> 29 | //[1]here you recall the uploaded class by "useClasses" method. In this case we find all class who extends java.util.AbstractList 30 | uploadedClasses.get(AbstractList.class).isAssignableFrom(currentScannedClass) 31 | ).useClasses( 32 | //With this directive we ask the library to load one or more classes to be used for comparisons: 33 | //it serves to eliminate the problem that a class, loaded by different class loaders, 34 | //turns out to be different for the comparison operators (eg. The isAssignableFrom method). 35 | //If you call this method, you must retrieve the uploaded class in all methods that support this feature like in the point[1] 36 | AbstractList.class 37 | ) 38 | ); 39 | 40 | SearchResult searchResult = classHunter.findBy(searchConfig); 41 | 42 | return searchResult.getClasses(); 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/usecase006/Finder.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.usecase006; 2 | 3 | import java.util.Collection; 4 | 5 | import org.burningwave.core.assembler.ComponentContainer; 6 | import org.burningwave.core.assembler.ComponentSupplier; 7 | import org.burningwave.core.classes.ClassHunter; 8 | import org.burningwave.core.classes.ClassHunter.SearchResult; 9 | import org.burningwave.core.classes.SearchConfig; 10 | import org.burningwave.core.io.PathHelper; 11 | 12 | public class Finder { 13 | 14 | public Collection> find() { 15 | ComponentSupplier componentSupplier = ComponentContainer.getInstance(); 16 | PathHelper pathHelper = componentSupplier.getPathHelper(); 17 | ClassHunter classHunter = componentSupplier.getClassHunter(); 18 | 19 | SearchConfig searchConfig = SearchConfig.forPaths( 20 | //Here you can add all absolute path you want: 21 | //both folders, zip, jar, war, ear and jmod will be recursively scanned. 22 | //For example you can add: "C:\\Users\\user\\.m2" 23 | //With the row below the search will be executed on runtime Classpaths 24 | pathHelper.getMainClassPaths() 25 | ); 26 | 27 | SearchResult searchResult = classHunter.findBy(searchConfig); 28 | 29 | return searchResult.getClasses(); 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/usecase008/Finder.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.usecase008; 2 | 3 | import java.util.AbstractList; 4 | import java.util.Collection; 5 | 6 | import org.burningwave.core.assembler.ComponentContainer; 7 | import org.burningwave.core.assembler.ComponentSupplier; 8 | import org.burningwave.core.classes.ClassCriteria; 9 | import org.burningwave.core.classes.ClassHunter; 10 | import org.burningwave.core.classes.ClassHunter.SearchResult; 11 | import org.burningwave.core.classes.SearchConfig; 12 | import org.burningwave.core.io.PathHelper; 13 | 14 | public class Finder { 15 | 16 | public Collection> find() { 17 | ComponentSupplier componentSupplier = ComponentContainer.getInstance(); 18 | PathHelper pathHelper = componentSupplier.getPathHelper(); 19 | ClassHunter classHunter = componentSupplier.getClassHunter(); 20 | 21 | SearchConfig searchConfig = SearchConfig.forPaths( 22 | //Here you can add all absolute path you want: 23 | //both folders, zip and jar will be recursively scanned. 24 | //For example you can add: "C:\\Users\\user\\.m2" 25 | //With the row below the search will be executed on runtime Classpaths 26 | pathHelper.getMainClassPaths() 27 | ).by( 28 | ClassCriteria.create().byClassesThatMatch((uploadedClasses, currentScannedClass) -> 29 | //[1]here you recall the uploaded class by "useClasses" method. In this case we find all class who extends java.util.AbstractList 30 | uploadedClasses.get(AbstractList.class).isAssignableFrom(currentScannedClass) 31 | ).useClasses( 32 | //With this directive we ask the library to load one or more classes to be used for comparisons: 33 | //it serves to eliminate the problem that a class, loaded by different class loaders, 34 | //turns out to be different for the comparison operators (eg. The isAssignableFrom method). 35 | //If you call this method, you must retrieve the uploaded class in all methods that support this feature like in the point[1] 36 | AbstractList.class 37 | ) 38 | ); 39 | 40 | SearchResult searchResult = classHunter.findBy(searchConfig); 41 | return searchResult.getClasses(); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/examples/usecase009/Finder.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.examples.usecase009; 2 | 3 | import java.lang.reflect.Modifier; 4 | import java.util.Collection; 5 | import java.util.Date; 6 | 7 | import org.burningwave.core.assembler.ComponentContainer; 8 | import org.burningwave.core.assembler.ComponentSupplier; 9 | import org.burningwave.core.classes.ClassCriteria; 10 | import org.burningwave.core.classes.ClassHunter; 11 | import org.burningwave.core.classes.ClassHunter.SearchResult; 12 | import org.burningwave.core.classes.FieldCriteria; 13 | import org.burningwave.core.classes.SearchConfig; 14 | import org.burningwave.core.io.PathHelper; 15 | 16 | public class Finder { 17 | 18 | public Collection> find() { 19 | ComponentSupplier componentSupplier = ComponentContainer.getInstance(); 20 | PathHelper pathHelper = componentSupplier.getPathHelper(); 21 | ClassHunter classHunter = componentSupplier.getClassHunter(); 22 | 23 | FieldCriteria fieldCriteria = FieldCriteria.withoutConsideringParentClasses().allThoseThatMatch((field) -> { 24 | return Modifier.isProtected(field.getModifiers()); 25 | }).result((foundFields) -> { 26 | return foundFields.size() >= 2; 27 | }); 28 | 29 | SearchConfig searchConfig = SearchConfig.forPaths( 30 | //Here you can add all absolute path you want: 31 | //both folders, zip and jar will be recursively scanned. 32 | //For example you can add: "C:\\Users\\user\\.m2" 33 | //With the row below the search will be executed on runtime Classpaths 34 | pathHelper.getMainClassPaths() 35 | ).by( 36 | ClassCriteria.create().byMembers( 37 | fieldCriteria 38 | ).useClasses( 39 | Date.class, 40 | Object.class 41 | ) 42 | ); 43 | 44 | SearchResult searchResult = classHunter.findBy(searchConfig); 45 | 46 | //If you need all found fields unconment this 47 | //searchResult.getMembersFlatMap().values(); 48 | 49 | return searchResult.getClasses(); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/service/ExtendedService.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.service; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.ManagedLoggerRepository; 4 | 5 | public class ExtendedService extends Service { 6 | 7 | @Override 8 | public String apply(Object value_01, String value_02, String value_03) { 9 | ManagedLoggerRepository.logInfo(this.getClass()::getName, "TriFunction: " + value_01 + " " + value_02 + " " + value_03); 10 | return ""; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/org/burningwave/core/service/ServiceInterface.java: -------------------------------------------------------------------------------- 1 | package org.burningwave.core.service; 2 | 3 | import static org.burningwave.core.assembler.StaticComponentContainer.ManagedLoggerRepository; 4 | 5 | public interface ServiceInterface { 6 | 7 | public default void printMyName() { 8 | ManagedLoggerRepository.logInfo(this.getClass()::getName, "My name is" + this.getClass().getName()); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/test/resources/custom-folder/code.properties: -------------------------------------------------------------------------------- 1 | code-block-1=\ 2 | ${code-block-2}\ 3 | return Date.from(zonedDateTime.toInstant()); 4 | code-block-1.imports=\ 5 | ${code-block-2.imports};\ 6 | java.util.Date; 7 | code-block-2=\ 8 | LocalDateTime localDateTime = (LocalDateTime)parameter[0];\ 9 | ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault()); 10 | code-block-2.imports=\ 11 | static org.burningwave.core.assembler.StaticComponentContainer.Strings;\ 12 | java.time.LocalDateTime;\ 13 | java.time.ZonedDateTime;\ 14 | java.time.ZoneId; -------------------------------------------------------------------------------- /src/test/resources/junit-platform.properties: -------------------------------------------------------------------------------- 1 | #junit.jupiter.execution.order.random.seed=471587957313200 2 | org.junit.jupiter.api.MethodOrderer$Random.level=CONFIG 3 | -------------------------------------------------------------------------------- /src/test/resources/logging.properties: -------------------------------------------------------------------------------- 1 | handlers=org.slf4j.bridge.SLF4JBridgeHandler 2 | .level=FINEST 3 | org.junit.jupiter.api.MethodOrderer$Random.level=CONFIG 4 | org.junit.jupiter.engine.execution.ConditionEvaluator.level=INFO 5 | --------------------------------------------------------------------------------