Home » Author Archives: Remon Sinnema (page 4)

Author Archives: Remon Sinnema

How to Create Extensible Java Applications

osgi-alliance-logo

Many applications benefit from being open to extension. This post describes two ways to implement such extensibility in Java. Extensible Applications Extensible applications are applications whose functionality can be extended without having to recompile them and sometimes even without having to restart them. This may happen by simply adding a jar to the classpath, or by a more involved installation ...

Read More »

Using Cryptography in Java Applications

java-logo

This post describes how to use the Java Cryptography Architecture (JCA) that allows you to use cryptographic services in your applications. Java Cryptography Architecture Services The JCA provides a number of cryptographic services, like message digests and signatures. These services are accessible through service specific APIs, like MessageDigest and Signature. Cryptographic services abstract different algorithms. For digests, for instance, you ...

Read More »

Permissions in OSGi

osgi-alliance-logo

In a previous post, we looked at implementing a sandbox for Java applications in which we can securely run mobile code. This post looks at how to do the same in an OSGi environment. OSGi The OSGi specification defines a dynamic module system for Java. As such, it’s a perfect candidate for implementing the kind of plugin system that would ...

Read More »

Sandboxing Java Code

java-logo

In a previous post, we looked at securing mobile Java code. One of the options for doing so is to run the code in a cage or sandbox. This post explores how to set up such a sandbox for Java applications. Security Manager The security facility in Java that supports sandboxing is the java.lang.SecurityManager. By default, Java runs without a ...

Read More »

Signing Java Code

java-logo

In a previous post, we discussed how to secure mobile code. One of the measures mentioned was signing code. This post explores how that works for Java programs. Digital Signatures The basis for digital signatures is cryptography, specifically, public key cryptography. We use a set of cryptographic keys: a private and a public key. The private key is used to ...

Read More »

Building Both Security and Quality In

agile-logo

One of the important things in a Security Development Lifecycle (SDL) is to feed back information about vulnerabilities to developers. This post relates that practice to the Agile practice of No Bugs. The Security Incident Response Even though we work hard to ship our software without security vulnerabilities, we never succeed 100%. When an incident is reported (hopefully responsibly), we ...

Read More »

On Measuring Code Coverage

software-development-2-logo

In a previous post, I explained how to visualize what part of your code is covered by your tests. This post explores two questions that are perhaps more important: why and what code coverage to measure. Why We Measure Code Coverage What does it mean for a statement to be covered by tests? Well, it means that the statement was ...

Read More »

Behavior-Driven Development (BDD) with JBehave, Gradle, and Jenkins

jenkins-logo

Behavior-Driven Development (BDD) is a collaborative process where the Product Owner, developers, and testers cooperate to deliver software that brings value to the business. BDD is the logical next step up from Test-Driven Development (TDD). Behavior-Driven Development In essence, BDD is a way to deliver requirements. But not just any requirements, executable ones! With BDD, you write scenarios in a ...

Read More »

Eclipse with EclEmma: Visualizing Code Coverage

eclipse-logo

Last time, we saw how Behavior-Driven Development (BDD) allows us to work towards a concrete goal in a very focused way. In this post, we’ll look at how the big BDD and the smaller TDD feedback loops eliminate waste and how you can visualize that waste using code coverage tools like EclEmma to see whether you execute your process well. ...

Read More »

A Classification of Tests

software-development-2-logo

There are many ways of testing software. This post uses the five Ws to classify the different types of tests and shows how to use this classification. Programmer vs Customer (Who) Tests exist to give confidence that the software works as expected. But whose expectations are we talking about? Developers have different types of expectations about their code than users ...

Read More »

Want to take your Java skills to the next level?

Grab our programming books for FREE!

Here are some of the eBooks you will get:

  • Advanced Java Guide
  • Java Design Patterns
  • JMeter Tutorial
  • Java 8 Features Tutorial
  • JUnit Tutorial
  • JSF Programming Cookbook
  • Java Concurrency Essentials