QuickPerf is a testing library for Java to quickly evaluate and improve some performance-related properties

Overview
QuickPerf

QuickPerf is a testing library for Java to quickly evaluate and improve some performance-related properties


Maven Central    Reproducible Builds    License    Build Status    quickperf.io


๐Ÿ“™ Documentation

Annotations

๐Ÿ‘‰ Core

๐Ÿ‘‰ JVM

๐Ÿ‘‰ SQL

more...

Frameworks and Test Frameworks

๐Ÿ‘‰ Spring

more...


๐Ÿ‘‰ JUnit 4

๐Ÿ‘‰ JUnit 5

๐Ÿ‘‰ TestNG

more...

Frequently Asked Questions

more...

Usage

JVM annotations

    @MeasureHeapAllocation
    @HeapSize(value = 1, unit = AllocationUnit.GIGA_BYTE)
    @Test
    public void execute_batch() {
        ...
    }

๐Ÿ“™ All the JVM annotations    ๐Ÿ”Ž Examples with JUnit4, Junit5, TestNG    ๐Ÿ”Ž Heap allocation of Apache Maven

SQL annotations

    @ExpectSelect(1)
    @Test
    public void should_find_all_players() {
     ...
    }
[PERF] You may think that <1> select statement was sent to the database
       But there are in fact <10>...

๐Ÿ’ฃ You may have even more select statements with production data.
Be careful with the cost of JDBC roundtrips: https://blog.jooq.org/2017/12/18/the-cost-of-jdbc-server-roundtrips/

Auto-detection of Hibernate and Spring Data JPA:

๐Ÿ’ก Perhaps you are facing an N+1 select issue
	* With Hibernate, you may fix it by using JOIN FETCH
	                                       or LEFT JOIN FETCH
	                                       or FetchType.LAZY
	                                       or ...
	* With Spring Data JPA, you may fix it by adding @EntityGraph(attributePaths = { "..." })
      	  on repository method: https://docs.spring.io/spring-data/jpa/docs/current/reference/ht

๐Ÿ“™ All the SQL annotations    ๐Ÿ”Ž Spring Boot & JUnit 4    ๐Ÿ”Ž Spring Boot & JUnit 5

Talks and videos

English

French

Something to ask us?

๐Ÿ“ง [email protected]

๐Ÿ’ฌ Want to chat with us? Join us on gitter

:octocat: Do you prefer to use a Github issue to ask a question? Create a question issue

Show your support

Please โญ this repository or Tweet if this project helped you!

Contributing

You are very welcome to contribute to QuickPerf! You can contribute in many ways. Some relatively easy things can be done. Other issues are more challenging. Each contribution is appreciated. Read our contributing guide to learn more.

Contributors

Many thanks to all our contributors!

Jean Bisutti
Jean Bisutti

๐Ÿ’ป โš  ๐Ÿ“– ๐ŸŽจ
๐Ÿ’ก ๐Ÿ‘€ ๐Ÿ“ข
guiRagh
Guillaume Raghoumandan

๐Ÿ’ป โš 
Patrice CAVEZZAN
Patrice Cavezzan

๐Ÿ’ป ๐Ÿš‡ ๐Ÿ“–
Alexandre Blanchard
Alexandre Blanchard

๐Ÿ› ๐Ÿ’ป
Eric McDowell
Eric McDowell

๐Ÿ’ป
Jan Krรผger
Jan Krรผger

๐Ÿ’ป
Loรฏc Mathieu
Loรฏc Mathieu

๐Ÿ’ป ๐Ÿ’ก ๐Ÿ“–
Daniel Bentley
Daniel Bentley

๐Ÿš‡
Gaurav Deshpande
Gaurav Deshpande

โš 
rdm100
rdm100

๐Ÿ“–
Artus de Benque
Artus de Benque

๐Ÿ› ๐Ÿ’ป
Minh-Trieu Ha
Minh-Trieu Ha

๐Ÿ’ป
Bakary Djiba
Bakary Djiba

๐Ÿ’ป
C Faisal
C Faisal

๐Ÿ’ป
Thami Inaflas
Thami Inaflas

๐Ÿ’ป
Josรฉ Paumard
Josรฉ Paumard

๐Ÿ’ป
Edward Rose
Edward Rose

๐Ÿ’ป
Ubaid ur Rehman
Ubaid ur Rehman

๐Ÿ’ป
Giuseppe B.
Giuseppe B.

๐Ÿ’ป
Fabrice
Fabrice

๐Ÿ’ป ๐Ÿ“–
Navneet Kumar
Navneet Kumar

๐Ÿ’ป
Charles Sabourdin
Charles Sabourdin

๐Ÿ“–
Mohamed Karaga
Mohamed Karaga

๐Ÿ› ๐Ÿ’ป
Hervรฉ Boutemy
Hervรฉ Boutemy

๐Ÿ“ฆ
Franck Demeyer
Franck Demeyer

๐Ÿ› ๐Ÿ’ป
emoji key

Sponsors

Many thanks Zenika for sponsoring this project!

with love by zenika

License

Apache License 2.0

