Orion (logiciel)
# Orion (logiciel)

Orion est une application en ligne de la fondation Eclipse dont le but est de fournir un environnement de développement intégré en mode hébergé, permettant de développer par exemple directement sur le cloud. Le but que s'est fixé l'équipe développant Orion est de permettre le développement d'applications web, sur le web.

L'application doit donc être installée sur un serveur. La fondation Eclipse fournit également un hébergement permettant d'utiliser Orion appelé OrionHub.

Orion est publié sous licence EPL.

## Histoire

Orion a été annoncé par Mike Milinkovich, directeur exécutif de la fondation Eclipse le 11 janvier 2011. La beta publique de OrionHub a été lancée le 23 mars 2011.

La version 1.0 a été publiée le 19 octobre 2012; la version 2.0, le 22 février 2013; la version 3.0, le 25 juin 2013 et la version 4.0 le 30 octobre 2013. La version 5.0 a été publiée le 14 mars 2014. La version 6.0 a été publiée le 25 juin 2014.

## Technologie

Les technologies employées sont HTML5, CSS et Javascript pour la partie cliente, et Java, avec Jetty, Equinox et JGit pour la partie serveur. Un serveur expérimental basé sur Node.js existe également.

Orion est extensible au niveau serveur, suivant une architecture similaire à Eclipse et basée sur OSGi, grâce à Equinox. Une architecture similaire a été développée au niveau du client, permettant d'enrichir le client Orion avec des plugins.

La communication entre client et serveur se fait par services web REST. Les technologies d'identification OpenID et OAuth et la communication sécurisée par SSL sont également implémentées.

## Fonctionnalités

Orion 1.0 propose des éditeurs pour les langages HTML, CSS, Javascript et Java, ainsi que des outils de recherche, une intégration avec Firebug permettant d'ouvrir automatiquement du code défectueux dans Orion, et une intégration avec Git. Les fichiers faisant partie d'un projet sont stockés dans une arborescence virtuelle. Il est bien sûr également possible de lancer son code comme une application web et de voir le résultat dans un navigateur.

Orion intègre également une ligne de commandes permettant d’interagir avec l'environnement de développement, y compris à l'aide de scripts.

La version 2.0 a amélioré le support pour Node.js, l'autocomplétion pour l'éditeur Javascript et a introduit la notion de projet, permettant d'importer des fichiers à intégrer à un projet par le protocole SFTP. La dépendance à la bibliothèque Dojo, qui était utilisée pour l'internationalisation dans la version 1.0, a été supprimée.

La version 3.0 propose un serveur déployable plus facilement sous forme de fichier déployable .war et une réécriture de la configuration de build avec Maven. L'éditeur Javascript permet désormais le templating, facilitant l'utilisation de moteur de templating comme Mustache ou Handlebars. Un éditeur de différences, permettant de comparer deux fichiers, est également désormais disponible. L'autocomplétion a également été ajoutée à l'éditeur HTML. Les éditeurs permettent la sauvegarde automatique.

La version 4.0 marque une refonte de l'interface, avec un système de navigation dans l'arborescence virtuelle amélioré, permettant notamment de bookmarker les fichiers auxquels on veut pouvoir accéder en permanence. De plus, les éditeurs proposent de nombreuses nouvelles fonctionnalités, comme la visualisation des caractères d'espacement, la fermeture automatique des parenthèses, l'indentation intelligente, la mise en commentaire de blocs, la suppression automatique de caractères d'espacement en fin de ligne au moment des sauvegardes. L'outil de recherche permet l'utilisation d'expressions rationnelles. Le code Javascript peut être validé automatiquement avec JSLint.

La version 5.0 comporte une refonte en profondeur de l'interface (menu contextuel, nouveau look and feel, nouvelle barre de navigation, barre de menu), des améliorations de performances, un nouveau système de validation du code Javascript (ESLint), un système de validation de JSON, la coloration syntaxique pour de nombreux langages (JavaScript, JSON, XML, CSS, HTML, Java, PHP, Python, Ruby, et YAML) et le déploiement vers Cloud Foundry.

