Our Contributions

At Jayway, we live for technology, we don't just use it. This means that driving development forward, sharing code and knowledge with our colleagues and friends in the open-source community is a matter very close to our hearts.

Listed here are a number of open-source projects where Jayway are committers. We are confident there is something of use for everyone.

 

Akka

»Simpler Scalability, Fault-Tolerance, Concurrency & Remoting through Actors«

Akka is the platform for the next generation event-driven, scalable and fault-tolerant architectures on the JVM

We believe that writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it's because we are using the wrong tools and the wrong level of abstraction.

Akka is here to change that.

Using the Actor Model together with Software Transactional Memory we raise the abstraction level and provides a better platform to build correct concurrent and scalable applications.

For fault-tolerance we adopt the "Let it crash" / "Embrace failure" model which have been used with great success in the telecom industry to build applications that self-heals, systems that never stop.

Actors also provides the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications.

Akka is Open Source and available under the Apache 2 License.

Jonas Bonér is the founder of this project.

Akka's homepage

Aspect ME

»Aspects go mobile.«

AspectME is a project for enabling Aspect-Oriented Programming (AOP) on the JavaME platform.

The most limited platform for JavaME applications does not have reflection or dynamic classloading, so how can AOP be applied there?

AspectME makes it happen.

Magnus Robertson and Ulrik Sandberg are co-founders and members of this project.

Aspect ME's homepage

Azure Contrib

»Extensible Windows Azure using MEF.«

A contrib project for Microsoft Windows Azure. This project aims to make life as a Cloud Developer easier and provide easily adopted added value to your Cloud Computing and Cloud Storage Applications.

Magnus Mårtensson and Peter von Lochow are the founders of this project.

Azure Contrib's homepage

Cloudstorage.API

»Persistence ignorance and testability in your .NET Cloud Applications.«

Do You want:

  • Application stability in the face of changing Cloud Storage implementations?
  • Persistence ignorance with the freedom to store your data in 'any' Cloud (Storage)?
  • Testability that enables you to mock out the real data store?

Then this project is for You!

Magnus Mårtensson and Peter von Lochow are the founders of this project.

Cloudstorage.API's homepage

CommonServiceLocator

»A shared interface for .NET service location.«

The library provides an abstraction over IoC containers and service locators. Using the library allows an application to indirectly access the capabilities without relying on hard references. The hope is that using this library, third-party applications and frameworks can begin to leverage IoC/Service Location without tying themselves down to a specific implementation.

Magnus Mårtensson is a committer to this project.

CommonServiceLocator's homepage

DDSteps

»Data driven testing with reusable steps.«

DDSteps is a JUnit extension for building data driven test cases. In a nutshell, DDSteps lets you parameterize your test cases, and run them more than once using different data.

Since DDSteps is 100% JUnit compatible, you can run your new data driven test cases just like any old JUnit test case. No IDE plugins or new Ant tasks are required - just add the DDSteps jars to your classpath and you are ready to go!

DDSteps uses external test data (in Excel) which is injected into your test case using standard JavaBeans properties. Your test case is run once for each row of data, so adding new tests is just a matter of adding a row of data in Excel.

DDSteps integrates best-of-breed toolkits for web and database testing, such as JWebUnit, DbUnit and Spring Framework. By making these toolkits data driven, you can do powerful function testing. Automated end-to-end testing of your website is not only possible - it is easy.

Adam Skogman is the project leader of DDSteps, Ulrik Sandberg is co-founder of this project.

DDSteps' homepage

Maven Android Plugin

»Easy to use Maven plugin for Android«

Maven Android Plugin makes it easier to do Android application development with Maven.

It lets you focus on programming, while Maven Android Plugin takes care of compiling everything correctly and building the apk file.

Hugo Josefson is the founder and current maintainer of this project.

The plugin's homepage

Microlog

Microlog is a small logging library for Java ME (J2ME) like Log4j. It has support for logging to console, file, RecordStore, Canvas, Form, Bluetooth, a serial port (Bluetooth, IR, USB), Socket(incl SSL), UDP, Syslog, MMS, SMS, e-mail or to Amazon S3.

Darius Katz and Johan Karlsson are founders and current maintainers of the project.

Microlog's homepage

Mobicents

