Java EE 7 Samples

Overview

Java EE 7 Samples

This workspace consists of Java EE 7 Samples and unit tests. They are categorized in different directories, one for each Technology/JSR.

Some samples/tests have documentation, otherwise read the code. The Java EE 7 Essentials book refers to most of these samples and provides an explanation. Feel free to add docs and send a pull request.

How to run?

Samples are tested on Payara, GlassFish, Wildfly and more using the Arquillian ecosystem.

A brief instruction how to clone, build, import and run the samples on your local machine @radcortez provides in this sample video https://www.youtube.com/watch?v=BB4b-Yz9cF0

Only one container profile can be active at a given time otherwise there will be dependency conflicts.

There are 16 available container profiles, for 6 different servers:

  • Payara and GlassFish

    • payara-ci-managed

      This profile will install a Payara server and start up the server per sample. Useful for CI servers. The Payara version that's used can be set via the payara.version property. This is the default profile and does not have to be specified explicitly.

    • payara-embedded

      This profile uses the Payara embedded server and runs in the same JVM as the TestClass. Useful for development, but has the downside of server startup per sample.

    • payara-remote

      This profile requires you to start up a Payara server outside of the build. Each sample will then reuse this instance to run the tests. Useful for development to avoid the server start up cost per sample.

      This profile supports for some tests to set the location where Payara is installed via the glassfishRemote_gfHome system property. E.g.

      -DglassfishRemote_gfHome=/opt/payara171

      This is used for sending asadmin commands to create container resources, such as users in an identity store.

    • glassfish-embedded

      This profile uses the GlassFish embedded server and runs in the same JVM as the TestClass. Useful for development, but has the downside of server startup per sample.

    • glassfish-remote

      This profile requires you to start up a GlassFish server outside of the build. Each sample will then reuse this instance to run the tests. Useful for development to avoid the server start up cost per sample.

      This profile supports for some tests to set the location where GlassFish is installed via the glassfishRemote_gfHome system property. E.g.

      -DglassfishRemote_gfHome=/opt/glassfish41

      This is used for sending asadmin commands to create container resources, such as users in an identity store.

  • WildFly

    • wildfly-ci-managed

      This profile will install a Wildfly server and start up the server per sample. Useful for CI servers. The WildFly version that's used can be set via the wildfly.version property.

    • wildfly-embedded

      This profile is almost identical to wildfly-ci-managed. It will install the same Wildfly server and start up that server per sample again, but instead uses the Arquillian embedded connector to run it in the same JVM. Useful for CI servers. The WildFly version that's used can be set via the wildfly.version property.

    • wildfly-remote

      This profile requires you to start up a Wildfly server outside of the build. Each sample will then reuse this instance to run the tests. Useful for development to avoid the server start up cost per sample.

    • wildfly-swarm

      This profile uses WildFly Swarm, which allows building uberjars that contain just enough of the WildFly application server. Here, the parts of WildFly that are included are selected based on inspecting the application and looking for the Java EE APIs that are actually used. The WildFly Swarm version that's used can be set via the wildfly.swarm.version property.

  • TomEE

    • tomee-ci-managed

      This profile will install a TomEE server and start up that server per sample. Useful for CI servers. This profile cannot connect to a running server.

      Note that the version of TomEE to be used has to be present in an available maven repository. The defaults in this profile assume that the arquillian adapter and the TomEE server have the same version. E.g both 7.0.0.

      To use a TomEE server that's not available in maven central, one way to use it for the samples is to install it in a local .m2 as follows:

      Clone TomEE repo:

      git clone https://github.com/apache/tomee cd tomee

      Switch to the desired version if needed, then build and install in .m2:

      mvn clean install -pl tomee/apache-tomee -am -Dmaven.test.skip=true

      mvn clean install -pl arquillian -amd -Dmaven.test.skip=true

      Make sure the version that's installed (see pom.xml in TomEE project) matches the tomee.version in the properties section in the root pom.xml of the samples project.

    • tomee-embedded

      This profile uses the TomEE embedded server and runs in the same JVM as the TestClass.

  • Liberty

    • liberty-managed

      This profile will start up the Liberty server per sample, and optionally connects to a running server that you can start up outside of the build (with the restriction that this server has to run on the host as where the tests are run using the same user).

      To connect to a running server the org.jboss.arquillian.container.was.wlp_managed_8_5.allowConnectingToRunningServer system property has to be set to true. E.g.

      -Dorg.jboss.arquillian.container.was.wlp_managed_8_5.allowConnectingToRunningServer=true

      This profile requires you to set the location where Liberty is installed via the libertyManagedArquillian_wlpHome system property. E.g.

      -DlibertyManagedArquillian_wlpHome=/opt/wlp

      This profile also requires the localConnector feature to be configured in server.xml, and if all tests are to be run the javaee-7.0 feature E.g.

      <featureManager>
          <feature>javaee-7.0</feature>
          <feature>localConnector-1.0</feature>
      </featureManager>

      For older versions of Liberty (pre 16.0.0.0) for the JASPIC tests to even be attempted to be executed a cheat is needed that creates a group in Liberty's internal user registry:

      <basicRegistry id="basic">
          <group name="architect"/>
      </basicRegistry>

      This cheat is not needed for the latest versions of Liberty (16.0.0.0/2016.7 and later)

    • liberty-ci-managed

      This profile will download and install a Liberty server and start up the server per sample. Useful for CI servers. Note, this is not a real embedded server, but a regular server. It's now called "embedded" because no separate install is needed as it's downloaded automatically.

  • Weblogic

    • weblogic-remote

      This profile requires you to start up a WebLogic server outside of the build. Each sample will then reuse this instance to run the tests.

      This profile requires you to set the location where WebLogic is installed via the weblogicRemoteArquillian_wlHome system property. E.g.

      -DweblogicRemoteArquillian_wlHome=/opt/wls12210

      The default username/password are assumed to be "admin" and "admin007" respectively. This can be changed using the weblogicRemoteArquillian_adminUserName and weblogicRemoteArquillian_adminPassword system properties. E.g.

      -DweblogicRemoteArquillian_adminUserName=myuser -DweblogicRemoteArquillian_adminPassword=mypassword

  • Tomcat

    • tomcat-remote

      This profile requires you to start up a plain Tomcat (8.5 or 9) server outside of the build. Each sample will then reuse this instance to run the tests.

      Tomcat supports samples that make use of Servlet, JSP, Expression Language (EL), WebSocket and JASPIC.

      This profile requires you to enable JMX in Tomcat. This can be done by adding the following to [tomcat home]/bin/catalina.sh:

      JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=8089 -Dcom.sun.management.jmxremote=true "
      JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false "
      JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
      JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=localhost "
      

      This profile also requires you to set a username (tomcat) and password (manager) for the management application in tomcat-users.xml. See the file test-utils/src/main/resources/tomcat-users.xml in this repository for a full example.

      Be aware that this should only be done for a Tomcat instance that's used exclusively for testing, as the above will make the Tomcat installation totally insecure!

    • tomcat-ci-managed

      This profile will install a Tomcat server and start up the server per sample. Useful for CI servers. The Tomcat version that's used can be set via the tomcat.version property.

