Frequently Asked Questions
Is Berlioz responsive?
Is Berlioz open source?
Berlioz is an open source project available on Github and maintained by the PageSeeder and Allette development teams. It is actively maintained and has been deployed on numerous production systems.
What license is Berlioz using?
Berlioz is distributed under the terms of the Apache Licence, version 2.0.
Is a Berlioz service the same as Web Service?
A Berlioz service is similar to a Web service in the sense that is provides an inoperable machine-to-machine interaction over the Web. However, a Berlioz service can have multiple representations depending on the URL used. A Berlioz service is NOT a W3C Web service however. And Berlioz does not included any built-in discovery mechanism.
What is the main advantage of Berlioz?
Separation of concerns! You can concentrate on the business logic in Java without caring too much about the representation of your data. This makes functional testing easier and allows your application to adapt to new designs easily without having to change the back-end and retest everything. XSLT takes care of generating your final output in XML, HTML or JSON while your Java remains unchanged.
This especially useful when working with complex semi-structured documents.
Do I have to be a Java developer to use Berlioz?
Do I have to know XSLT to use Berlioz?
We offer training courses to help. Please contact us if you're interested.
Is Berlioz RESTful?
Berlioz was designed with REST in mind and can be used easily to define services in the REST architectural style. But Berlioz can define arbitrary services as well, the REST style is not mandatory.
Can I create services returning JSON rather than XML?
Absolutely! Berlioz uses XSLT to transform generated content into the deliverable output. By default, Berlioz can generate XML, HTML and JSON (through the Aeson format).
Can I use Berlioz with AngularJS?
Of course you can! Berlioz is perfectly compatible with one-page apps, you only need to setup you XSLT to generate angular code and JSON.
Can I use Berlioz with node.js?
Nope, sorry. Berlioz is a Java application so it can only work within a Java application server such as Tomcat or Jetty.
Can I use Berlioz with a CSS preprocessor?
You sure can, we've develop apps with both SASS and Less . In fact, we recommend that you use one. But note that Berlioz does include a precompiler for these, so to take advantage of the bundler, you will need to have your CSS compiled on the server-side first. There are plenty of tools to do that for either language.
Is there a performance penalty using XSLT?
Yes but it is generally negligible. A typical XSLT transformation is often proportional to the amount to data to process. Even complex transformations will take less a couple of milliseconds for a reasonable amount of data. Berlioz generators only produce the minimal amount of data you need to generate your output so the transformation is speedy. Most performance issues have little to do Berlioz but are I/O bound (e.g. reading from the database, and index or a file), they can be address the same way you would address any server-side performance issue (using caching, etc...).
If you're dealing with a large volume of data, the transport layer (HTTP) is likely to become the issue rather than XSLT. Berlioz is not designed to handle a large amount of content at once.
Is there a performance penalty using Aeson?
Yes, but relax. Using Aeson instead of writing JSON directly does not require much processing: the transformation itself is generally very fast, and the serialization into JSON is done directly as the output is the generated by XSLT; these only take a couple o milliseconds in total.
Where does the name come from?
It comes 19th century French composer Hector Berlioz . Hector Berlioz was ahead of his time: he composed complex orchestral works centered around the idée fixe which foreshadowed the leitmotiv, introduced new instruments to the symphonic orchestra and is at the origin of what is now known as "program music". He was also a skilled conductor.
Created on , last edited on