čtvrtek 12. prosince 2013

Maven - Jak zjistit licence knihoven

mvn dependency:resolve
Nejprve se musí spustit tenhle příkaz.

mvn license:license-list
Vypíše seznam všech licencí ze všech dependencies., který vypadá např. takto:
 * agpl_v3   : GNU Affero General Public License (AGPL) version 3.0
 * apache_v2 : Apache License version 2.0
 * fdl_v1_3  : GNU Free Documentation License (FDL) version 1.3
 * gpl_v1    : GNU General Public License (GPL) version 1.0
 * gpl_v2    : GNU General Public License (GPL) version 2.0
 * gpl_v3    : GNU General Public License (GPL) version 3.0
 * lgpl_v2_1 : GNU General Lesser Public License (LGPL) version 2.1
 * lgpl_v3   : GNU General Lesser Public License (LGPL) version 3.0
 * mit       : MIT-License 

mvn license:license-list -Ddetail
Ke každé licenci vypíše i krátký popis.

mvn project-info-reports:dependencies
Do "target/site/dependencies.html" nageneruje html se seznamem knihoven potřebných pro překlad/testy...

středa 7. srpna 2013

Groovy - kompilace Mavenem pomoci groovy-eclipse-compiler pluginu

Konečně to vypadá, že mám funkční jednoduchý způsob jak mavenem kompilovat Groovy a provolávat libovolně mezi sebou třídy napsané v Javě a třídy napsané v Groovy! Takhle vypadá kus pom.xml, který se o to stará: Mini samplový projekt jde stáhnout tady: https://bitbucket.org/bugs_/samples/src/default/MavenCompileGroovyAndJava/?at=default

čtvrtek 21. února 2013

JAXB marshal element without @XmlRootElement anotation

When you are trying marshal MyClass, that is not anotated as @XmlRootElement element, you can obtain:

unable to marshal type "org.company.MyClass" as an element
because it is missing an @XmlRootElement annotation

Possible workaround is marshal your object in this way:

I have found, that more details can be found here:
http://weblogs.java.net/blog/2006/03/03/why-does-jaxb-put-xmlrootelement-sometimes-not-always
http://stackoverflow.com/questions/819720/no-xmlrootelement-generated-by-jaxb

středa 13. února 2013

Jax-WS - SchemaValidation zkouší číst stream 2x

JAX-WS, Metro, hází "Stream already closed" Při použití streamovaného dataSource Stane se to, že když je zapnutá Schema Validation, tak při validaci se přečte celý stream (ten attachment). Takže validace ho celý přečte a když dojde na skutečné spracování requestu a chtějí se přečíst data, tak to hodí "Stream already closed". A je po srandě.

Neznám žádné rozumné řešení tohoto problému. U nás jsme to pořešili tím, že jsme udělali vlastní DataSource. Která obalí skutečný stream a při prvním zavolání metody getInputStream() - což je z validace nevrátí skutečný stream, ale jen "new ByteArrayInputStream(new byte[]{})"
A až při druhém zavolání metody getInputStream() vrátí skutečný stream.
Tím ho validace nezničí a vše funguje. Jak říkám, jestli ví někdo jak to řešit lépe - sem s tím.

Takový hrozný DataSource pak vypadá zhruba takhle: