Générateur de méthodes Fluent en Java avec IntelliJ

Il peut être intéressant de générer des méthodes automatiquement sur le modèle Fluent API.
C’est-à-dire que les méthodes « setter » peuvent ensuite être chainées dans la même instruction.

Dans l’IDE IntelliJ, il y a deux méthodes pour cela.

1/ Utiliser un template de code pour le setter
Dans l’IDE, clic droit sur un champ d’une classe, puis :
Generate > Setter
Puis dans template, choisir « Builder ».

On peut personnaliser le template pour préfixer le champ par « with » par exemple.
Dans ce cas copier le template « Builder » et le renommer en « Fluent Setter » par exemple, et remplacer « set » par « with » (with$StringUtil.capitalizeWithJavaBeanConvention …).

Exemple de template :

2/ Installer un plugin IntelliJ

Publicités

Working with IntelliJ and a corporate Maven repository over HTTPS

Prérequis :

  • IntelliJ 14+
  • Maven 3
  • Sonatype Nexus (ou autre repo d’entreprise)

Config Maven locale :
~/.m2/settings.xml

 <mirrors>
        <mirror>
            <id>nexus-forge</id>
            <mirrorOf>*</mirrorOf>
            <name>Nexus (FORGE)</name>
            <url>https://forge.company/nexus/content/groups/public/</url>
        </mirror>
    </mirrors>
 <servers>
        <!-- Ajouter authentification sur Nexus Interne, si necessaire -->
        <server>
            <id>nexus-forge</id>
            <username>who</username>
            <password>ami</password>
        </server>        
    </servers>            

Si utilisation de HTTPS pour le serveur, configurer la Java Property « javax.net.ssl.trustStore ».

Par exemple sous Windows : « -Djavax.net.ssl.trustStore=C:\Users\<ME>\cacerts » • (rajouter à JAVA_OPTS, ou MAVEN_OPTS).

Dans IntelliJ, pour permettre de télécharger des librairies dans l’IDE :

File > Settings > … > Maven > Importing :
VM options for importer : rajouter -Djavax.net.ssl.trustStore=…\cacerts

Penser aussi à configurer l’exécution du build dans :

File > Settings > … > Maven > Runner:
VM Options : rajouter -Djavax.net.ssl.trustStore=…\cacerts

Normalement ensuite tout devrait bien se passer.

Références :

 

Java : Mémo pour les JSRs utiles

Liste des JSRs utiles, par catégories.

Web Services

JSR # Description Nom Version Intégré dans JSE / JEE Date publication Change log Artefact Maven
JSR 101 Java API for XML-based RPC JAX-RPC 1.1 J2EE 1.4 21 Apr, 2003 https://jcp.org/aboutJava/communityprocess/maintenance/jsr101/jaxrpc-changelog.html http://search.maven.org/#artifactdetails%7Cjavax.xml%7Cjaxrpc-api%7C1.1%7Cjar
JSR 181 Web Service Metadata for the Java Platform Annotations, notamment @WebService 1.0-MR1 JSE 6 23 Jan, 2006 https://jcp.org/aboutJava/communityprocess/maintenance/jsr181/181ChangeLog.html http://search.maven.org/#artifactdetails%7Cjavax.jws%7Cjsr181-api%7C1.0-MR1%7Cjar
«  «  «  2.0 Java EE 5 01 May, 2006
JSR 224 Java API for XML-Based Web Services JAX-WS 2.0 JSE 6,
Java EE 5
11 May, 2006 https://jcp.org/aboutJava/communityprocess/maintenance/jsr224/224ChangeLog.html http://search.maven.org/#artifactdetails%7Cjavax.xml.ws%7Cjaxws-api%7C2.0%7Cjar
«  «  «  2.1 JSE 6u4 05 Feb, 2007 https://jcp.org/aboutJava/communityprocess/mrel/jsr224/index.html http://search.maven.org/#artifactdetails%7Cjavax.xml.ws%7Cjaxws-api%7C2.1%7Cjar
«  «  «  2.2 JSE 7,
Java EE 6
10 Dec, 2009 https://jcp.org/aboutJava/communityprocess/maintenance/jsr224/changelog-2_2.txt http://search.maven.org/#artifactdetails%7Cjavax.xml.ws%7Cjaxws-api%7C2.2%7Cjar
JSR 311 Java API for RESTful Web Services JAX-RS 1.0 10 Oct, 2008 https://jcp.org/aboutJava/communityprocess/maintenance/jsr311/311ChangeLog.html http://search.maven.org/#artifactdetails%7Cjavax.ws.rs%7Cjsr311-api%7C1.0%7Cjar
«  «  «  1.1 Java EE 6 23 Nov, 2009 http://search.maven.org/#artifactdetails%7Cjavax.ws.rs%7Cjsr311-api%7C1.1%7Cjar
JSR 339 «  JAX-RS 2.0 Java EE 7 24 May, 2013 https://jcp.org/aboutJava/communityprocess/maintenance/jsr224/224ChangeLog.html http://search.maven.org/#artifactdetails%7Cjavax.ws.rs%7Cjavax.ws.rs-api%7C2.0%7Cjar
JSR 370 «  JAX-RS 2.1 Java EE 8 Final Release : Q3 2017 http://search.maven.org/#artifactdetails%7Cjavax.ws.rs%7Cjavax.ws.rs-api%7C2.1-m03%7Cjar (milestone 03)

 

