Review: Spring Data JPA Reference

TL;DR: Recommended?
Really good read! ⭐️⭐️⭐️⭐️
Read Online as:

After reading the spring boot reference in november, I wanted to know more in depth knowledge of spring data. That's why I read the official spring data jpa reference.

Something new to me is, that you can use _ in spring data repository interface names to give a hint to the query builder. So:

List<Person> findByAddress_ZipCode(ZipCode zipCode);
// resolves to address.zipCode or address.zip.code
Continue reading ...

In java, read, spring, spring-boot, spring-data by DracoBlue @ 31 Mar 2016 | 243 Words

Fix DOM Exception 5 invalid character with atob

When I was developing on http://web.twtxt.org I ran into this mysterious javascript error:

InvalidCharacterError: DOM Exception 5: An invalid or illegal character was specified, such as in an XML name.
(anonyme Funktion)bundle.js:245

The source code in question took a base64 encoded content of the github api and converted it with window.atob into an utf8 string.

This worked well except for safari on iOS!

Continue reading ...

In ios, javascript, safari by DracoBlue @ 21 Mar 2016 | 220 Words

Local Elasticsearch Cluster Status = RED

If you want to check the status of your local single node elasticsearch development server, you can query the cluster stats endpoint at maybe http://localhost:9200/_cluster/health?level=indices.

  "cluster_name": "erstmal",
  "status": "red",
  "number_of_nodes": 1,
  "assigned_shards": 4,
  "unassigned_shards": 126

If this status shows "red" and you can see lots of unassigned_shards here, you have a problem.

Continue reading ...

In elasticsearch, open source by DracoBlue @ 31 Jan 2016 | 268 Words

Uploading Snapshots and Releases to Maven Central with Travis

When I was developing on the http-response-headers open source library for spring boot, I was curious how difficult it would be to make this available at maven central. And of course: everything should work automatically with travis ;).

To make your jars available at http://search.maven.org/, you can submit your open source project to "Sonatype OSSRH".

Basically you have 3 steps (OSSRH Guide):

  1. Create a Jira Account at Sonatype
  2. Create a Project Ticket
  3. Deploy to https://oss.sonatype.org/content/repositories/snapshots or https://oss.sonatype.org/service/local/staging/deploy/maven2/. Therefor you need to:
    • Modify your pom.xml
    • Add build plugins for binaries, javadoc and sources jar files and gpg signing
    • Create a gpg key
    • Sign your builds
    • Integrate this with travis secured environment variables

The steps 1 and 2 took me some minutes and the response of the sonatype staff came a workday later. Nice.

Since I wanted to automate step 3, the following lines are more like a reminder for myself how I got this working. You can follow the following steps to set this up for your self, too.

Continue reading ...

In gradle, java, maven, nexus, open source, travis by DracoBlue @ 31 Jan 2016 | 1728 Words

Versioning for Java Componentes and Libraries

While reading in Chapter 13 "Managing Components and Dependencies" of Continous Delivery (July 2010, Addision Weslay) I asked myself how would one implement this if you implement the components (parts of the system, which change often) and libraries (internal/external parts, which change very seldom) in your own project.

A while back (1) for example contributing to PHPUnit was kinda tricky. You had to git clone the main repository and 11 different component repositorys. If you wanted to change something in these components, you could do that there. If you run continous integration, every change to those components needed to be in git master of those components. But how does one do a release then? Lots of tooling and in the end the release version number was hardcoded (2) and committed.

I am pretty sure that you know of some java project with dependencies, which work in a similar fashion.

When discussing this with my co-workers at exozet, we have been thinking how one approaches these concerns of lean development and safe releases with Java and Maven (or gradle). Of course we are using SemVer 2.0 as semantic versioning strategy. So I want to present an approach, which I infered out of the books example and would like to hear your opinion!

Continue reading ...

In gradle, java, maven, nexus, open source by DracoBlue @ 09 Jan 2016 | 1173 Words

Page 2 - Page 3 - Page 4