Mobicents is a highly scalable event-driven application server with a robust component model and fault tolerant execution environment. Mobicents is the first and only Open Source Platform certified for JSLEE compliance. It complements J2EE to enable convergence of voice, video, instant messaging and data in next generation intelligent applications.

Johan Haleby, Jakob Matsson and Niklas Uhrberg wrote a "Click to Call" example application for JSLEE combined with web page interaction. This example application was donated to the Mobicents project.

Niklas Uhrberg (Jayway Sweden) has taken part in the enhancement discussions of the SIP protocol adapter within the JSLEE specification (JSR-240) of the project.

Mobicent's homepage

The Click to Call application

MockME

»Java SE mock objects for Java ME.«

MockME lets you write real unit tests without having to run them on the phone. You can even use dynamic mock object frameworks such as EasyMock that enables you to mock any object in Java ME.

MockME integrates best-of-breed tools for unit testing including JUnit, EasyMock and DDSteps. By making Java ME API's mockable you can write unit tests for your Java ME application the way you really want to.

Magnus Robertsson and Johan Karlsson are the co-founders and current maintainers of this project.

MockME's homepage

Neo4j.rb

Neo4j.rb is a Graph Database for JRuby. It uses the java lib neo4j as storage and lucene for quering/indexing.

Andreas Ronge is the founder and current maintainer of the project.

Neo4j.rb's homepage

OPS4J

»Wiki works. Start using it differently.«

The concept of allowing anyone to change any document, at first, seems ridiculous and certain not to work. But it does. Most people want it to work, therefor it works. If it works for something as simple as web editing, why can't it work for source code?

We are convinced it does. Open Participation Software allows anyone to make changes to the codebase. Often these changes will be small corrections, other times larger contributions, and occassionally someone wants to destroy it. For the latter case (destruction), the answer lies in the effort ratio between the "process of destruction" vs the "process of restoration". If it is hard for the perpetrator to destroy, and easy for the community to restore, then the fun is gone and the perpetrator leaves.

Peter Neubauer is a founder of this project.

OPS4J's homepage

PowerMock

»A powerful test bench even for 'untestable' code.«

PowerMock allows you to unit test code normally regarded as untestable. For instance it is possible to mock static methods, remove static initializers, allow mocking without dependency injection and more. PowerMock works by bytecode manipulation. PowerMock also contain some utilities that gives you easier access to an objects internal state. PowerMock can be used to test otherwise untestable code and also to achieve a cleaner separation between test and production code.

Jan Kronquist and Johan Haleby are the co-founders and current maintainers of this project.

PowerMocks's homepage

Robotium

»User scenario testing for Android«

Robotium is a test framework created to make automatic black-box testing of Android applications significantly faster and easier than what is possible with Android instrumentation tests out-of-the-box.

With the support of Robotium, test case developers can write system and acceptance test scenarios, spanning multiple Android activities.

Robotium 1.0 provides the following benefits:

  • You can develop powerful test cases, with minimal knowledge of the application under test.
  • The framework handles multiple Android activities automatically.
  • Test cases are more robust due to the run-time binding to GUI components.
  • Readability of test cases is greatly improved, compared to standard instrumentation tests.
  • Integrates smoothly with Maven or Ant to run tests as part of continuous integration.

Robotium is Open Source and available under the Apache 2 License.

Renas Reda and Hugo Josefson are the founders of this project.

Robotium's homepage

Spring LDAP

»Simplifying LDAP operations«

Spring LDAP is a sub-project to the Spring Framework.

Spring LDAP is a Java library for simplifying LDAP operations, based on the pattern of Spring's JdbcTemplate. The Spring LDAP framework relieves the user of the burden of looking up and closing contexts, looping through NamingEnumerations, encoding/decoding values and filters, and more.

Mattias Arthursson and Ulrik Sandberg are co-founders and current maintainers of this project.

Spring LDAP's homepage

Qi4J

»Composite Oriented Programming Today«

OOP neglects the need of objects to adjust its behavior depending on the context.

"John is a parent and programmer in the city, but a hunter and food in the jungle."

Same object, different contexts.

OOP has also not fulfilled its promise of re-usability, partly due to such static behavior and partly due to its inability to deal with fine-granularity of states and behaviors.

Composite Oriented Programming addresses these issues, and Qi4J is an implementation available to Java programmers today.

Rickard Öberg is a founder of this project.

Qi4j's homepage