Ceylon module repositories by Aleš Justin

33 %
67 %
Information about Ceylon module repositories by Aleš Justin

Published on February 5, 2014

Author: UnFroMage

Source: slideshare.net


Discover how Ceylon modules are implemented.

Module repositories Aleš Justin, Red Hat

Modules? • History • • • Java SDK monolith JSR-277, JSR-294, … OSGi ! • Should be part of the language! • Well, you cannot ignore legacy • A ton of cool Java libs, … ! • It’s all about modules in Ceylon! • (at least that’s what Stéphane tells me ;-)

Compiling the app? • Something needs to know how to *find* dependent modules • • • Typechecker “talks” to Ceylon Module Repository (CMR) ! Once an app module is compiled, it goes into local module repo → *ready* to be used by other modules ! But how do we share it “globally”?

Running the app? • Directly — MyApp::main(String… args) ? • • BOOM!! … as nobody knows how to *load* dependent modules ! Custom “Runtime” • • • JBoss Modules based (WildFly AS proven; p2p classloading) “Talks” to CMR to lookup modules Lazy initialisation; build minimal transient closure of dependency info

More module lookups • • Sources, module list view and compiling JavaScript backend • IDE • Lookup .js files

Module lookup • <name,version> → module or <null> • No range lookup • Set of repositories • • Local Remote • • • • File system Maven WebDav Herd • Transferring module’ bytecode bits and *dependency info* • Type of repository • Remote → Local

Dependency info • • import org.acme.poke “1.0” Maven • • From pom.xml / via Aether • JBoss Modules • module.xml Custom jar • • module.properties • OSGi (wip) Native

Maven trouble? • Some Maven pom.xml files are “invalid” • • Transitive dependencies / flat classpath 2nd level dep used directly ! • Fix? • • • • • Current workaround = overrides.xml Add Remove Replace Any better idea?

Repositories configuration • • Distrib, Project, User, Cache, Herd, … Add your own • • —rep <repo config> Customise things in .ceylon/config • Default

Module sharing? • Herd (http://modules.ceylon-lang.org/) • • • • • Upload your modules Upload permission Dependency pre-check Integrity validation check Set-up your own Herd ! • Query for modules • If supported by repository type

Misc • • Can be used in the app; but not encouraged Language and JDK are added by default • • Yes, even JDK is a module (actually multiple modules) Logging module(s) have special treatment • • So all logs end-up at the same place — JBoss LogManager CMR is pluggable — RepositoryBuilder • CMR, Runtime, Typechecker, … are also all modules • Impl your own Repository

Thanks! ! ajustin@redhat.com Q&A anytime

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

GitHub - ceylon/ceylon: The Ceylon compiler, language ...

Add the idea of namespaces to modules and repositories May 12 ... http://github.com/ceylon/ceylon ... Emmanuel Bernard, Tom Bentley, Aleš Justin, ...
Read more

Ceylon: First Ceylon Tour in Paris

First Ceylon Tour in Paris ... Ceylon module repositories. Ceylon module repositories by Aleš Justin. Ceylon/Java interop.
Read more

In Relation To Aleš Justin

Aleš Justin was born in Ljubljana, ... Ceylon and many other JBoss projects. ... In order to use Modules with CapeDwarf, ...
Read more

Running Google App Engine Apps in JBoss AS7: Aleš Justin ...

During JUDCon China 2012 Red Hat's Aleš Justin ... making it modular and making the repositories ... and do some Ceylon in between. Since CapeDwarf ...
Read more

Ceylon: Blog tagged conference

Blog tagged conference UK JUG tour. Stéphane Épardaud. 10 February 2015 ... Ceylon module repositories by Aleš Justin. Ceylon/Java interop.
Read more

GitHub - xkr47/ceylon: The Ceylon compiler, language ...

ceylon - The Ceylon compiler, language module, and command line tools. Skip to content. ... This repository. Watch 1 Star 0 Fork 30 xkr47 ...
Read more

Ceylon 1.0.0 is now available | Planet JBoss Developer

Community module repository. Ceylon Herd is now open to the ... Tako Schotanus, Emmanuel Bernard, Tom Bentley, Aleš Justin, David Festal, Flavio ...
Read more

Ceylon M4 and Ceylon IDE M4 released! | Planet JBoss Developer

Ceylon M4 and Ceylon IDE M4 require Java 7. ... including support for local and remote module repositories, using the local file system, ...
Read more