First, exclude the JUnit bundled copy of hamcrest-core, and include the useful hamcrest-library, it contains many useful methods to test the List data type. pom.xml <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> <exclusions> <exclusion> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> </exclusion> </exclusions> </dependency> <!– This will get hamcrest-core automatically –> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-library</artifactId> <version>1.3</version> <scope>test</scope> </dependency> </dependencies> 1. Assert List […]

Read more JUnit – How to test a List

Try to check null value with the Hamcrest assertThat assertion, but no idea how? @Test public void testApp() { //ambiguous method call? assertThat(null, is(null)); } 1. Solution 1.1 To check null value, try is(nullValue), remember static import org.hamcrest.CoreMatchers.* //hello static import, nullValue here import static org.hamcrest.CoreMatchers.*; import org.junit.Test; //… @Test public void testApp() { //true, […]

Read more Hamcrest – How to assertThat check null value?

In Maven, you can declare the JUnit dependency like this: pom.xml <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> But, it comes with a bundled copy of hamcrest-core library. $ mvn dependency:tree … [INFO] \- junit:junit:jar:4.12:test [INFO] \- org.hamcrest:hamcrest-core:jar:1.3:test … 1. Maven + JUnit + Hamcrest Note Not a good idea to use the default […]

Read more Maven and JUnit example

This is a review of the showInputDialog() method of JOptionPane Class. With this method we can prompt the user for input while customizing our dialog window. The showConfirmDialog returns either String or Object and can be called using the following combinations of parameters: Object (returns String) – Shows a question-message dialog requesting input from the […]

Read more Java Swing – JOptionPane showInputDialog example

In Gradle, you can declare the JUnit dependency like this: build.gradle apply plugin: ‘java’ dependencies { testCompile ‘junit:junit:4.12’ } By default, JUnit comes with a bundled copy of hamcrest-core $ gradle dependencies –configuration testCompile testCompile – Compile classpath for source set ‘test’. \— junit:junit:4.12 \— org.hamcrest:hamcrest-core:1.3 1. Gradle + JUnit + Hamcrest Normally, we need […]

Read more Gradle and JUnit example

In Logback, it is easy to set a log file name programmatically : In logback.xml, declares a variable like ${log.name} In Java, set the variable via System.setProperty(“log.name”, “abc”) 1. Full example 1.1 A logback file, we will set the ${log.name} variable later. src/main/resources/logback.xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <property name="PRO_HOME" value="/home/mkyong/ant/logs" /> <property name="USER_HOME" value="${PRO_HOME}" /> […]

Read more Logback – Set log file name programmatically

Some MongoDB examples to show you how to perform group by, count and sort query. 1. Test Data A whois_range collection, containing many records. > db.whois_range.find(); { "_id" : 1, "country" : "us", "source" : "ARIN", "status" : "NEW", "createdDate" : ISODate("2016-05-03T08:52:32.434Z") }, { "_id" : 2, "country" : "us", "source" : "ARIN", "status" : […]

Read more MongoDB – group, count and sort example

Some Java reflection API examples. 1. Display all fields and data type A Java reflection example to loop over all the fields declared by a class. 1.1 A POJO. CompanyA.java package com.mkyong.test; import java.util.List; import java.util.Map; import java.util.Set; public class CompanyA { String orgName; int count; List<String> comments; Set<String> branches; Map<String, String> extra; //… } […]

Read more Java – find class fields with specified data type

This article explains the Java 8 Stream.flatMap and how to use it. Topic What is flatMap? Why flat a Stream? flatMap example – Find a set of books. flatMap example – Order and LineItems. flatMap example – Splits the line by spaces. flatMap and Primitive type 1. What is flatMap()? 1.1 Review the below structure. […]

Read more Java 8 flatMap example

In Java 8, you can either use Arrays.stream or Stream.of to convert an Array into a Stream. 1. Object Arrays For object arrays, both Arrays.stream and Stream.of returns the same output. TestJava8.java package com.mkyong.java8; import java.util.Arrays; import java.util.stream.Stream; public class TestJava8 { public static void main(String[] args) { String[] array = {"a", "b", "c", "d", […]

Read more Java – How to convert Array to Stream

In Java 8, Stream cannot be reused, once it is consumed or used, the stream will be closed. 1. Example – Stream is closed! Review the following example, it will throw an IllegalStateException, saying “stream is closed”. TestJava8.java package com.mkyong.java8; import java.util.Arrays; import java.util.stream.Stream; public class TestJava8 { public static void main(String[] args) { String[] […]

Read more Java – Stream has already been operated upon or closed

Suddenly, my Windows 10 is unable to create new folder: In desktop or C drive, right click, then “new” -> “folder” option is disappeared!? On C drive, the top “New folder” and “New Item” icons are malfunctioning, click on it, nothing will happen? In the command prompt, the mkdir command is working fine. 1. NewFolderFix.reg […]

Read more Windows 10 – Can not create new folder

In this article, we will show you how to use Java 8 Stream Collectors to group by, count, sum and sort a List. 1. Group By, Count and Sort 1.1 Group by a List and display the total count of it. Java8Example1.java package com.mkyong.java8; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; public […]

Read more Java 8 – Stream Collectors groupingBy examples

Some Java examples to show you how to override equals and hashCode. 1. POJO To compare two Java objects, we need to override both equals and hashCode (Good practice). User.java public class User { private String name; private int age; private String passport; //getters and setters, constructor } User user1 = new User("mkyong", 35, "111222333"); […]

Read more Java – How to override equals and hashCode

In Java, you can use == operator to compare Enum value. 1. Java Enum example Language.java package com.mkyong.java public enum Language { JAVA, PYTHON, NODE, NET, RUBY } 2. Compare with == Example to compare enum value with == operator. Test.java package com.mkyong.java public class Test { public static void main(String[] args) { // Covert […]

Read more Java – Compare Enum value

While the unit test is running in the IDE, the Logback is showing a lot of configuration or status like this : 21:16:59,569 |-INFO in ch.qos.logback.classic.LoggerContext[default] – Could NOT find resource [logback.groovy] 21:16:59,569 |-INFO in ch.qos.logback.classic.LoggerContext[default] – Could NOT find resource [logback-test.xml] 21:16:59,569 |-INFO in ch.qos.logback.classic.LoggerContext[default] – Found resource [logback.xml] at … //… omitted for […]

Read more Logback – Disable logging in Unit Test

In this tutorial, we will show you few Java 8 examples to demonstrate the use of Streams filter(), collect(), findAny() and orElse() 1. Streams filter() and collect() 1.1 Before Java 8, filter a List like this : BeforeJava8.java package com.mkyong.java8; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class BeforeJava8 { public static void main(String[] args) […]

Read more Java 8 Streams filter examples

In this article, we will show you a few StringJoiner examples to join String. 1. StringJoiner 1.1 Join String by a delimiter StringJoiner sj = new StringJoiner(","); sj.add("aaa"); sj.add("bbb"); sj.add("ccc"); String result = sj.toString(); //aaa,bbb,ccc 1.2 Join String by a delimiter and starting with a supplied prefix and ending with a supplied suffix. StringJoiner sj […]

Read more Java 8 – StringJoiner example

On Debian, you can use apt-cache policy ‘package name’ to check the package version. 1.1 Display Tomcat7 version. $ sudo apt-cache policy tomcat7 tomcat7: Installed: (none) Candidate: 7.0.52-1ubuntu0.3 Version table: 7.0.52-1ubuntu0.3 0 500 http://archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages 500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages 7.0.52-1 0 500 http://archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages 1.2 Display OpenJDK-7 version. $ sudo […]

Read more Debian – Show apt-get package version

This article shows you the difference between Mutable and Immutable objects in Java 1. Mutable object – You can change the states and fields after the object is created. For examples: StringBuilder, java.util.Date and etc. 2. Immutable object – You cannot change anything after the object is created. For examples: String, boxed primitive objects like […]

Read more Java – Mutable and Immutable Objects

By default, the Gradle build process will be stopped and failed if any unit test is failed. $ gradle build :clean :compileJava :processResources :classes :compileTestJava :processTestResources UP-TO-DATE :testClasses :test com.mkyong.example.TestExample > test_example FAILED java.lang.Exception at TestExample.java:9 //… 3 tests completed, 1 failed :test FAILED //… BUILD FAILED // <————– see status In this article, we […]

Read more Gradle – How to continue build if test is failed

By default, gradle test displays only the test summary. Terminal % gradle test BUILD SUCCESSFUL in 4s 6 actionable tasks: 3 executed, 3 up-to-date P.S Gradle test generates the detailed tests’ result at the build/reports/tests/test/index.html page. P.S Tested with Gradle 6.7.1 1. Display test result in the console. 1.1 We add the testLogging events to […]

Read more Gradle – How to display test result in the console

Gradle example to exclude commons-logging from Spring frameworks. build.gradle compile(‘org.springframework:spring-webmvc:4.2.4.RELEASE’){ exclude group: ‘commons-logging’, module: ‘commons-logging’ } If you have multiple Spring dependencies, you have to exclude for each build.gradle compile(‘org.springframework:spring-webmvc:4.2.4.RELEASE’){ exclude group: ‘commons-logging’, module: ‘commons-logging’ } compile(‘org.springframework:spring-test:4.2.4.RELEASE’){ exclude group: ‘commons-logging’, module: ‘commons-logging’ } A better solution is excluding commons-logging at the project level. build.gradle configurations.all […]

Read more Gradle – Exclude commons-logging from Spring

Create a Gradle project in Jenkins CI, source management with Git, and build with Gradle Wrapper 1. Problem Jenkins console output, the build is failed – “Could not find org.gradle.wrapper.GradleWrapperMain” [Gradle] – Launching build. [workspace] $ /var/lib/jenkins/jobs/GradleTest/workspace/gradlew clean test Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain Build step ‘Invoke Gradle script’ changed build […]

Read more Jenkins – Could not find GradleWrapperMain

A Gradle build + JaCoCo coverage report. build.gradle apply plugin: ‘java’ apply plugin: ‘eclipse-wtp’ apply plugin: ‘jacoco’ //code coverage repositories { mavenLocal() mavenCentral() } jacoco { toolVersion = "0.7.5+" } jacocoTestReport { reports { html.enabled = true xml.enabled = true csv.enabled = false } } P.S Tested with Gradle 2.10 1. Problem 1.1 Run the […]

Read more Gradle JaCoCo – Incompatible version 1006

In this tutorial, we will show you how to ‘hot deploy’ or ‘hot swap’ a web application in IDEA. Note Tested with Intellij IDEA 14 and 15 1. Select exploded WAR Go Run –>> Edit Configurations –>> “Deployment” tab, clicks + icon –>> select an “exploded artifact” 2. Update classes and resources Select “Server” tab, […]

Read more Intellij IDEA – Auto reload a web application (hot deploy)

In Maven, we can use the official JBoss WildFly Maven Plugin to deploy a web application (war file) to the WildFly application server. Technologies tested : Maven 3.3.9 WildFly 9.0.2.final WildFly Maven Plugin 1.1.0.Alpha5 P.S This Spring MVC web application will be used for this deployment test. 1. Deploy WAR To WildFly 1.1 Start WildFly […]

Read more Maven – Deploy web application to WildFly

Maven package a web application and hits the following error message : $ mvn package //… [ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project spring4-mvc-maven-ajax-example: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1] Solution 1. For servlet container < 3, make sure WEB-INF/web.xml file […]

Read more Maven – webxml attribute is required