The containers that download and install a server (the *-ci-managed profiles) allow you to override the version used, e.g.:

  • -Dpayara.version=4.1.1.163

    This will change the version from the current one (e.g 4.1.1.171.1) to 4.1.1.163 for Payara testing purposes.

  • -Dglassfish.version=4.1

    This will change the version from the current one (e.g 4.1.1) to 4.1 for GlassFish testing purposes.

  • -Dwildfly.version=8.1.0.Final

    This will change the version from the current one (e.g. 10.1.0.Final) to 8.1.0.Final for WildFly.

To run them in the console do:

  1. In the terminal, mvn test -fae at the top-level directory to start the tests for the default profile.

When developing and runing them from IDE, remember to activate the profile before running the test.

To learn more about Arquillian please refer to the Arquillian Guides

To run only a subset of the tests do at the top-level directory:

  1. Install top level dependencies: mvn clean install -pl "test-utils,util" -am
  2. cd into desired module, e.g.: cd jaspic
  3. Run tests against desired server, e.g.: mvn clean test -P liberty-ci-managed

How to contribute

With your help we can improve this set of samples, learn from each other and grow the community full of passionate people who care about the technology, innovation and code quality. Every contribution matters!

There is just a bunch of things you should keep in mind before sending a pull request, so we can easily get all the new things incorporated into the master branch.

