May 09, 2021

Posted by Fabrizio Montesi

Jolie 1.10.1 released

Jolie 1.10.1 has been released. Get it from


  • New getRealServiceDirectory operation of the File service, which is used in the new @jolie/languageserver npm package.
  • Bug fixes for the handling of faults in the default main scope.

May 06, 2021

Posted by Fabrizio Montesi

Jolie 1.10.0 released

Jolie 1.10.0 has been released. Get it from


  • New module system. Jolie now offers a module system, inspired by Python’s from .. import .. mechanism. The general principle is to keep keeps things simple and provide (often automatic) facilities to avoid namespace pollution.
  • New service block. Services are now syntactically manifest thanks to a new service construct. Services can take parameters, either programmatically or from externally-provided files.
  • New foreign service syntax. Foreign services (services implemented in Java or JavaScript instead of Jolie) are now implemented by hiding the implementation technology from embedders, allowing for more reusable code (changing how a service is implemented does not alter the orchestrator that loads it through embedding).
  • Message ids. Message ids in Jolie now adopt a snowflake-like mechanism for their network-wide tracking.
  • Maven Central. The Jolie libraries for developing Java Services and Jolie code analysis tools are now available on Maven Central (look for the group id org.jolie-lang).
  • Semantics improvements. Arithmetic operators are now commutative under implicit type casts ( A concurrency bug of the for .. in .. construct has been fixed.
  • HTTP. The http protocol now allows for arbitrary header read/write.
  • Bug fixes. Numerous bug fixes to HTTP, fault management, and Java services.
  • Code of Conduct. Jolie has joined the Contributor Covenant Code of Conduct.

June 04, 2020

Posted by Fabrizio Montesi

Jolie 1.9.1 released

Jolie 1.9.1 has been released. Get it from

Support for shebang in scripts

You can now use Jolie as a scripting language in Linux and macOS.

#!/usr/bin/env jolie

include "console.iol"

main {
	println@Console( "Hello, Jolie!" )()

Windows fixes

There are numerous fixes to the Jolie interpreter and installer to deal with paths in Windows, which resolve a few situations found with Jolie 1.9.0.

Other changes

  • Fix to the behaviour of fault handlers, which in some situations prevented escape from the current fault management scope from within a fault handler.
  • Improved parsing error messages for types that use the new syntax without the . prefix.
  • Better error management of invalid paths in all OSs.

April 16, 2020

Posted by Fabrizio Montesi

Jolie 1.9.0 released

Jolie 1.9.0 has been released. Get it from

Documenting APIs

The joliedoc tool has received some major improvements, including support for new documentation tokens, forward and backward documentation primitives, and a facelift to the documents that it generates. Check it out here.

Configuration with JSON files

The auto self-configuring location now supports reading from JSON files (doc).

This is useful, for example, in the development of Docker images (doc).

Jolie and REST

This release includes new tools to automatise some common practices in the development of Jolie REST services.

Jolier is a new tool to aid in the exposure of a Jolie API following the REST style (doc).

Also, Jolie now comes with two tools to integrate with OpenAPI:

  • jolie2openapi produces an OpenAPI definition from a Jolie interface (doc);
  • openapi2jolie produces a Jolie interface from an OpenAPI definition (doc).


In preparation for a debugger, the tracing system of the interpreter has been improved.

You can now also visualise the execution trace of a service using a new jolietraceviewer tool.

Build system

The build system used to compile Jolie has been ported to Maven.

Support for Java 11+

Jolie is now compatible with Java 11 and beyond without requiring special configurations.

Other changes

  • The HTTP protocol now supports OPTIONS requests and CORS.
  • Infinite alias loops are now detected at runtime and throw a fault.
  • Secure protocols (like HTTPS) now use TLSv1.2 by default.
  • A lot of small fixes and code optimisations.

August 06, 2019

Posted by Fabrizio Montesi

Jolie 1.8.2 released

Jolie 1.8.2 has been released. Get it from

This release introduces support for Windows to the Jolie Visual Studio Code extension:

July 11, 2019

Posted by Fabrizio Montesi

Jolie 1.8.1 released

Jolie 1.8.1 has been released. Get it from

This is the first stable release that supports our new official Visual Studio Code extension for Jolie:


  • The biggest change is the introduction of a new Inspector service to the standard library. This service provides code inspection operations for analysing Jolie source code, which is used in the implementation of the Language Server Protocol used in the new Visual Studio Code extension for Jolie.
  • Improvements and bugfixes for the jsonrpc protocol.
  • Bugfixes for the redirection feature.
  • Field end in substring@StringUtils is now optional (defaults to the length of the string).

Posted by Fabrizio Montesi

Visual Studio Code gains support for Jolie

The Jolie team has released the first version of the Visual Studio Code extension for Jolie, called vscode-jolie. Get it directly from Visual Studio Code or by visiting

The extension is pretty recent, so expect a lot of fixes and new features in the future. Here are a few cool things that work already:

  • Syntax highlighting.

  • Completion:


  • Hover:



May 20, 2019

Posted by Fabrizio Montesi

Jolie 1.8.0 released

Jolie 1.8.0 has been released. Get it from

This is a pretty big release, containing many aesthetic and useful improvements. Read up for the full changelog.

All changes are backwards-compatible, no need to worry about your existing Jolie code.


Bye bye semicolons

Ending statements with semicolons in sequential compositions is no longer necessary.


msg = "Hello, world!";
println@Console( msg )();
// etc.


msg = "Hello, world!"
println@Console( msg )()
// etc.

Simplified type syntax

When defining data types, dots in front of subnodes are now optional. Defining the type of node values is now optional, with void being the default.


type Team:void {
	.member[1,10]:void {


type Team {
	member[1,10] {

Improved tree literals

Tree literals have been improved: they now support nested trees, deep copy operations, and aliasing. Dots (to prefix subnodes) and commas (to separate nodes) are now optional. You can still use paths inside of tree literals to point to deeply-nested nodes.

For example, you can now rewrite this

config.username = "jolie"
config.server.uri = ""
config.resource = "/news" = "https"
config.protocol.version = "TLSv1.3"


config << {
	username = "jolie"
	server.uri = ""
	resource = "/news"
	protocol << {
		name = "https"
		version = "TLSv1.3"

Casing in ports

The nodes Location, Protocol, and Interfaces in communication ports can also be spelled location, protocol, and interfaces now, respectively, to be consistent with the rest of the language.


outputPort SomeServer {
Location: "socket://localhost:8080"
Protocol: sodep
Interfaces: MyInterface1, MyInterface2


outputPort SomeServer {
	location: "socket://localhost:8080"
	protocol: sodep
	interfaces: MyInterface1, MyInterface2

Other changes

  • A new --responseTimeout command line parameter to set a global timeout for all solicit-response invocations (see jolie --help).
  • Pretty printing values now prints Jolie types, instead of their Java type correspondent.
  • Bugfix for equality check of choice types.
  • Various resource leak fixes: now detects no issues.
  • Bugfix in querystring generation, now there are no more trailing ampersands.
  • Fixed an NPE when type checking courier processes.
  • The standard library service for sending e-mails now supports multiple attachments.
  • Standard library:
    • New operation: getVersion@Runtime
    • md5@MessageDigest can now take byte arrays as input.

February 19, 2019

Posted by Fabrizio Montesi

Jolie 1.7.1 released - Microservices 2019 edition

Jolie 1.7.1 has been released! Go get it from our download page.

This release celebrates the 2nd International Conference on Microservices (in Dortmund), which has started today! If you are not there, you will be able to check out slides and presentations at the end of the conference at the website

Changelog (from Jolie 1.7.0)
  • Support for the NDJSON format.
  • list@File now supports recursive directory visits natively.
  • Improvements to the ZipUtils library.
  • Bug fixes for XML/XSD support of choice types.

August 21, 2018

Posted by Fabrizio Montesi

Jolie 1.7.0 released

Jolie 1.7.0 has been released! Go get it from our download page.

Changelog (from Jolie 1.6.4)
  • Support for Java 9, 10, 11.
  • New feature: SNI (Server Name Indication) support for SSL/TLS (https, soaps, etc.). This is supported automatically, no need to add any protocol configuration.

August 07, 2018

Posted by Fabrizio Montesi

Jolie 1.6.4 released

Jolie 1.6.4 has been released! Go get it from our download page.

Changelog (from Jolie 1.6.3)
  • New feature: redirection in HTTP urls, e.g., http://yourjolieserver/!/SubService!/operation
  • New feature: the soaps protocol (SOAP over HTTPS).
  • New feature: interface extensions now support type links at the root level.
  • New feature: getenv@Runtime gets the value of environment variables.
  • New feature: listEntries@ZipUtils.
  • Various improvements to XML conversion APIs and tools.
  • XML conversion with .indent = true now adds tabbing too.
  • Start-up performance improvements (by avoiding filling stack traces when a path resolution fails for an include path).
  • Complete refactoring of Scheduler (standard library).
  • Fix: null pointer exception in checking type equalities when one type does not have subnodes.
  • Fix: SOAP now replies correctly to OneWay invocations.
  • Fix: HTTP now correctly returns status 500 for internal errors.
  • The Web Service unit test does not use a remote web service anymore.
  • Various code restylings to take advantage of Java 8.

May 02, 2018

Posted by Fabrizio Montesi

Jolie 1.6.3 released

Jolie 1.6.3 has been released! Go get it from our download page.

Changelog (from Jolie 1.6.2)
  • Using operations in courier processes that are not declared in the input port that the courier refers to is now detected statically, not at runtime.
  • Stability improvements to the HTTP and SSL protocols.
  • Fixed a race condition in the correlation engine of the interpreter.
  • Fixed the namespace of HTTP bindings in WSDL files produced with jolie2wsdl.
  • Prettier output for type documentation in joliedoc.

November 07, 2017

Posted by Fabrizio Montesi

Jolie code is now recognised by Github

A few months ago, Github merged support for recognising Jolie code in git repositories. So Jolie programmers can now enjoy seeing this on top of their repositories:

It's OK not to be 100% Jolie, but we love it when it happens!

Posted by Fabrizio Montesi

A new look for the Jolie documentation pages

The Jolie documentation pages, which you can find at, got a fresh new look! They are now powered by GitBook, which gives us better accessibility (e.g., font size adjustments, different colour schemes). You can now choose to browse the documentation online, or even download it as a PDF.

Perhaps even more importantly, it is now very easy to edit (or propose changes for) the whole documentation, even with an online editor. This will help us in speeding up the process of better documenting Jolie in the future.

A big thank you to our master of websites Saverio Giallorenzo for pulling out most of the work!

November 06, 2017

Posted by Fabrizio Montesi

Jolie 1.6.2 released

Jolie 1.6.2 has been released! Go get it from our download page.

Changelog (from Jolie 1.6.1)
  • Performance improvements to the startup time of the interpreter.
  • Errors in using global variables with dynamic lookup are now notified at linting time.

July 05, 2017

Posted by Fabrizio Montesi

Jolie 1.6.1 released

Jolie 1.6.1 has been released! Go get it from our download page.

Changelog (from Jolie 1.6.0)
  • The File service now supports the retrieval of different file information.
  • Fixed: could not start the interpreter with some aggregation statements with empty interface extenders.
  • The interpreter shutdown procedure is now faster when timers are running.
  • Different bug fixes for the HTTP and SOAP protocols.
  • Various feature and performance improvements to HTTP and SOAP.

December 01, 2016

Posted by Fabrizio Montesi

Jolie 1.6.0 released

Jolie 1.6.0 has been released!

Important: This is the first stable release of Jolie that requires Java 8. A Java 6 compatible branch is still available on GitHub, to support contributors with the possibility of backporting important bug fixes. A link to the latest stable version of Jolie supporting Java 6 is provided in the download page of the Jolie website.

Changelog from Jolie 1.5.0

New from Jolie 1.6.0 beta1:
  • Improved error message compatibility with Windows (now the Jolie plugin for Atom works correctly in Windows 10).
  • New for-loop construct for iterating over arrays without explicit indexes: for( x in array ) { ... }.
  • Bug fix for interface extenders affecting OneWay operations.
  • Improved support for HTTP methods.
  • Added pi@MathService
  • Fix null pointer in TimeoutHandlers.
  • Improved File service for handling absolute paths.
  • Added replaceFirst@StringUtils
  • Add support for sqlite in Database.
  • Bug fix in alias replacement in HTTP.
  • Fix race condition in ValueVector.
New from Jolie 1.5.0 (already posted as part of Jolie 1.6.0 beta1):
  • 3000th commit reached!
  • Lots of improvements to the handling of concurrent data structures, using lambdas.
  • Codebase ported to make use of the new features and libraries found in Java 8.
  • Various performance improvements: objects for tracing are not allocated if --trace is not in use, type checking runs faster thanks to safe sharing of string builders, improved management of sockets, faster evaluation of logical conditions by using lambda-based implementations.
  • New asynchronous implementation of AbstractCommChannel for simpler handling of solicit-responses.
  • Improved performance of the interpreter test suite.
  • Support for type choices (also known as type sums)! This merits its own blog post, to be written.
  • Numerous bug fixes and minor improvements.
  • Fix a race condition on the usage of internal links.

Posted by Fabrizio Montesi

A Vision for the Microservice Revolution

Is there only one way to develop Microservices? Or is there another that can take us even further?

We at the Jolie team believe that there is a second way. We have started piecing together a presentation of what makes us think so. See it here:

October 11, 2016

Posted by Fabrizio Montesi

Jolie now available on Docker

Jolie is now available also on Docker, a container tool for deploying microservices. Using the Jolie image for Docker allows for trying out or installing Jolie in production faster, by using the Docker tool. More information about Docker can be found at

To install a Jolie docker container, follow these steps:
  • Install Docker (if not already installed)
  • Run the following command for pulling the Jolie Docker image:

    docker pull jolielang/jolie1.6.0beta1
  • Create a container starting from the downloaded image, by adding a local volume where the Jolie files should be stored:

    docker run -it -v /your-host-folder-path:/your-container-path --name CONTAINERNAME jolielang/jolie1.6.0beta
    • -it : starts the container with a command shell enabled
    • --name CONTAINERNAME : gives a name to the container
    • -v /your-host-folder-path:/your-container-foldercreate an internal folder  /your-container-folder mapped to folder /your-host-folder-path in the host machine which will be used for sharing files between the container and the hosting machine. Thanks to this option, it is possible to edit Jolie files from the host machine preferred editor and then running them inside the container.

    Once the container is started, it is possible to run Jolie from inside the container instance shell with the usual command:

    jolie your_file.ol

Note that you can open several shells in your running container, by using following command from the host:

docker exec -it CONTAINERNAME bash

Wanna try Jolie out? Use the Docker container with Jolie examples!

For those who are interested in running some of the examples discussed in the documentation of the Jolie website, it is possible to pull the following Docker image instead of the basic one:

docker pull jolielang/jolie-examples

In the image, the folder /examples contains the whole set of examples. The examples can also be  downloaded separately from this git repository:

May 13, 2016

Posted by Fabrizio Montesi

Jolie 1.6.0 beta1 released

In honour of the Jolie repository reaching a count of 3000 commits, Jolie 1.6.0 beta1 has been released!

This is a beta release, meant for early adopters and testers. Do not use it in production! For this reason, the download link is reported only here and not in our main download page.

Download link:

Important: This is the first release of Jolie that requires Java 8. A Java 6 compatible branch is still available on GitHub, to support contributors with the possibility of backporting important bug fixes.

Changelog from Jolie 1.6.0

  • 3000th commit reached!
  • Lots of improvements to the handling of concurrent data structures, using lambdas.
  • Codebase ported to make use of the new features and libraries found in Java 8.
  • Various performance improvements: objects for tracing are not allocated if --trace is not in use, type checking runs faster thanks to safe sharing of string builders, improved management of sockets, faster evaluation of logical conditions by using lambda-based implementations.
  • New asynchronous implementation of AbstractCommChannel for simpler handling of solicit-responses.
  • Improved performance of the interpreter test suite.
  • Support for type choices (also known as type sums)! This merits its own blog post, to be written.
  • Numerous bug fixes and minor improvements.
  • Fix a race condition on the usage of internal links.

April 19, 2016

Posted by Fabrizio Montesi

Jolie package "atom-jolie" for the Atom editor

We now have a new package for the Atom editor, atom-jolie, that automatically installs all the recommended Atom packages for developing Jolie code in Atom (syntax highlighting, linting, and execution).

There have also been some improvements to the Jolie packages for Atom lately, including a release of the script package that now supports running the currently opened Jolie program directly in Atom.


April 04, 2016

Posted by Fabrizio Montesi

Jolie 1.5.0 released

Jolie 1.5.0 has been released.
This is mainly a stabilisation release (albeit it contains some new conservative features). It is meant as a transition release towards the future release that will require Java 8. So this one still requires just Java 6, but efforts will now be directed towards stabilising the next version requiring Java 8 (java8 branch on git). Get it while it's still hot:


  • The HTTP extension now supports sending custom user headers in request messages.
  • Improvements and bugfixes to SSL extensions (e.g., HTTPS).
  • Better handling of the service shutdown sequence.
  • Fixed a race condition in channel selectors.
  • Bugfixes regarding channel handling in aggregation.

August 18, 2015

Posted by Fabrizio Montesi

Jolie 1.4.1 released

Jolie 1.4.1 has been released. This is a bugfix release, including fixes to the HTTP protocol and connection management. Download it from the Jolie download page.

June 16, 2015

Posted by Fabrizio Montesi

Jolie 1.4 released

Jolie 1.4 has been released. This is a feature release, including support for the new syntax of Internal Services (see the docs and the post on non-distributed microservices) and Local Locations. There are also many fixes to the HTTP extension, improvements to the embedding engine for Javascript programs, and improvements to the support tools jolie2java and wsdl2jolie.

April 30, 2015

Posted by Fabrizio Montesi

Jolie 1.3 released

Jolie 1.3 has been released. This is a stabilisation release: much effort has been put into improving the implementation of the interpreter and its extensions, and in extending our test suite for backwards compatibility.


  • Empty bodies for Request-Response inputs have been made optional.
  • Performance improvements to communications with embedded Javascript services.
  • gwt-dev.jar has been removed, as it is no longer needed (this reduced the size of a Jolie installation to a third).
  • Fixed a bug that prevented using HTTPs with the default settings (SSLv3 is no longer the default).
  • Improvements to the jolie2java tool, which now correctly compiles access methods to root values.
  • Many fixes to how charset encodings are handled, especially with respect to UTF-8.
  • Bugfix: invoke@Reflection did not use runtime type checking correctly.
  • Internal refactoring of HTTP and HTTP-based protocols to share the basic underlying logic, e.g., error handling.
  • Fetching WSDL documents no longer prints debug messages on screen.
  • Some API cleanups in the standard library (e.g., NetworkService).
  • Improvements to handling GWT messages.

April 01, 2015

Posted by Fabrizio Montesi

Jolie to support groundbreaking +aaMS, *aaMS, picoservices!

With the advent of microservices, it was clear to us in the Jolie team that it was time to reinvent everything there is about computing. We call this initiative XaaMS: X as a MicroService. But what is X? Today, we can share some of our most exciting plans for the future.

X as +: +aaMS

How many times it happens that you have to make some additions, e.g., x = 3 + 2, in your programs? Additions in current programming languages are painfully slow, as they are executed locally and risk to be run sequentially in case you do not have enough CPU cores. To address this problem, the next version of Jolie will run every addition on the cloud!

From now on, whenever Jolie is run, it will start a cloud cluster on Amazon to run your additions. Anytime a sum has to be calculated, Jolie will contact a cloud node to run the sum remotely and then wait to receive the result. In this way, all your additions can be efficiently parallelised and take advantage of modern cloud computing!
When possible, the Jolie interpreter will use multiple cloud nodes for the same addition, and then decide later which cloud node computed the best result using an advanced (patent-pending) heuristics.

Rigorous scientific testing (patent pending) has shown us that the perfect number of cloud nodes to support each Jolie program is exactly 100, so that is our unchangeable default.

X as *: *aaMS

Multiplications will also be run on the cloud! This is beautifully crafted on top of our +aaMS innovation. Suppose that you have to compute:

x = 6 * 7

Instead of running it locally, we split the multiplication into additions, using a new procedure we invented that we call "Multiplication Cloudification":

x = 6 + 6 + 6 + 6 + 6 + 6 + 6

Observe that, as strange as it may seem at first, the two operations yield the same result (we are currently trying to publish this important result in a math journal, but we are encountering disbelief)! Now that we have additions, we can split them and run them in parallel in the cloud.
For example, from above, we get the following additions that we have to do:

6 + 6, 6 + 6, 6 + 6, 6 + 0

We get the following results from our cloud nodes:

12, 12, 12, 6

Now we contact our cloud nodes to do the following additions, in parallel:

12 + 12, 12 + 6

We get:

24, 18

We finally contact our 100 cloud nodes to sum 24 and 18 in parallel, pick the best result, and after a mere thousand years of round-trip communications we get:


which is what this example is all about.

X as Pico

Recent business surveys suggest that the more microservices you have in your microservice architecture, the better! For this reason, the next version of Jolie will introduce the outstanding concept of Picoservices! Picoservices are launched from the command line, for example

jolie --pico 1000 program.ol

will launch Jolie with a thousand (!) picoservices, which are a special kind of microservices. What do picoservices do? Nothing! That is the beauty of it. They are microservices finely optimised to be hanging around and consume as little resources as possible (but still convincing, in a business sense).

Thanks to our lightweight picoservices, we are able to have microservice architectures that scale up to thousands of picoservices (if not millions!). Your business competitor will not be able to keep up!

March 29, 2015

Posted by Fabrizio Montesi

Jolie 1.2.1 released

Jolie 1.2.1 has been released.


  • Introduction of UriTemplate, a new experimental service in the standard library for handling URI Templates.
  • Bugfix: HTTP could silently omit content when trying to send a non-binary value when a binary format was required.
  • Bugfix: joliec can now compile courier processes.
  • Bugfixes to handling of basic values and implicit type conversions.
  • Bugfix: fix a race condition on input streams from the console in the Console library service.

March 26, 2015

Posted by Fabrizio Montesi

Jolie 1.2 released

Jolie 1.2 has been released. This release brings many important feature, stability, and performance enhancements.


Jolie 1.2 comes with many performance improvements. Early tests (some of which performed on the Jolie website itself) show an increase in throughput of up to 100% in scenarios with heavy loads, thanks to the following changes:
  • Jolie processes are now executed over a virtualisation layer that runs them using a cache of parallel workers.
  • Many synchronisation locks on data structures have been made more granular, reducing lock retention among processes.
  • Improvements to the networking stack, including multiple concurrent selectors (as in, e.g., Project Grizzly), better usage of I/O streams, and buffer caching.

Language Features

Inline trees

Jolie now supports inline trees as a new form of expression. For example, the following series of assignments

x.a = 1;
x.b = 2;
x.c[0] = 3;
x.c[1] = 4

can now be simply written as:

x << { .a = 1, .b = 2, .c[0] = 3, .c[1] = 4 }

Since they are expressions, inline trees can be used as parameters for operation invocations, for example:

    "select * from users where id = :id" { .id = 5 }
)( result )

Provide-until choices (experimental)

Provide-until choices have been introduced as a useful way of providing a series of operations until another certain operation is invoked. For example, the following code make the operations read and write available until either the operation logout or timeout is invoked.

    [ read(request)(response) { response = /* ... */ } ]
    [ write(request) ] { /* ... */ }
    [ logout() ]
    [ timeout() ]

Provide-until blocks are still experimental and will likely be improved in the future.

Branch code for input choices now optional

The code of a branch in an input choice can now be omitted, implicitly meaning that it is empty (nullProcess). For example, the following code

[ logout() ] { nullProcess }
[ timeout() ] { nullProcess }

can now be written as:

[ logout() ]
[ timeout() ]

Framework Improvements

  • Full character set enforcement in all parts of Jolie (important for multiplatform environments).
  • Predefined charset UTF-8 for XML-RPC, SOAP, JSON-RPC protocols.
  • Customisable charset for HTTP and SODEP protcols (default remains UTF-8) and the I/O  services (FileService, IniUtils).
  • --charset parameter to parse Jolie programs in encodings different from the system default.
  • Introduction of the new Converter service (base64 conversion, charset conversion).
  • Major HTTP protocol improvements (HEAD request, better chunked-mode parsing, correct URI/URL handling).
  • Fixed use of file paths containing blanks.
  • JSON parser fixes (nested arrays).
  • Some DatabaseService improvements (new close() call, error handling).
  • Fixes to the UNIX domain sockets support ("localsockets" medium).
  • XML-RPC protocol improvements (e.g., base64 support).
  • Fixed execution of sequential processes.
  • The SemanticVerifier component now reports errors correctly.
  • Introduction of a new experimental Reflection service for language reflection.

March 16, 2015

Posted by Fabrizio Montesi

Jolie on Github

The Jolie source code is now hosted on Github! You can find us here.

Requests and issues can now be discussed through the common Github website and tools. Enjoy!

February 18, 2015

Posted by Fabrizio Montesi

Jolie 1.1.2 released

Jolie 1.1.2 has been released, with lots of stability and performance improvements! Get it while it's hot!


  • Fixed character encoding handling on all HTTP-based extensions (http, https, soap, xmlrpc, jsonrpc).
  • Introduced HTTP compression on all HTTP-based extensions.
  • Introduced HTTP error messages for clients on all HTTP-based extensions.
  • Plenty of other bugfixes and internal improvements in all HTTP-based extensions.
  • Enhanced documentation for the HTTP extensions, especially documented all possible parameters for the http extension under http.iol.
  • Major JSON parsing improvements: introduction of a shared library named "jolie-js" which shares the JSON parser between the HTTP extensions and the Jolie "JsonUtils" module.
  • Bugfixes for localsockets (UNIX domain sockets).
  • Bugfixes in the launcher script for Windows.
  • Fixed a bug on concurrent access to variables in foreach loops.
  • Internal improvements to the networking code of the interpreter.
  • The compression feature from the sodep protocol has been removed. It will be reintroduced in another protocol in the future.
  • Improvements in the transmission of faults using JSON.
  • Fixes resolution of type links in interfaces used in courier inputs.
  • Fixed resource leak when reading .ini files in IniUtils.
  • Fixed a potential internal deadlock when handling persistent input channels.

January 28, 2015

Posted by Fabrizio Montesi

Jolie 1.1.1 released

Jolie 1.1.1 has been released.


  • HTTP Compression Negotation is now supported and enabled by default.
  • The Jolie launcher script now uses the default Java parameters for RAM usage.
  • joliedoc now produces anchor links in documentation files correctly.
  • Bug fixes to the installer, which should now work better on MacOS and Windows.

January 19, 2015

Posted by Fabrizio Montesi

Jolie 1.1 released

Jolie 1.1 has been released!

This release is the result of more than 500 commits, which contain:

  • almost 30 new APIs in the standard library;
  • more than a hundred bugfixes;
  • almost a hundred improvements to the interpreter and its libraries.

Changelog of major changes

New features

  • Interfaces can now be referenced as constants in courier processes.
  • Programs can automatically access the subdirectories lib and include from the directory they are executed in, respectively for libraries and include files.
  • It is now possible to develop "abstract locations" for input ports, i.e., Jolie extensions that can change at runtime the location of an input port, for example by fetching it from a registry or a configuration file.
  • Tracer. Jolie now supports a "--trace" option that prints all communications on screen (useful for debugging).

Implementation improvements

  • Improved message handling in concurrent communications.
  • Faster shutdown procedure for the interpreter.
  • Better handling of memory deallocation when an embedded service terminates.
  • Improved handling of persistent channels, with a new algorithm for managing timeouts of cached channels.
  • Support for Java 8.
  • Better Windows support (path resolution and JAP files).

New APIs

  • Console management.
  • Database management. Also, support for HSQLDB and DB2 has been added.
  • File management.
  • JSON support.
  • Queue-like data structures.
  • Runtime management of the interpreter.
  • Semaphores.
  • Shell command execution.
  • String manipulation.
  • XML handling.

Improvements to protocols

  • http: default operations can now be assigned to specific HTTP methods (GET, PUT, POST, DELETE, HEAD).
  • http: improved message handling, improved JSON support.
  • json-rpc: better support, general improvements.
  • ssl: bug fixes (applies to all protocols using ssl, e.g., https).
  • xml-rpc: better support, general improvements.

Improvements to tools

  • joliedoc: types can now be documented.
  • joliedoc: bug fixes.
  • jolie2wsdl: bug fixes.
  • wsdl2jolie: bug fixes.

February 08, 2013

Posted by Fabrizio Montesi

Sourceforge downloads

We have noticed that many people are downloading Jolie 1.0 directly from Due to a syncing problem, Sourceforge was only offering an old version of Jolie that is not the same as the one available on this website by following the download instructions.
So if you are one of those people that downloaded Jolie from its sourceforge page, be wary that if you want to run the tutorials found on our website you must download the most recent version available from today (Jolie 1.0).
In general, we always recommend following the download instructions reported in this website instead of downloading Jolie from other sources.
As a more positive note, in the last week or so since we launched this website we have already seen more than 700 downloads! So thank you all for your support and interest from all of the Jolie Development Team!

January 29, 2013

Posted by Fabrizio Montesi

Jolie 1.0 released

Jolie 1.0 has been branched in the source code repository and released!
See the download page for the installation instructions.
This release has been sponsored by italianaSoftware and the IT University of Copenhagen.

January 28, 2013

Posted by Fabrizio Montesi

The new Jolie Website

The new Jolie website is up, after months and months of hard work!
There is a lot of new content, and we invite you to explore it. We are also updating these pages daily, so come back for a visit now and then. Better yet, this new website is completely written in the Jolie language and it is open source! You can see its source code from the Jolie SVN repository. Even if this is a great step forward for the Jolie project, we are always looking for help. There are many ways to join, from improving this website itself to writing code. See our community page for getting in touch. And if you need an idea to start from, the Publications page needs some love right now.
Special thanks for this new website go to the IT University of Copenhagen for giving us hosting service, and to Saverio Giallorenzo for picking up this work and finishing it during its visit (funded by Spinner) to the same institution.