XML 

JSR # Description Nom Version Intégré dans JSE / JEE Date publication Change log Artefact Maven
JSR 222 Java Architecture for XML Binding JAXB 2.0 JSE 6, Java EE 5 11 May, 2006 https://jcp.org/aboutJava/communityprocess/maintenance/jsr222/222ChangeLog.html http://search.maven.org/#artifactdetails%7Cjavax.xml.bind%7Cjaxb-api%7C2.0%7Cjar
«  «   «  2.1 JSE 6u4 14 Dec, 2006 http://search.maven.org/#artifactdetails%7Cjavax.xml.bind%7Cjaxb-api%7C2.1%7Cjar
«  «   «  2.2 JSE 7,
Java EE 6
10 Dec, 2009 https://jaxb.java.net/guide/Which_JAXB_RI_is_included_in_which_JDK_.html http://search.maven.org/#artifactdetails%7Cjavax.xml.bind%7Cjaxb-api%7C2.2%7Cjar
JSR 173 Streaming API for XML StAX 1.0 JSE 6 25 Mar, 2004 https://jcp.org/aboutJava/communityprocess/maintenance/jsr173/jsr173ChangeLog.html
«  «   «  1.2 JSE 6u18 2009
JSR 63 Java API for XML Processing JAXP 1.1 J2EE 1.3 2001 Supports the processing of XML documents using Document Object Model (DOM), Simple API for XML (SAX), and Extensible Stylesheet Language Transformations (XSLT)
«  «  «  1.2 J2EE 1.4 2003
JSR 206 Java API for XML Processing JAXP 1.3 JSE 5 30 Sep, 2004

 

JSON

JSR # Description Nom Version Intégré dans JSE / JEE Date publication Change log Artefact Maven
JSR 353 Java API for JSON Processing JSON-P 1.0 Java EE 7 2013 https://jcp.org/aboutJava/communityprocess/maintenance/jsr353/353ChangeLog.html http://search.maven.org/#artifactdetails%7Cjavax.json%7Cjavax.json-api%7C1.0%7Cbundle
JSR 374 Java API for JSON Processing 1.1 JSON-P 1.1 Java SE 8 Final Release : H1 2017 http://search.maven.org/#artifactdetails%7Cjavax.json%7Cjavax.json-api%7C1.1.0-M1%7Cbundle (Milestone 1)

 

Note :
Génération des tableaux avec http://www.tablesgenerator.com/html_tables
Import/export possible avec fichiers « .tgn »
– jsr-ws.tgn.json
– jsr-xml.tgn

Where is JBoss AS 7.2.0.Final ?

En théorie, JBoss EAP 6.1.x est basé sur JBoss AS 7.2.x. Sauf que cette dernière version est introuvable sur leur page de téléchargements. » http://jbossas.jboss.org/downloads/ Mais pourquoi donc ??? Un article en expliquant les raisons :

Un extrait de cette FAQ JBoss expliquant ce qui est arrivé à la version AS 7.2.0.Final :

Q: What happened to 7.2.0.Final?
A: 7.2.0.Final was always the basis for EAP 6.1.0.Alpha. Due to the new wide-availability of 6.1.0.Alpha, and for simplicity reasons, we’ve released just one release called EAP 6.1.0.Alpha.

Une petite définition de ce qu’est une version EAP (source FAQ JBoss) :