Standard tests are jUnit based - for example this commit. Test classes naming must comply with surefire naming standards **/*Test.java, **/*Test*.java or **/*TestCase.java.

For the sake of clarity and consistency, and to minimize the upfront complexity, we prefer standard jUnit tests using Java, with as additional helpers HtmlUnit, Hamcrest and of course Arquillian. Please don't use alternatives for these technologies. If any new dependency has to be introduced into this project it should provide something that's not covered by these existing dependencies.

Some coding principles

  • When creating new source file do not put (or copy) any license header, as we use top-level license (MIT) for each and every file in this repository.
  • Please follow JBoss Community code formatting profile as defined in the jboss/ide-config repository. The details are explained there, as well as configurations for Eclipse, IntelliJ and NetBeans.

Small Git tips

  • Make sure your fork is always up-to-date. Simply run git pull upstream master and you are ready to hack.
  • When developing new features please create a feature branch so that we incorporate your changes smoothly. It's also convenient for you as you could work on few things in parallel ;) In order to create a feature branch and switch to it in one swoop you can use git checkout -b my_new_cool_feature

That's it! Welcome in the community!

CI Job

CI jobs are executed by Travis. Note that by the very nature of the samples provided here it's perfectly normal that not all tests pass. This normally would indicate a bug in the server on which the samples are executed. If you think it's really the test that's faulty, then please submit an issue or provide a PR with a fix.

Run each sample in Docker

  • Install Docker client from http://boot2docker.io

  • Build the sample that you want to run as

    mvn clean package -DskipTests

    For example:

    mvn -f jaxrs/jaxrs-client/pom.xml clean package -DskipTests

  • Change the second line in Dockerfile to specify the location of the generated WAR file

  • Run boot2docker and give the command

    docker build -it -p 80:8080 javaee7-sample

  • In a different shell, find out the IP address of the running container as:

    boot2docker ip

  • Access the sample as http://IP_ADDRESS:80/jaxrs-client/webresources/persons. The exact URL would differ based upon the sample.

Issues
  • Copyright notices and Licensing

    Copyright notices and Licensing

    We have a lot of files with the following header:

    <!-- 
    /*
    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
    *
    * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
    *
    * The contents of this file are subject to the terms of either the GNU
    * General Public License Version 2 only ("GPL") or the Common Development
    * and Distribution License("CDDL") (collectively, the "License").  You
    * may not use this file except in compliance with the License.  You can
    * obtain a copy of the License at
    * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
    * or packager/legal/LICENSE.txt.  See the License for the specific
    * language governing permissions and limitations under the License.
    *
    * When distributing the software, include this License Header Notice in each
    * file and include the License file at packager/legal/LICENSE.txt.
    *
    * GPL Classpath Exception:
    * Oracle designates this particular file as subject to the "Classpath"
    * exception as provided by Oracle in the GPL Version 2 section of the License
    * file that accompanied this code.
    *
    * Modifications:
    * If applicable, add the following below the License Header, with the fields
    * enclosed by brackets [] replaced by your own identifying information:
    * "Portions Copyright [year] [name of copyright owner]"
    *
    * Contributor(s):
    * If you wish your version of this file to be governed by only the CDDL or
    * only the GPL Version 2, indicate your decision by adding "[Contributor]
    * elects to include this software in this distribution under the [CDDL or GPL
    * Version 2] license."  If you don't indicate a single choice of license, a
    * recipient has the option to distribute your version of this file under
    * either the CDDL, the GPL Version 2 or to extend the choice of license to
    * its licensees as provided above.  However, if you add GPL Version 2 code
    * and therefore, elected the GPL Version 2 license, then the option applies
    * only if the new code is made subject to such option by the copyright
    * holder.
    */
    -->
    

    Should we start to remove it as we go along? The top-level LICENSE file already states:

    "Except where otherwise indicated, everything in this repository is licensed under the MIT license"

    And we also have Oracle references in the header. Any thoughts about this @arun-gupta, @aslakknutsen ?

    opened by radcortez 26
  • Create CI job for TravisCI

    Create CI job for TravisCI

    Alex Heusingfeld expressed interest in working on this.

    enhancement 
    opened by arun-gupta 24
  • How-To replace RestEasy with Jersey in WildFly

    How-To replace RestEasy with Jersey in WildFly

    Similar to #92 a How-To that explains replacing RestEasy with Jersey in WildFly would be useful. I wonder what implications this would have on any RestEasy usage that might be part of the WildFly administration console. I think it's nearly impossible to switch JAX-RS impls. in Glassfish for this reason, but I could be mistaken. If its not possible to replace at the AS level then a sample showing its usage in a WAR and EAR would be useful.

    new sample wildfly 
    opened by noahwhite 23
  • Add

    Add "jaspitest" security domain to standalone.xml of WildFly instances

    All JASPIC tests now fail because of a missing security domain. This security domain is a bit of an unfortunate thing (it actually shouldn't be needed, but for the moment it is)

    The required XML to be added in the "security-domains" tag is:

    <security-domain name="jaspitest" cache-type="default">
        <authentication-jaspi>
            <login-module-stack name="dummy">
                <login-module code="Dummy" flag="optional"/>
            </login-module-stack>
            <auth-module code="Dummy"/>
        </authentication-jaspi>
    </security-domain>
    
    opened by arjantijms 23
  • Add a TomEE 2.0 build profile

    Add a TomEE 2.0 build profile

    Let's add a TomEE 2.0 build profile, so that we can start testing out the new version of TomEE in web profile.

    Note that we'll need to use TomEE plus for now. I think at some point we need to add support for different profiles, and perhaps different test suites per container based on what should work.

    opened by johnament 22
  • Remove Groovy support?

    Remove Groovy support?

    This project has added a quite a bit of complexity in order to support Groovy for test files.

    I wonder, is this really worth it? Maybe I'm missing something, but I see only 3 .groovy files being used in the entire project.

    Besides the complexity vs usage, is it really a good idea to have tests in totally different formats? I would argue it's better for consistency to have all tests in the same format using the same testing system and same language.

    opened by arjantijms 21
  • Migrate CI build from CloudBees to OpenShift

    Migrate CI build from CloudBees to OpenShift

    What does everybody think ?

    Or use Travis ? Free offering ?

    opened by arun-gupta 18
  • New contribution to batch tests

    New contribution to batch tests

    Refactored common methods used by batch tests to project batch-test. Added new project to be imported as a test dependency. At the moment, we have a method to keep the test alive while the job is executing and another to convert the Metrics array to a more user friendly structure to retrieve values.

    Added new test for chuck-simple project.

    opened by radcortez 14
  • AccountSessionStatelessnessTest broken

    AccountSessionStatelessnessTest broken

    AccountSessionStatelessnessTest.should_deposit_amount_on_first_account() and AccountSessionStatelessnessTest.should_contain_already_deposited_amount_on_second_account() are broken are least for a pretty long time (search https://arungupta.ci.cloudbees.com/job/Java%20EE%207%20Samples%20on%20WildFly-cb/153/consoleFull for one of these test methods)

    I am also curious about the test scenario here. Actually a sateless bean is tested via stateful behaviour.

    opened by MichaelF25 13
  • Bump bcprov-jdk15on from 1.61 to 1.67

    Bump bcprov-jdk15on from 1.61 to 1.67

    Bumps bcprov-jdk15on from 1.61 to 1.67.

    Changelog

    Sourced from bcprov-jdk15on's changelog.

    2.1.1 Version Release: 1.70 Date:      TBD

    2.2.1 Version Release: 1.69 Date:      2021, June 7th.

    ... (truncated)

    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
  • mvn clean install error

    mvn clean install error

    image

    opened by hezhongfan 0
  • Bump logback-classic from 1.0.13 to 1.2.0 in /websocket/atmosphere-chat

    Bump logback-classic from 1.0.13 to 1.2.0 in /websocket/atmosphere-chat

    Bumps logback-classic from 1.0.13 to 1.2.0.

    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 resteasy-client from 3.0.19.Final to 4.5.7.Final

    Bump resteasy-client from 3.0.19.Final to 4.5.7.Final

    Bumps resteasy-client from 3.0.19.Final to 4.5.7.Final.

    Commits
    • f415411 [RESTEASY-2697] 4.5.7-SNAPSHOT->4.5.7.Final
    • 46ff8c7 [RESTEASY-2695] Unexpected/invalid sse event when mediaType is defined
    • 0473e23 Build to 4.5.7-SNAPSHOT
    • 1410fdd Needed to reset beanManager inside the extension for testing
    • 6d83e00 Add test to verify behavior
    • 0bec388 [RESTEASY-2685] Merge client headers with MP REST Client
    • beebf5d [RESTEASY-2689]:Add a test case
    • a90b583 RESTEASY-2678 - Fix test.
    • 00df849 [RESTEASY-2689] Fix SseEventOutputImpl wrong CompletionStage composition sequ...
    • c2f2521 [RESTEASY-2627] Chain thenCompose properly
    • 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
  • Create c1.html

    Create c1.html

    opened by vijay938 0
  • MalformedURL exception when try to run tests

    MalformedURL exception when try to run tests

    I have followed the video included in the README.md which explains how to run the samples.

    First, I have run the command mvn clean install -Dmaven-skip-test=true in the root directory of the project and I started wildfly server. Then I have executed the following command 'mvn clean install -Pwildfly-remote in the module servlet/cookies in order to see if the tests run successfully, but I got this error:

    [INFO] Results: [INFO] [ERROR] Errors: [ERROR] SimpleServletTest.testCookies:46 » MalformedURL For input string: "8080TestSer... [ERROR] SimpleServletTest.testHttpOnlyCookies:58 » MalformedURL For input string: "808... [INFO] [ERROR] Tests run: 2, Failures: 0, Errors: 2, Skipped: 0

    I have done a search on how to solve this problem, unfortonatly, I have not find any.

    Capture Capture

    Thank you for your help!

    opened by sroui 1
  • Change getSingleResult

    Change getSingleResult

    query.getSingleResult() causes an exception could be thrown if there is not exactly one row returned.

    Although this commit does not implement logic on how to decide which result in the result list should be taken, this removes the potential exception/need for a try/catch. Implementation on how to decide which result to take should be made per context.

    opened by Hk-tang 0
  • typo in batch-decision?

    typo in batch-decision?

    here http://javaee-samples.github.io/sample/batch-decision/ myJob.xml says: < next on="foobar" to="step3"/ > but the text says: Decider is always returning the value foobar which forwards the execution to step2

    shouldn't the xml also say to="step2" ?

    opened by pavelpetrovic 0
  • Support for Payara Micro Remote execution

    Support for Payara Micro Remote execution

    Adds profile payara-micro-remote that runs single Payara Micro instance for a test suite.

    Profile payara-micro-remote-control serves for starting and stopping such instance.

    Currently few tests fail: Security, because there's no security management in payara-micro-deployer, and EJB timers, that might hint at bug in deployment process

    opened by pdudits 1
A sample Spring-based application

Spring PetClinic Sample Application Understanding the Spring Petclinic application with a few diagrams See the presentation here Running petclinic loc

Spring 5.1k Sep 17, 2021
Modern Java - A Guide to Java 8

Modern Java - A Guide to Java 8 This article was originally posted on my blog. You should also read my Java 11 Tutorial (including new language and AP

Benjamin Winterberg 15k Sep 14, 2021
Spring Data Example Projects

Spring Data Examples This repository contains example projects for the different Spring Data modules to showcase the API and how to use the features p

Spring 4.2k Sep 7, 2021
Algorithms and Data Structures implemented in Java

Java : Algorithms and Data Structure The algorithms and data structures are implemented in Java. This is a collection of algorithms and data structure

Justin Wetherell 3.9k Sep 17, 2021
Design patterns implemented in Java

Design patterns implemented in Java Read in different language : CN, KR, FR, TR, AR Introduction Design patterns are the best formalized practices a p

Ilkka Seppälä 69.9k Sep 13, 2021
Solutions for some common algorithm problems written in Java.

Algorithms This repository contains my solution for common algorithms. I've created this repository to learn about algorithms and improve solutions to

Pedro Vicente Gómez Sánchez 2.7k Sep 8, 2021
Slicer4J is an accurate, low-overhead dynamic slicer for Java programs.

Slicer4J This repository hosts Slicer4J, an accurate, low-overhead dynamic slicer for Java programs. Slicer4J automatically generates a backward dynam

The Reliable, Secure, and Sustainable Software Lab 10 Sep 12, 2021
MCQs and coding questions solutions of Object-Oriented Programming java of coding ninjas

cn-java-sols (⌐■_■) Link to This repository Other similar repository of my friend Link ?? enjoy having full marks ?? ?? now answers avaible up to Stri

Sanyam Mahajan 10 Jul 12, 2021
Amazing Ruby's "Enumerable" ported to Java

Overview How to use? .all .any .none .select .map .count .reject .find How to contribute? Contributors Overview enumerable4j is a Ruby's well known En

Yurii Dubinka 28 Sep 5, 2021
Java 16 Features

Java 16 Features. Features are separated by package name.

Rahman Usta 10 Apr 7, 2021
Códigos do Bootcamp Java Básico DIO

Curso Java Básico Digital Innovation One https://digitalinnovation.one Tive a honra de fazer parceria com o pessoal da Digital Innovation One, com doi

Nicole Bidigaray 3 Jul 28, 2021
oursms.app client library

oursms java http://oursms.app client library Installation Get the project from jitpack or directly from here <repositories> <repository> <

Mouamle 16 Jul 22, 2021
Open-Source-Note是一个开源项目的学习笔记仓库,包含源码解析,实战指南和面试技巧,主要面向Java开发者

源码篇 实战篇 面试篇 架构篇 开源项目篇 1. 源码篇 ?? MyBatis MyBatis源码解析——Executor执行器 MyBatis源码解析——StatementHandler MyBatis源码解析——ResultSetHandler ?? Spring Spring MVC源码解析—

Miku 84 Sep 14, 2021
Rework of html-java-dsl to work with newer Javas

java-html-dsl Example DSL for writing html in Java. Rework of benjiman/java-html-dsl to work with newer versions of Java This String doc = html(

Benji Weber 16 Apr 18, 2021
Bitcoin SV Library for Java

Introduction Overview Bitcoin4J is a Bitcoin library for the Java Language licensed under the Apache License 2.0. This library has been built in line

null 12 Sep 18, 2021
Repository for Bryn and Ethan's Java with MicroServices Batch

210607-FeederProgram This repository houses examples and environment setup for the Revature feeder program beginning on 6/7/2021 Environment Setup Gui

Bryn Portella 14 Aug 19, 2021
http://kodlama.io "Java & React Bootcamp" up to date Lectures and Homeworks.

Java & React Bootcamp (https://kodlama.io/) Lectures Lecture 1 intro Lecture 2 oopIntro homework Lecture 3 oopIntro2 inheritance inheritance2 homework

Karcan Ozbal 257 Sep 15, 2021
Engin DEMIROG yotube java kamp HW

JavaBootCamp https://www.kodlama.io/courses/enrolled/1332369 Engin DEMIROG yotube javaBootCamp HW ve projeler Java & React Bootcamp (https://kodlama.i

Melik KARACA 8 Jul 9, 2021
A Java game Solitaire, made with JavaFX

Java Solitaire A game made with JavaFX Installation requirements: At least Java 11 installed. setup: 2.1. Intellij -> Open the file in the IDE and exe

Walter Alleyz 15 May 6, 2021