Comments
  • Add Junit5 JVM annotations

    Add Junit5 JVM annotations

    This is a draft PR to gather feeback on JVM annotations with JUnit 5. It contains some code around forking that still needs improvements. It also provides disabling forking wich should be discussed.

    This is buid on top of PR #22 that needs to be merged first.

    opened by loicmathieu 36
  • Provides a JUnit 5 extension

    Provides a JUnit 5 extension

    Description Currentlly, only JUnit 4 is supported.

    Implementation ideas There should be a JUnit 5 extension to be able to use quickperf with JUnit 5. I can try to work on it.

    :sparkles: feature :construction: work-in-progress junit5 
    opened by loicmathieu 28
  • Add @ExpectMaxDelete

    Add @ExpectMaxDelete

    Description

    The aim of this annotation is to check the maximum number of DELETE statements.

    For example, a test method having @ExpectMaxDelete(2) annotation will fail if more than two DELETE statements are executed.

    Implementation steps

    1. Create the @ExpectMaxDelete annotation here

      Example: @ExpectDelete

    2. Create a test class in this package and add automatic tests

      Example: ExpectDeleteTest.java

    3. In this package add a performance measure extractor and a performance issue verifier.

      Examples:

    4. Create an AnnotationConfig in SqlAnnotationsConfig. This new AnnotationConfig will use the previously created performance measure extractor, performance issue verifier together with a PersistenceSqlRecorder.

      Example:

          static final AnnotationConfig MAX_SQL_SELECT = new AnnotationConfig.Builder()
              .perfRecorderClass(PersistenceSqlRecorder.class)
              .perfMeasureExtractor(SelectCountMeasureExtractor.INSTANCE)
              .perfIssueVerifier(MaxOfSelectsPerfIssueVerifier.INSTANCE)
              .build(ExpectMaxSelect.class);
      
    5. Use the new AnnotationConfig in loadAnnotationConfigs() method of SqlConfigLoader

    6. Complete the measure extractor and the performance issue verifier to make the tests green. Refactor to clean the code.

    7. In SqlAnnotationBuilder, add a static method to can build the new annotation. This method can be used to define the annotation with a global scope.

    If you start to work on this issue, please leave a comment I start to work on this issue, so we can assign it to you. Do not hesitate to ask for information about the issue.

    :sparkles: feature :thumbsup: good first issue sql 
    opened by jeanbisutti 23
  • Add Javadoc to SQL annotations

    Add Javadoc to SQL annotations

    SQL annotations are documented in QuickPerf wiki.

    The goal of this issue is to add Javadoc to SQL annotations that are located in sql-annotations Maven module.

    The documentation contained in QuickPerf wiki can be used to add Javadoc to the SQL annotations. Don't hesitate to improve it.

    :ledger: documentation :thumbsup: good first issue 
    opened by jeanbisutti 15
  • Test NG / Spring Boot

    Test NG / Spring Boot

    A QuickPerf Test NG listener is developed (see #32 and 3932345 ).

    A Spring Boot application is tested with QuickPerf+JUnit4 and QuickPerf+Junit5.

    The aim of this issue is to provide a Github repository containing this Spring Boot application with tests using QuickPerf and Test NG.

    opened by jeanbisutti 15
  • Make @ProfileJvm display the young GC count #71

    Make @ProfileJvm display the young GC count #71

    add display the number of young collections.

    • a private method getYoungGcCount(IItemCollection jfrEvents) add in DisplayJvmProfilingValueVerifier class
    • display Young: (number of collections) below Longest GC pause
    opened by ubaid4j 12
  • Have configurable verbosity on none passing test

    Have configurable verbosity on none passing test

    Description Some Feedback on non-working test (for instance N+1 select) are very long. It's useful but it could be drawing (overwhelming) sometime. It also could fill the CI system

    It could be nice have its verbosity configurable Implementation ideas (If you have any implementation ideas, they can go here.) It would be great to works with -Dquickperf.hints=0

    :sparkles: feature 
    opened by kanedafromparis 11
  • Instrument dynamic JUnit 5 tests

    Instrument dynamic JUnit 5 tests

    Description Great project, I really like the idea and the configuration model.

    I'd love to have the alternative to instrument dynamic tests as well, which AFAIK does not respect annotations but would instead need some programmatic API alternative. Alternatively provide an example on how these could be wired up manually with the current model and some before and after lambdas?

    https://junit.org/junit5/docs/current/user-guide/#writing-tests-dynamic-tests

    :sparkles: feature junit5 
    opened by billybong 11
  • Make @ProfileJvm display the allocation rate

    Make @ProfileJvm display the allocation rate

    Description

    With @ProfileJvm annotation, the JVM is profiled with the JDK Flight Recorder, an event recorder built into the JVM.

    With this annotation, some JVM data are displayed in the standard output.

    Example:

     ALLOCATION (estimations)  |   GARBAGE COLLECTION           |  THROWABLE
     Total:        3,7ย GiB     |   Total pause: 1,087ย s         | Exception: 0
     Inside TLAB:  3,69ย GiB    |   Longest GC pause: 160,438ย ms | Error: 36
     Outside TLAB: 10,3ย MiB    |                                | Throwable: 36
    

    The aim of this issue is to add the allocation rate.

    Implementation ideas

    • Class displaying JVM data: DisplayJvmProfilingValueVerifier
    • Total allocation can be computed by using JdkAggregators.ALLOCATION_TOTAL.
       IQuantity totatlAlloc =(IQuantity) itemCollection.getAggregate(JdkAggregators.ALLOCATION_TOTAL);
       long allocationInBytes = totatlAlloc.longValue();
    
    • The duration can be computed in the following way:

      • Filter IItemCollection by inside and outside TLAB events:
         itemCollection.apply(JdkFilters.ALLOC_INSIDE_TLAB)       
         itemCollection.apply(JdkFilters.ALLOC_OUTSIDE_TLAB)
      
      • Retrieve the min and max timestamps Code to get the timestamp of a JFR event below
        IType<IItem> type= (IType<IItem>) item.getType();
        IMemberAccessor<IQuantity, IItem> endTimeAccessor = JfrAttributes.END_TIME.getAccessor(type);
        IQuantity quantityEndTime = endTimeAccessor.getMember(jfrEvent);
        long timeStampInMs = quantityEndTime.longValueIn(UnitLookup.EPOCH_MS);
        
      • Compute the difference between the min and max time stamps
    • Compute (total allocation)/duration

    :sparkles: feature :thumbsup: good first issue jvm JDK Flight Recorder 
    opened by jeanbisutti 10
  • Add bytes to allocation display

    Add bytes to allocation display

    Some annotations, like @MeasureHeapAllocation, can display allocation in console. The allocation is formatted with the help of ByteAllocationMeasureFormatter class.

    For example:

    Measured heap allocation: 3.1 Giga bytes
    

    Now, we want that the formatted allocation also displays the allocation in bytes between parentheses if the allocation has a magnitude of kilo bytes, mega bytes or giga bytes.

    For example:

    3.9 Kilo bytes (4 056 bytes)
    

    The test class to update is ByteAllocationMeasureFormatterTest.

    If you start to work on this issue, please leave a comment "I start to work on this issue", so we can assign it to you.

    :thumbsup: good first issue hacktoberfest 
    opened by jeanbisutti 10
  • Add @DisableQueriesWithoutBindParameters and @EnableQueriesWithoutBindParameters

    Add @DisableQueriesWithoutBindParameters and @EnableQueriesWithoutBindParameters

    Why

    Using bind parameters is recommanded for performance. Moreover, bind parameters can prevent SQL injections.

    References:

    • Oracle Performance Survival Guide: A Systematic Approach to Database Optimization
    • https://use-the-index-luke.com/sql/where-clause/bind-parameters
    • https://dzone.com/articles/why-sql-bind-variables-are-important-for-performan
    • https://blogs.oracle.com/sql/improve-sql-query-performance-by-using-bind-variables
    • https://www.ibm.com/developerworks/library/se-bindvariables/index.html)
    • ...

    The role of @DisableQueriesWithoutBindParameters is to prevent the execution of requests without bind parameters. This annotation could be used whith a global scope, that is to say applied on each QuickPerf test.

    @EnableQueriesWithoutBindParameters will cancel the behavior of @DisableQueriesWithoutBindParameters. @EnableQueriesWithoutBindParameters may be applied on a specific test method where some values can influence the execution plan (https://use-the-index-luke.com/sql/where-clause/bind-parameters).

    Use cases

    • With @DisableQueriesWithoutBindParameters, a test sending the following request to database must Not fail:
     SELECT
            * 
        FROM
            book 
        WHERE
            isbn = ? 
            AND title = ?"], Params:[(978-0134685991,Effective Java)]
    

    Java code example generating this request:

    EntityManager em = emf.createEntityManager();
    String sql = "SELECT * FROM book WHERE isbn = :isbn AND title = :title";
    Query nativeQuery = em.createNativeQuery(sql)
                                 .setParameter("isbn", "978-0321356680")
                                 .setParameter("title", "Effective Java");
    nativeQuery.getResultList();
    
    • With @DisableQueriesWithoutBindParameters, a test sending the following request to database must Not fail:
    SELECT * FROM book 
    
    • With @DisableQueriesWithoutBindParameters, a test sending the following request to database must fail:
     SELECT
            * 
        FROM
            book 
        WHERE
            isbn = '978-0321356680' 
            AND title = 'Effective Java'
    

    Java code example generating this request:

    EntityManager em = emf.createEntityManager();
    String sql = "SELECT * FROM book WHERE isbn = '978-0321356680' AND title = 'Effective Java'";
    Query nativeQuery = em.createNativeQuery(sql);
    nativeQuery.getResultList();
    
    • With @DisableQueriesWithoutBindParameters, a test sending the following request to database must Not fail:
    UPDATE
            book 
        SET
            isbn = ?,
            title = ? 
        WHERE
            id = ?"], Params:[(978-0321356680,Effective Java,40)]
    

    Java code example generating this request:

    EntityManager em = emf.createEntityManager();
    em.getTransaction().begin();
    String sql = "UPDATE book SET isbn = :isbn, title = :title WHERE id = :id";
    Query nativeQuery = em.createNativeQuery(sql)
                                      .setParameter("isbn", "978-0321356680")
                                      .setParameter("title", "Effective Java")
                                      .setParameter("id", 40);
    nativeQuery.executeUpdate();
    em.getTransaction().commit();
    
    • With @DisableQueriesWithoutBindParameters, a test sending the following request to database must fail:
     UPDATE
            book 
        SET
            isbn = '978-0321356680',
            title = 'Effective Java' 
        WHERE
            id = '40'
    

    Java code example generating this request:

    EntityManager em = emf.createEntityManager();
    em.getTransaction().begin();
    String sql = "UPDATE book SET isbn = '978-0321356680', title = 'Effective Java' WHERE id = '40'";
    Query nativeQuery = em.createNativeQuery(sql);
    nativeQuery.executeUpdate();
    em.getTransaction().commit();
    
    • With @DisableQueriesWithoutBindParameters, a test sending the following request to database must Not fail:
        DELETE 
        FROM
            book 
        WHERE
            id = ?"], Params:[(40)
    

    Java code example generating this request:

    EntityManager em = emf.createEntityManager();
    em.getTransaction().begin();
    String sql = "DELETE FROM book WHERE id = :id";
    Query nativeQuery = em.createNativeQuery(sql)
                                       .setParameter("id", 40);
    nativeQuery.executeUpdate();
    em.getTransaction().commit();
    
    • With @DisableQueriesWithoutBindParameters, a test sending the following request to database must fail:
     DELETE 
        FROM
            book 
        WHERE
            id = '40'
    

    Java code example generating this request:

    EntityManager em = emf.createEntityManager();
    em.getTransaction().begin();
    String sql = "DELETE FROM book WHERE id = '40'";
    Query nativeQuery = em.createNativeQuery(sql);
    nativeQuery.executeUpdate();
    em.getTransaction().commit();
    

    Implementation

    This documentation can help you to implement, in particular this part.

    :sparkles: feature sql 
    opened by jeanbisutti 10
  • Bump spring-beans from 3.2.18.RELEASE to 5.2.20.RELEASE in /spring/junit4-spring3

    Bump spring-beans from 3.2.18.RELEASE to 5.2.20.RELEASE in /spring/junit4-spring3

    Bumps spring-beans from 3.2.18.RELEASE to 5.2.20.RELEASE.

    Release notes

    Sourced from spring-beans's releases.

    v5.2.20.RELEASE

    :star: New Features

    • Restrict access to property paths on Class references #28262
    • Improve diagnostics in SpEL for large array creation #28257

    v5.2.19.RELEASE

    :star: New Features

    • Declare serialVersionUID on DefaultAopProxyFactory #27785
    • Use ByteArrayDecoder in DefaultClientResponse::createException #27667

    :lady_beetle: Bug Fixes

    • ProxyFactoryBean getObject called before setInterceptorNames, silently creating an invalid proxy [SPR-7582] #27817
    • Possible NPE in Spring MVC LogFormatUtils #27783
    • UndertowHeadersAdapter's remove() method violates Map contract #27593
    • Fix assertion failure messages in DefaultDataBuffer.checkIndex() #27577

    :notebook_with_decorative_cover: Documentation

    • Lazy annotation throws exception if non-required bean does not exist #27660
    • Incorrect Javadoc in [NamedParameter]JdbcOperations.queryForObject methods regarding exceptions #27581
    • DefaultResponseErrorHandler update javadoc comment #27571

    :hammer: Dependency Upgrades

    • Upgrade to Reactor Dysprosium-SR25 #27635
    • Upgrade to Log4j2 2.16.0 #27825

    v5.2.18.RELEASE

    :star: New Features

    • Enhance DefaultResponseErrorHandler to allow logging complete error response body #27558
    • DefaultMessageListenerContainer does not log an error/warning when consumer tasks have been rejected #27457

    :lady_beetle: Bug Fixes

    • Performance impact of con.getContentLengthLong() in AbstractFileResolvingResource.isReadable() downloading huge jars to check component length #27549
    • Performance impact of ResourceUrlEncodingFilter on HttpServletResponse#encodeURL #27548
    • Avoid duplicate JCacheOperationSource bean registration in #27547
    • Non-escaped closing curly brace in RegEx results in initialization error on Android #27502
    • Proxy generation with Java 17 fails with "Cannot invoke "Object.getClass()" because "cause" is null" #27498
    • ConcurrentReferenceHashMap's entrySet violates the Map contract #27455

    :hammer: Dependency Upgrades

    • Upgrade to Reactor Dysprosium-SR24 #27526

    v5.2.17.RELEASE

    ... (truncated)

    Commits
    • cfa701b Release v5.2.20.RELEASE
    • 996f701 Refine PropertyDescriptor filtering
    • 90cfde9 Improve diagnostics in SpEL for large array creation
    • 94f52bc Upgrade to Artifactory Resource 0.0.17
    • d4478ba Upgrade Java versions in CI image
    • 136e6db Upgrade Ubuntu version in CI images
    • 8f1f683 Upgrade Java versions in CI image
    • ce2367a Upgrade to Log4j2 2.17.1
    • acf7823 Next development version (v5.2.20.BUILD-SNAPSHOT)
    • 1a03ffe Upgrade to Log4j2 2.16.0
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump hibernate-core from 4.3.11.Final to 5.3.20.Final in /spring/junit4-spring4

    Bump hibernate-core from 4.3.11.Final to 5.3.20.Final in /spring/junit4-spring4

    Bumps hibernate-core from 4.3.11.Final to 5.3.20.Final.

    Release notes

    Sourced from hibernate-core's releases.

    Hibernate ORM 5.2.0

    5.2.0 includes many improvements and bug-fixes. For a complete list of changes, see https://hibernate.atlassian.net/projects/HHH/versions/23150/tab/release-report-done.

    Many of the changes in 5.2.0 have important ramifications in terms of both usage and extension. Be sure to read the 5.2 Migration Guide for details.

    Below is a discussion of the major changes.

    Java 8 baseline

    5.2 moves to Java 8 as its baseline. This means:

    • The hibernate-java8 module has been removed, and that functionality has been moved into hibernate-core.
    • Native support for Java 8 date/time types as Query parameters.
    • Support for streaming (java.util.stream.Stream) query results.
    • Support for java.util.Optional as return from methods that may return null.
    • Leveraging Java 8 "default methods" when introducing new methods to extension points.

    Consolidating JPA support into hibernate-core.

    That effectively means that the hibernate-entitymanager module no longer exists. Its functionality being consumed into hibernate-core.

    JCache support

    Support for using any JCache-compliant cache impl as a second-level caching provider.

    Session-level batch size support

    Support has been added for specifying a batch size for write operations per Session.

    5th bug-fix release for 5.0

    The 5th bug-fix release for Hibernate ORM 5.0. This release and the upcoming 5.0.6 release have been done on an accelerated time-box of 2 weeks (from the normal 4 weeks for bug-fix releases) due to US holidays.

    The complete list of changes can be found here (or here for people without a Hibernate Jira account).

    For information on consuming the release via your favorite dependency-management-capable build tool, see http://hibernate.org/orm/downloads/

    For those of you allergic to dependency-management-capable build tools, the release bundles can be obtained from SourceForge or BinTray.

    Fourth bug-fix release for 5.0

    The fourth bug-fix release for Hibernate ORM 5.0

    There are 52 issues resolved in this release. 20 of those came out of the recent Jira cleanup. Initially that initiative pulled in roughly 750 issues. To date, 66 of those have been resolved - fixed or verified as out-of-date, unable-to-reproduce, etc. An additional 14 have been more properly reclassified as feature or enhancement requests rather than bugs. The really cool part is the amount of community help we have gotten in making that happen! Thanks to everyone responding, verifying and even fixing alot of these bugs!

    The complete list of changes can be found here. People without a Hibernate Jira account will not be able to access the previous link and can access the changelog in GitHub; the issue I reported with Atlassian has been resolved and is ready for deployment into our hosted environment, I just do not know when that will happen.

    For information on consuming the release via your favorite dependency-management-capable build tool, see http://hibernate.org/orm/downloads/

    For those of you allergic to dependency-management-capable build tools, the release bundles can be obtained from SourceForge or BinTray.

    Third bug-fix release for 5.0

    http://in.relation.to/2015/10/28/hibernate-orm-503-final-release/

    ... (truncated)

    Changelog

    Sourced from hibernate-core's changelog.

    Changes in 5.3.20.Final (November 16th, 2020)

    https://hibernate.atlassian.net/projects/HHH/versions/31894/tab/release-report-all-issues

    ** Bug * [HHH-14257] - An Entity A with a map collection having as index an Embeddable with a an association to the Entity A fails with a NPE

    ** Task * [HHH-14225] - CVE-2020-25638 Potential for SQL injection on use_sql_comments logging enabled * [HHH-14324] - Add .gradletasknamecache to .gitignore

    ** Improvement * [HHH-14325] - Add Query hint for specifying "query spaces" for native queries

    Changes in 5.3.19.Final (November 10th, 2020)

    https://hibernate.atlassian.net/projects/HHH/versions/31874/tab/release-report-all-issues

    ** Bug * [HHH-13310] - getParameterValue() not working for collections * [HHH-14275] - Broken link to Infinispan User Guide in Hibernate 5.3 User Guide

    ** Task * [HHH-14309] - Improve BulkOperationCleanupAction#affectedEntity

    ** Sub-task * [HHH-14196] - Add parsing of persistence.xml/orm.xml documents in the EE 9 namespace

    Changes in 5.3.18.Final (August 5th, 2020)

    https://hibernate.atlassian.net/projects/HHH/versions/31849/tab/release-report-all-issues

    ** Bug * [HHH-12268] - LazyInitializationException thrown from lazy collection when batch fetching enabled and owning entity refreshed with lock * [HHH-13110] - @โ€‹PreUpdate method on a Embeddable null on the parent caused NullPointerException * [HHH-13936] - No auto transaction joining from SessionImpl.doFlush * [HHH-14077] - CVE-2019-14900 SQL injection issue using JPA Criteria API

    ** Task * [HHH-14013] - Upgrade to Hibernate Validator 6.0.20.Final * [HHH-14096] - Removal of unused code: XMLHelper and its SAXReader factory helper * [HHH-14103] - Add test cases showing that an entity's transient attribute can be overridden to be persistent in entity subclasses

    Changes in 5.3.17.Final (April 30th, 2020)

    ... (truncated)

    Commits
    • 64be512 5.3.20
    • bc8e38a HHH-14325 - Add Query hint for specifying "query spaces" for native queries
    • d5067ec HHH-14325 - Add Query hint for specifying "query spaces" for native queries
    • 2896372 HHH-14257 Add test for issue
    • 00b3ccb HHH-14257 An Entity A with a map collection having as index an Embeddable wit...
    • bf0b86d HHH-14324 Add .gradletasknamecache to .gitignore
    • d22bbb5 HHH-14225 CVE-2020-25638 Potential for SQL injection on use_sql_comments logg...
    • d48e19d 5.3.19
    • 3f3d38d 5.3.19
    • 23dd258 5.3.19
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump hibernate-core from 3.6.10.Final to 5.3.20.Final in /spring/junit4-spring3

    Bump hibernate-core from 3.6.10.Final to 5.3.20.Final in /spring/junit4-spring3

    Bumps hibernate-core from 3.6.10.Final to 5.3.20.Final.

    Release notes

    Sourced from hibernate-core's releases.

    Hibernate ORM 5.2.0

    5.2.0 includes many improvements and bug-fixes. For a complete list of changes, see https://hibernate.atlassian.net/projects/HHH/versions/23150/tab/release-report-done.

    Many of the changes in 5.2.0 have important ramifications in terms of both usage and extension. Be sure to read the 5.2 Migration Guide for details.

    Below is a discussion of the major changes.

    Java 8 baseline

    5.2 moves to Java 8 as its baseline. This means:

    • The hibernate-java8 module has been removed, and that functionality has been moved into hibernate-core.
    • Native support for Java 8 date/time types as Query parameters.
    • Support for streaming (java.util.stream.Stream) query results.
    • Support for java.util.Optional as return from methods that may return null.
    • Leveraging Java 8 "default methods" when introducing new methods to extension points.

    Consolidating JPA support into hibernate-core.

    That effectively means that the hibernate-entitymanager module no longer exists. Its functionality being consumed into hibernate-core.

    JCache support

    Support for using any JCache-compliant cache impl as a second-level caching provider.

    Session-level batch size support

    Support has been added for specifying a batch size for write operations per Session.

    5th bug-fix release for 5.0

    The 5th bug-fix release for Hibernate ORM 5.0. This release and the upcoming 5.0.6 release have been done on an accelerated time-box of 2 weeks (from the normal 4 weeks for bug-fix releases) due to US holidays.

    The complete list of changes can be found here (or here for people without a Hibernate Jira account).

    For information on consuming the release via your favorite dependency-management-capable build tool, see http://hibernate.org/orm/downloads/

    For those of you allergic to dependency-management-capable build tools, the release bundles can be obtained from SourceForge or BinTray.

    Fourth bug-fix release for 5.0

    The fourth bug-fix release for Hibernate ORM 5.0

    There are 52 issues resolved in this release. 20 of those came out of the recent Jira cleanup. Initially that initiative pulled in roughly 750 issues. To date, 66 of those have been resolved - fixed or verified as out-of-date, unable-to-reproduce, etc. An additional 14 have been more properly reclassified as feature or enhancement requests rather than bugs. The really cool part is the amount of community help we have gotten in making that happen! Thanks to everyone responding, verifying and even fixing alot of these bugs!

    The complete list of changes can be found here. People without a Hibernate Jira account will not be able to access the previous link and can access the changelog in GitHub; the issue I reported with Atlassian has been resolved and is ready for deployment into our hosted environment, I just do not know when that will happen.

    For information on consuming the release via your favorite dependency-management-capable build tool, see http://hibernate.org/orm/downloads/

    For those of you allergic to dependency-management-capable build tools, the release bundles can be obtained from SourceForge or BinTray.

    Third bug-fix release for 5.0

    http://in.relation.to/2015/10/28/hibernate-orm-503-final-release/

    ... (truncated)

    Changelog

    Sourced from hibernate-core's changelog.

    Changes in 5.3.20.Final (November 16th, 2020)

    https://hibernate.atlassian.net/projects/HHH/versions/31894/tab/release-report-all-issues

    ** Bug * [HHH-14257] - An Entity A with a map collection having as index an Embeddable with a an association to the Entity A fails with a NPE

    ** Task * [HHH-14225] - CVE-2020-25638 Potential for SQL injection on use_sql_comments logging enabled * [HHH-14324] - Add .gradletasknamecache to .gitignore

    ** Improvement * [HHH-14325] - Add Query hint for specifying "query spaces" for native queries

    Changes in 5.3.19.Final (November 10th, 2020)

    https://hibernate.atlassian.net/projects/HHH/versions/31874/tab/release-report-all-issues

    ** Bug * [HHH-13310] - getParameterValue() not working for collections * [HHH-14275] - Broken link to Infinispan User Guide in Hibernate 5.3 User Guide

    ** Task * [HHH-14309] - Improve BulkOperationCleanupAction#affectedEntity

    ** Sub-task * [HHH-14196] - Add parsing of persistence.xml/orm.xml documents in the EE 9 namespace

    Changes in 5.3.18.Final (August 5th, 2020)

    https://hibernate.atlassian.net/projects/HHH/versions/31849/tab/release-report-all-issues

    ** Bug * [HHH-12268] - LazyInitializationException thrown from lazy collection when batch fetching enabled and owning entity refreshed with lock * [HHH-13110] - @โ€‹PreUpdate method on a Embeddable null on the parent caused NullPointerException * [HHH-13936] - No auto transaction joining from SessionImpl.doFlush * [HHH-14077] - CVE-2019-14900 SQL injection issue using JPA Criteria API

    ** Task * [HHH-14013] - Upgrade to Hibernate Validator 6.0.20.Final * [HHH-14096] - Removal of unused code: XMLHelper and its SAXReader factory helper * [HHH-14103] - Add test cases showing that an entity's transient attribute can be overridden to be persistent in entity subclasses

    Changes in 5.3.17.Final (April 30th, 2020)

    ... (truncated)

    Commits
    • 64be512 5.3.20
    • bc8e38a HHH-14325 - Add Query hint for specifying "query spaces" for native queries
    • d5067ec HHH-14325 - Add Query hint for specifying "query spaces" for native queries
    • 2896372 HHH-14257 Add test for issue
    • 00b3ccb HHH-14257 An Entity A with a map collection having as index an Embeddable wit...
    • bf0b86d HHH-14324 Add .gradletasknamecache to .gitignore
    • d22bbb5 HHH-14225 CVE-2020-25638 Potential for SQL injection on use_sql_comments logg...
    • d48e19d 5.3.19
    • 3f3d38d 5.3.19
    • 23dd258 5.3.19
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump postgresql from 42.4.1 to 42.4.3 in /sql/sql-testcontainers-test/postgresql-test

    Bump postgresql from 42.4.1 to 42.4.3 in /sql/sql-testcontainers-test/postgresql-test

    Bumps postgresql from 42.4.1 to 42.4.3.

    Changelog

    Sourced from postgresql's changelog.

    Changelog

    Notable changes since version 42.0.0, read the complete History of Changes.

    The format is based on Keep a Changelog.

    [Unreleased]

    Changed

    Added

    Fixed

    [42.5.1] (2022-11-21 15:21:59 -0500)

    Security

    • security: StreamWrapper spills to disk if setText, or setBytea sends very large Strings or arrays to the server. createTempFile creates a file which can be read by other users on unix like systems (Not macos). This has been fixed in this version fixes CVE-2022-41946 see the security advisory for more details. Reported by Jonathan Leitschuh This has been fixed in versions 42.5.1, 42.4.3 42.3.8, 42.2.27.jre7. Note there is no fix for 42.2.26.jre6. See the security advisory for work arounds.

    Fixed

    [42.5.0] (2022-08-23 11:20:11 -0400)

    Changed

    [42.4.2] (2022-08-17 10:33:40 -0400)

    Changed

    • fix: add alias to the generated getUDT() query for clarity (PR #2553)[https://github-redirect.dependabot.com/pgjdbc/pgjdbc/pull/2553]

    Added

    Fixed

    • fix: regression with GSS. Changes introduced to support building with Java 17 caused failures [Issue #2588](pgjdbc/pgjdbc#2588)
    • fix: set a timeout to get the return from requesting SSL upgrade. [PR #2572](pgjdbc/pgjdbc#2572)
    • feat: synchronize statement executions (e.g. avoid deadlock when Connection.isValid is executed from concurrent threads)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Issue with hierarchy of unit-tests classes

    Issue with hierarchy of unit-tests classes

    Describe the bug I consider some tests based on an abstract method:

    @RunWith(QuickPerfJUnitRunner.class)
    public abstract class ATest {
    
    	protected abstract void benchMe();
    
    	@MeasureHeapAllocation
    	@Test
    	public void testHeapAllocation() {
    		benchMe();
    	}
    }
    

    and the implementation in a sub-class:

    @RunWith(QuickPerfJUnitRunner.class)
    public class Test extends ATest {
    
    	@Override
    	protected void benchMe() {
    		// empty
    	}
    }
    

    Expected behavior Run smoothly

    Actual behavior

    It fails with:

    	at org.quickperf.issue.PerfIssuesEvaluator.evaluatePerfIssuesIfNoJvmIssue(PerfIssuesEvaluator.java:45)
    	at org.quickperf.junit4.MainJvmAfterJUnitStatement.evaluate(MainJvmAfterJUnitStatement.java:62)
    	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
    	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
    	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
    	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
    	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
    	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
    	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
    	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
    	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
    	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
    	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
    	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
    	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:93)
    	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
    Caused by: java.lang.IllegalStateException: java.io.FileNotFoundException: /var/folders/8b/p64c8tfs4d7gf3v8tcmwbz580000gn/T/QuickPerf-521872497461803058/allocation.ser (No such file or directory)
    	at org.quickperf.repository.ObjectInputStreamBuilder.buildFileInputStream(ObjectInputStreamBuilder.java:46)
    	at org.quickperf.repository.ObjectInputStreamBuilder.buildObjectInputStream(ObjectInputStreamBuilder.java:28)
    	at org.quickperf.repository.LongFileRepository.retrieveLongValueFromFile(LongFileRepository.java:42)
    	at org.quickperf.repository.LongFileRepository.find(LongFileRepository.java:37)
    	at org.quickperf.jvm.allocation.AllocationRepository.findAllocation(AllocationRepository.java:32)
    	at org.quickperf.jvm.allocation.bytewatcher.ByteWatcherRecorder.findRecord(ByteWatcherRecorder.java:45)
    	at org.quickperf.jvm.allocation.bytewatcher.ByteWatcherRecorder.findRecord(ByteWatcherRecorder.java:19)
    	at org.quickperf.issue.PerfIssuesEvaluator.findPerfRecord(PerfIssuesEvaluator.java:91)
    	at org.quickperf.issue.PerfIssuesEvaluator.buildPerfRecordByAnnotation(PerfIssuesEvaluator.java:81)
    	at org.quickperf.issue.PerfIssuesEvaluator.evaluatePerfIssuesIfNoJvmIssueWithPotentialUnexpectedException(PerfIssuesEvaluator.java:59)
    	at org.quickperf.issue.PerfIssuesEvaluator.evaluatePerfIssuesIfNoJvmIssue(PerfIssuesEvaluator.java:38)
    	... 19 more
    	Suppressed: java.lang.InstantiationException
    Caused by: java.io.FileNotFoundException: /var/folders/8b/p64c8tfs4d7gf3v8tcmwbz580000gn/T/QuickPerf-521872497461803058/allocation.ser (No such file or directory)
    	at java.base/java.io.FileInputStream.open0(Native Method)
    	at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
    	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
    	at org.quickperf.repository.ObjectInputStreamBuilder.buildFileInputStream(ObjectInputStreamBuilder.java:44)
    	... 29 more
    

    To Reproduce (Please provide a link to a live example or steps to reproduce this behavior.)

    Versions

    • QuickPerf: 1.1.0
    • JDK: 17
    :bug: bug 
    opened by blacelle 0
Releases(release-1.1.0)
Owner
Quickly evaluate and improve performance-related properties
null
A lightweight and extensible library to resolve application properties from various external sources.

Externalized Properties A lightweight and extensible library to resolve application properties from various external sources. Twelve Factor Methodolog

Joel Jeremy Marquez 20 Nov 29, 2022
A lightweight and extensible library to resolve application properties from various external sources.

Externalized Properties A lightweight and extensible library to resolve application properties from various external sources. Twelve Factor Methodolog

Joel Jeremy Marquez 20 Nov 29, 2022
Event promoted by DevSuperior to improve the best practices of Spring with Java and has React JS as an additional.

Semana-Spring-React (sds3.0) Introduction SDS3 is an event promoted by DevSuperior which aims to help students and programming professionals to enter

Gilson Vieira de Souza 5 Oct 25, 2021
An experimental mod that converts some block entities to blockstates. This is done for performance & functionality reasons.

BetterBlockStates An experimental mod that converts some block entities to blockstates. This is done for performance & functionality reasons. Current

Fx Morin 10 Sep 17, 2022
A small mod to improve support for architectures and libraries officially unsupported by Minecraft. Mainly targeting Apple Macs using arm processors.

fabric-loom-native-support A small mod to improve support for architectures and libraries officially unsupported by Minecraft. Mainly targeting Apple

FabricMC 5 Oct 17, 2022
Generate and read big Excel files quickly

fastexcel fastexcel-writer There are not many alternatives when you have to generate xlsx Excel workbooks in Java. The most popular one (Apache POI) i

Cegid Conciliator 449 Jan 1, 2023
This repository contains Java programs to become zero to hero in Java. Programs related to each and every concep are present from easy to intermidiate level.

Learn Java Programming In this repository you will find topic wise programs of java from basics to intermediate. This follows topic wise approach that

Sahil Batra 15 Oct 9, 2022
This repository shows how to natively extend Quarkus with a custom ConfigSource to use AWS AppConfig values when injecting config properties with @ConfigProperty.

Using AWS AppConfig in a custom MicroProfile ConfigSource This repository shows how to natively extend Quarkus with a custom ConfigSource to use AWS A

AWS Samples 8 May 19, 2022
Scan and patch tool for CVE-2021-44228 and related log4j concerns.

A Log4J2 CVE-2021-44228 Vulnerability Scanner and Patcher Links to download the latest version: Linux x64 with glibc2.17+ (RHEL7+) Windows & all other

SAS Software 33 Jun 1, 2022
This repository is related to the Java Web Developer (ND035), Course - Web Services and APIs

About this Repository This repository is related to the Java Web Developer (ND035), Course - Web Services and APIs It contains the following folders:

Rasha Omran 1 Jan 28, 2022
Java related projects and also a begginer level projects

Java related projects and also a begginer level projects

Akshit Sijwali 3 Dec 15, 2022
Deploy this ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ BLAZING FAST ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ API to get instant access to โœจโœจโœจ INNOVATIVE โœจโœจโœจ API to quickly define whether the numbers are odd or even.

Is Odd API This ?? is ?? ?? a ?? simple API that ?? returns ?? whether ?? ?? a ?? number ?? ?? is ?? ?? odd ?? or ?? not. โ™‚ With ?? ?? this ?? ?? API

rferee 5 Sep 23, 2022
All development related with the ONLYONE token.

onlyone All development related with the Onlyone Finance. ONLYONE Token Total Supply: 1 Contract creation: https://bscscan.com/tx/0x1becbd78297f267dec

Onlyone Finance 73 Jan 1, 2023
Integrated related support for Spring Boot projects

Table of Contents xyz-support ไป‹็ป ๅผ•ๅ…ฅ ๅฝ“ๅ‰ๅผ•็”จSpring Boot็‰ˆๆœฌ ๅฝ“ๅ‰ๅผ•็”จๅค–้ƒจไพ่ต–็š„็‰ˆๆœฌ ๅฝ“ๅ‰ๅทฒๆ”ฏๆŒ็š„ๆœๅŠก ๆ–‡ไปถ๏ผˆๅฏน่ฑกๅญ˜ๅ‚จ๏ผ‰ๆœๅŠก ๆ–‡ๆกฃๆœๅŠก ๆ‰‹ๅ†Œ ๆ–‡ไปถ๏ผˆๅฏน่ฑกๅญ˜ๅ‚จ๏ผ‰ๆœๅŠก ้…็ฝฎ ไฝฟ็”จไพ‹ๅญ apiไป‹็ป ๆ–‡ๆกฃๆœๅŠก excelๆœๅŠก ้…็ฝฎ ไฝฟ็”จไพ‹ๅญ apiไป‹็ป xyz-

xiaoyezi 3 Oct 20, 2021
"Some" Utilities you can use for your Java projects "freely"! Files are compiled with Java-8 and above, but mostly Java-11.

โœจ Java-SomeUtils ?? "Some" Utilities you can use for your Java projects "freely"! *"Freely"* forcing you to include the license into your program. Fil

JumperBot_ 2 Jan 6, 2023
Some DMOJ solutions mostly in Java and C++

Select DMOJ Solutions Select DMOJ solutions mostly in Java and C++ Most of these solutions are for 5 and 7 point problems There are also a lot of CCC

Akshar Barot 2 Oct 4, 2022
A unit testing library for varying test data.

Burst A unit testing library for varying test data. DEPRECATED: Burst remains stable and functional, but you should check out TestParameterInjector fr

Square 464 Oct 9, 2022
Practice and testing with Java 11, Prometheus, and Spring-boot with MicroService Architecture. Designed to run on Kubernetes in minikube.

This application was written by Andrew Aslakson Built to run on minikube using kubernetes General race tracking system? Secure with Firebase Authentic

null 1 Feb 5, 2022
A React Native project starter with Typescript, a theme provider with hook to easy styling component, a folder architecture ready and some configs to keep a codebase clean.

React Native Boilerplate Folder structure : src โ”œโ”€โ”€ assets โ”‚ย ย  โ”œโ”€โ”€ audios โ”‚ย ย  โ”œโ”€โ”€ fonts โ”‚ย ย  โ”œโ”€โ”€ icons โ”‚ย ย  โ””โ”€โ”€ images โ”œโ”€โ”€ components โ”‚ย ย  โ”œโ”€โ”€ Layout.tsx

LazyRabbit 23 Sep 1, 2022