Q. What is JBoss EAP?
A. JBoss Enterprise Application Platform (EAP) is the productized version of JBoss Application Server (AS).  It’s the culmination of thousands of hours of QE, bug-fixes and co-ordination to make sure you can be as productive as possible building your apps.

Un extrait concernant les problèmes de licence (source article openlogic.com) :

EAP.Alpha is licensed under LGPL version 2.1 or later, just the same as previous community releases. Also as before, EAP releases other than Alphas, are available only with a paid production subscription or no-cost developer subscription, which restricts the use of binaries to development purposes only, not to be deployed into production environments.

Un extrait sur l’équivalence entre la version EAP alpha et la version community (AS) (source article openlogic.com) :

As mentioned above in the case of JBoss, the alpha version is « equivalent, or better, quality » to the community version.5 Let’s be clear, so long as any version of JBoss (or any software), and regardless of whatever it is called, is offered under LGPL, the copyright holder cannot require you to do anything beyond what the license already says (e.g., purchase or use a particular version for a particular purpose); this is freedom 0: the freedom to run the program, for any purpose.6  Otherwise, it would not be LGPL anymore.

Enfin un autre article intéressant de Mark Little sur community.jboss.org :

En conclusion, JBoss considère que la version EAP 6.1.0.Alpha  est équivalente en terme de code à la version AS 7.2.0.Final, et pour des raisons pratiques, seule la première version est offerte au téléchargement. J’espère que maintenant c’est (plus) clair !

Quelques repositories Maven utiles…

1. The first the one : Maven Central !

Moteur de recherche : http://search.maven.org/
Dépôt simple : http://repo1.maven.org/maven2/

2. Le repository de JBoss Community

Nexus Pro : https://repository.jboss.org/nexus/
Dépôt simple : https://repository.jboss.org/

3. Le repository pour JBoss Enterprise ou EAP

Dépôt « General availability repository » : https://maven.repository.redhat.com/techpreview/all/
où l’on trouvera les BOMs EAP avec le groupIp « org.jboss.bom.eap ». Voir aussi JBoss Stacks.

Configuration : https://community.jboss.org/wiki/SettingUpTheJBossEnterpriseRepositories

Pour EAP 6 notamment : Install the JBoss Enterprise Application Platform 6 Maven Repository 

4. Un autre moteur de recherche : MvnRepository

Ici : http://mvnrepository.com/

Avantages :

  • affichage des méta-données du POM
  • la liste des packages de la librairie
  • les livres associés

Doc générale sur les repositories

Site Apache Maven :

Sonatype :

Doc gestion des repositories avec Sonatype Nexus

Source : http://books.sonatype.com/nexus-book/reference/

 

A propos du support de GIT dans le DSM 4.3 de Synology

A partir de la version 4.3 du Disk Station Manager (DSM) des NAS Synology, un module « GIT Server » a été ajouté.
La question est : comment l’utiliser ?

Utilisation du module :

Extrait issu du package : /var/packages/git/help

Git Server

Git is an open source distributed version control system, which allows you to maintain software source code, documents or any type of file on a computer with speed and efficiency. With Git, you can collaborate with different groups of people simultaneously with relative ease.

To allow users to use Git:

Log into DSM using an account with administrative privileges. Go to Control Panel > Terminal and enable SSH service.
Launch the Git package. Select users to provide them with the ability to check in and check out files from the repository.
Note:

Git users will be restricted to Git-related activities with a shell tool called git-shell. This login shell will be applied to Git users to ensure that the accounts are only used for Git operations. As a result, Git users may only use the SSH connection to push and pull Git repositories, and will not have full access to DSM.

To create a Git repository:

1. Log into your Synology server via SSH as root or admin.
2. Change directory to /volumeX, where X is the volume number, to create a folder. For example, « git_repos ». The permission of the folder will be the same as Linux.
3. In the folder, run git init to create an empty repository.
4. After the repository is created, a Git client user can enter the following command to access this repository:
git clone ssh://[Git users]@[Your Synology server’s IP address or hostname]/[Git repository path]

Références (ajout du paquet synology) :

Références (utilisation) :

Bon voilà, je n’ai plus qu’à tester tout çà, dès que j’aurai un peu de temps !

Note :

Pour les versions de DSM antérieures à la 4.3 : Installer un serveur Git sur un NAS Synology