The concurrent programming model in the Java language has changed significantly in the past years. From “green threads” to native thread support, from synchronized, blocking operations to asynchronous, non-blocking, from mutable objects to immutable shared state.
Retrofit is a Java library created for the sole purpose of calling REST API easily. As will be shown below, we are basically going to need only some POJO representation of the expected API result, interface to define it, and object repsonsible for using Retrofit.
Spring Data JPA is a project from large Spring family. It helps to reduce the amount of code by easy implementation of JPA (Java Persistence API) based repositories. Its main feature is automatic creation of repository implementations at runtime.
RabbitMQ is a message-queueing software also known as a message broker or queue manager. In simple words, it is software where queues are defined, to which applications connect in order to transfer a message or messages. Message-queueing software offers persistence, delivery acknowledgements, publisher confirms and high availability. RabbitMQ client handling many languages. Most popular as Java and .Net or less as Ruby.
One of the Spring Boot project is Spring Boot Actuator. This starter brings you production-ready features to help you monitor, gathering metrics, understanding traffic or the state of database and manage your application.
It exposes operational information about the running application by HTTP endpoints or JMX beans. And the best part is - only thing you need to do is to include it in your dependencies!
Are you programmer?
Do you need no-code tool?
Probably your answer is **no**. Sometimes you need a fast app prototype and sometimes a non-technical person asks you "how to build mobile apps?" Thunkable is the answer.
In our first tutorial we showed you how to move your existing application (or set up new one) with Spring Boot. In this tutorial we want to show you how easy Spring Boot manage other parts of your application.
Spring Boot is an framework, based on top of Spring Framework, to build Java applications as fast as snapping fingers. It provides things such as connectivity to databases, metrics, auto-configuration. You don't have to configure the low level code to get up and running, just use Spring Boot and get off the ground very quickly.
It's also very good in case of developing your application - stop wasting your time for boilerplate configuration - just add some dependencies and run the application. It is as simple as it sounds.
Querydsl is a Java open-source project that supports statically typed queries. It provides a typesafe querying layer on top of JPA, JDO, JDBC and other backends through the use of various modules. The framework uses an annotation processor to generate Java types based on JPA entities. In this short article I’ll be focusing on Querydsl’s queries support for JPA and how it can be used as an alternative to Criteria Api. Of course the framework also allows to modify and delete records by JPAQueryFactory methods.
Vavr (formerly called Javaslang) is a functional library for Java 8+ that provides persistent data types and functional control structures. It enables writing Java code in a more functional way. It is inspired by Scala.
In this article we will take a closer look at Aspect Oriented Programming (AOP) with a little help from Spring Framework. AOP is powerful tool that can increase modularity, keep code clean and easier to read, maintain and develop.
Ratpack is a set of Java libraries that enable writing efficient HTTP applications. It’s built on Netty event-driven networking engine. In some cases it may be considered as better alternative to Java Servlet technology, since it’s non-blocking and event-driven.
I’ve been working with cucumber-java test framework for some time now and I must admit, I really like what is possible to achieve by using it. Of course, it is quite common in test automation, that more often it is required to do something that is nearly impossible than otherwise.
Java is not a functional programming language. Despite the fact that Java 8 came with some elements from functional world, there is still no way to write fully functional code in Java. One of the key aspect of functional programming is using monad. I am not going to describe what are monads but I will describe some of them and respond to the title question.
Purpose of unit tests is to test small chunks of code independently, in separation from any dependencies. In many cases to keep this kind of separation tools like Mockito come in handy. Mockito is mocking framework, Java library that allow to simulate calls on dependent objects instead of calling the real ones. A mock object returns a dummy data corresponding to dummy input passed to it.
You may have heard that checked exceptions in Java are evil. Some people even say that they are Java’s biggest mistake. There is a lot of languages like Scala, Kotlin, C# or C++ which don’t have checked exceptions at all. Unchecked exceptions are generally better choice. Undoubtedly, you are able to write your code without creating new checked exceptions. However, you have to deal with them constantly, because a lot of standard or popular libraries abuse them. In result, your Java code is full of ugly throw catch clauses. They interfere with a regular application control flow.
In this article, I’d like to take a look at the performance and the scalability of both blocking and non-blocking HTTP servers. I’ll compare average response time for multiple REST requests sent to simple endpoints built with Spring Boot and Ratpack.
In this article I'd like to show you how to test your API with Spock Framework. Spock is a testing framework for Java and Groovy applications. It extends JUnit runner and let us write shorter and more readable code. Spock supports unit testing, BDD and Mocking. It is also great for Data Driven Testing.
JMeter is an open-source JAVA-based load testing tool for measuring and analyzing performance of services and applications. It simulates user behavior by sending requests to server. It can be used for testing variety of protocols and services like HTTP, HTTPS, SOAP / REST Webservices, FTP, JDBC, LDAP, SMTP, POP3, IMAP and many others.
Parametrized tests are a lot easier to maintain. Usually when single requirement changes it’s enough to change one variable in the code. You don’t have to read the whole implementation of the test (If you know what your variable means).
In my opinion, Software Developer in Test job interviews are one of the most demanding interviews in IT market. How come?