Delivered once every Week. No Spam Ever.

Issue - 4


Worthy Read

By now, everybody is aware that configurable application properties should reside outside your artifact (war, jar, ear). We don't want to release a new version of your application/service, just to change a config file. Furthermore, we want the production artifact, to be identical to the object of development, test, etc.
java
,
Spring

A look at ten common code smells, or code that violates design principles, in Java. Recognize any in your applications? Smells are structures in code that violate design principles and negatively impact quality [1].Here are some of the bad smells inJava code.1. Constant Interface.Constant interfaces have only static final data members declared in them without any methods. Suggested refactoring for thissmelldepends on kind of constants present in the constant interface: the constants can get added as members in the classorcan be rewritten as enums. The interface java.io.ObjectStreamConstant is an example for thissmell.
java

Many of the Java web applications we develop at Fitbit leverage Hibernate as an object-relational mapping (ORM) framework. Hibernate provides many abstractions around pluggable services used by the framework. In most situations, there is no need to go beyond the default implementations. One common exception is the ConnectionProvider, which Hibernate uses to both open and close connections to the database.
orm
,
Hibernate
,
java

In 2002, Joel Spolskycoined something he called “The Law of Leaky Abstractions.” In software,an “abstraction” hides complexity of an underlying system from those using the abstraction. Examples abound, but for a quick understanding, think of an ORM hiding from you the details of database interaction.The Law of Leaky Abstractions states that“all non-trivial abstractions, to some degree, are leaky.” “Leaky” indicates that the abstraction fails to adequately hide its internal details. Imagine, for instance,that while modifying the objects generated by your ORM, you suddenly needed to manage the particulars of some SQL query. The abstraction leaked, forcing you to understand the details that it was supposed to hide.
java

In Java 9, they have enhanced deprecation via an updated @Deprecated tag with date and details.

Android Nougat introduces support for Java 8 language features that you can use when developing apps that target Android version 24 from minSdkVersion 9 and up. We don’t need retrolambda no more :)
android.
,
java

This post shows how you can implement a custom Spring Boot Actuator endpoint that prints information about all active HttpSessions
java
,
Spring

To no one's surprise, troubled Java Enterprise Edition (EE) 8 is likely to miss its target release date of the first half of next year, minutes of a recent Java Community Process (JCP) meeting reveal. But on the bright side, editions of Java Standard Edition (SE) might now happen every year as opposed to every three years or so.
java

Usually during database development, few people are willing to use JDBC unless they're learning. As we all know, Java code is verbose, even moreso with JDBC! So we often use frameworks/libraries to access a database. There are many ORM frameworks available, for example: Hibernate, MyBatis, JdbcTemplate, DbUtils, ActiveRecord, JavaLite, etc. Many times, the framework can help us avoid writing SQL, but for some complex queries, hand-coded SQL is a must. Although the framework can do the mapping from SQL's ResultSet to a DTO (Data Transfer Object), we have to write those DTOs by hand, one by one.
java

When you are developing in the object-oriented paradigm and you have to persist your objects via relational storage, there are, basically, two ways of doing it: using an ORM or using the database connectivity API that the language provides. What is the factor when choosing between one or the other?
orm
,
java

Due to my Android development background, I am more used to Gradle than to Maven. Although I knew that Gradle was based on Maven, I had never investigated what was going on behind the scenes. During the last week, I have been trying to understand the details and find out what are the different Maven's components

Jenkins is a widely used tool, but not everyone uses it in the same way. While some enjoy its test automation abilities, others take advantage of its full automating capabilities, from the code commit through the build, test and up to deployment. These advanced users are fulfilling the complete continuous integration (CI) vision, which thoroughly facilitates and improves development processes.

In this article, we will discuss how to design a fluent API in Java. The term Fluent interface was coined by Martin Fowler and Eric Evans. Fluent API means to build an API in such way so that it meets the following criteria:The API user can understand the API very easily.The API can perform a series of actions in order to finish a task. In Java, we can do it with a series of method calls (chaining of methods).Each method's name should be domain-specific terminology.The API should be suggestive enough to guide API users on what to do next and what possible operations users can take at a particular moment.Suppose you want to design an API for a domain, say Retail, so there should be some common terminology that exists in theRetail domain, and for a certain context (Task), it will take a series of actions to finish this task. Say for an invoice generation, it has to follow certain steps.
java

I am happy to release the first milestone for Spring Cloud Spinnaker. Spring Cloud Spinnaker bundles up the continuous delivery Spinnaker platform, and provides a 1-click installer to let you install it to any certified Cloud Foundry provider.
java
,
Spring

Jaybird 3.0 is a big change from Jaybird 2.2 and earlier. We have rewritten the entire low-level implementation to be able to support protocol improvements in newer Firebird versions, made changes with a stricter interpretation of the JDBC requirements, and removed some parts that were either obsolete or not functioning correctly.
java


Projects

RxJava - 16335 Stars, 2835 Fork
RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.

Event Driven Architecture - 13169 Stars, 4461 Fork
Implementation of Event Driven Architecture

MBassador - 366 Stars, 68 Fork
An event bus aiming at ease of use and performance. Features: Declarative listener definition via annotations, sync and/or async event delivery, weak-references, message filtering

A Simple Event Dispatcher for Java.