http://in.relation.to/Bloggers/HibernateORM415Release
PS: This message was brought to you by the numbers 0 and 1.
http://in.relation.to/Bloggers/HibernateORM415Release
PS: This message was brought to you by the numbers 0 and 1.
http://csvjdbc.sourceforge.net/. Einschränkungen (natürlich):
CsvJdbc accepts only SQL SELECT queries from a single table and does not support INSERT, UPDATE, DELETE or CREATE statements. Joins between tables in SQL SELECT queries are not supported.
package tutego; import java.sql.SQLException; import com.j256.ormlite.dao.*; import com.j256.ormlite.db.HsqldbDatabaseType; import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.jdbc.JdbcConnectionSource; import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.table.*; @DatabaseTable class Contact { @DatabaseField( generatedId = true ) Long id; @DatabaseField String name; // Setter/Getter sparen } public class ORMLiteDemo { public static void main( String[] args ) { System.setProperty( "tutegoHsqldbDatabasePath", "TutegoDB" ); String url = "jdbc:hsqldb:file:${tutegoHsqldbDatabasePath};shutdown=true"; ConnectionSource connectionSource; try { connectionSource = new JdbcConnectionSource( url, "sa", "", new HsqldbDatabaseType() ); Dao<Contact, String> dao = DaoManager.createDao( connectionSource, Contact.class ); // TableUtils.createTable( connectionSource, Contact.class ); Contact c1 = new Contact(); c1.name = "Chris"; dao.create( c1 ); Contact c2 = new Contact(); c2.name = "Juvy"; dao.create( c2 ); Contact c3 = dao.queryForId( "1" ); System.out.println( c3.name ); connectionSource.close(); } catch ( SQLException e ) { e.printStackTrace(); } } }
1. Klassen annotieren mit den ORMLite-Annotationen oder mit JPA-Annotationen
2. Sind die Tabellen nicht da, muss man TableUtils.createTable( connectionSource, Contact.class ); aufrufen, dann erzeugt ORMLite die Tabellen.
3. Der Rest ist einfach, siehe Beispiel 🙂
Mehr unter http://ormlite.com/.
Und das erste RC ist raus, zur Beschreibung mehr hier: http://code.google.com/p/guava-libraries/wiki/Release13.
http://www.jdom.org/news/index.html. Von der Webseite:
04.28.2012: JDOM 2.0.1 Released!
JDOM 2.0.1 is here!
JDOM 2.0.1 Introduces official support for Android! See the JDOM and Android page. JDOM 2.0.1 also fixes a bug in the ‚Compact‘ output of XML.
Get JDOM 2.0.0 Here! or from the maven-central repository here: Group: org.jdom, Articact: jdom
04.08.2012: JDOM 2.0.0 Released!
JDOM 2.0.0 is here!
JDOM 2.0.0 brings JDOM in to the world of Generics and other Java language items introduced with Java 5. As a result, JDOM 2.0.0 requires Java 5 or later, but is only fully supported on Java 6 and later.
Get JDOM 2.0.0 Here! or from the maven-central repository here: Group: org.jdom, Articact: jdom
In der Insel habe ich meine Programme nun auf JDOM 2 gebracht – ohne große Probleme. Nur die Generics muss ich in der Doku dokumentieren. Das einzige, was ich umschreiben musste, was das Kapitel über XPath, dazu gleich ein eigener Beitrag.
Jerry ist eine Open-Source-Lib, die eine von jQuery bekannte Funktionalität in Java abbildet. Beispiele von der Webseite: http://jodd.org/doc/jerry/index.html.
import
static
jodd.lagarto.dom.jerry.Jerry.jerry;
...
Jerry doc = jerry(html);
doc.$(
"div#jodd p.neat"
).css(
"color"
,
"red"
).addClass(
"ohmy"
);
und:
doc.$(
"select option:selected"
).each(
new
JerryFunction() {
public
boolean
onNode(Jerry $
this
,
int
index) {
str.append($
this
.text()).append(
' '
);
return
true
;
}
});
Statt aus einem String kann die Eingabe auch direkt aus der Datei kommen:
File file =
new
File(SystemUtil.getTempDir(),
"allmusic.html"
);
NetUtil.downloadFile(
"http://allmusic.com"
, file);
// create Jerry, i.e. document context
Jerry doc = Jerry.jerry(FileUtil.readString(file));
// parse
doc.$(
"div#new_releases div.list_item"
).each(
new
JerryFunction() {
public
boolean
onNode(Jerry $
this
,
int
index) {
System.out.println(
"-----"
);
System.out.println($
this
.$(
"div.album_title"
).text());
System.out.println($
this
.$(
"div.album_artist"
).text().trim());
return
true
;
}
});
Nach genau einem Jahr Arbeit an dem Release 3.8 ist die neue Version von Apache POI veröffentlicht. Die Änderungen gibt es unter http://poi.apache.org/changes.html, Download unter http://poi.apache.org/download.html. Links zu den Component APIs:
Änderungen unter http://svn.apache.org/repos/asf/ant/core/trunk/WHATSNEW aufgeführt:
Changes from Ant 1.8.3 TO Ant 1.9.0 =================================== Changes that could break older environments: ------------------------------------------- Fixed bugs: ----------- * External XML catalog resolver failed to use project basedir when given an unmentioned relative path like the internal resolver does. Bugzilla Report 52754. * Fixed some potential stream leaks. Bugzilla Reports 52738, 52740, 52742, 52743. Other changes: -------------- Changes from Ant 1.8.2 TO Ant 1.8.3 =================================== Changes that could break older environments: ------------------------------------------- * The Enumeration returned by AntClassLoader#getResources used to return null in nextElement after hasNextElement would return false. It has been changed to throw a NoSuchElementException instead so that it now adheres to the contract of java.util.Enumeration. Bugzilla Report 51579. Fixed bugs: ----------- * Removed buggy duplicate JAR list in RPM mode. Bugzilla Report 52556. * Launcher fixed to pass the right class loader parent. Bugzilla Report 48633. * <junitreport> mishandled ${line.separator}. Bugzilla Report 51049. * <junitreport> did not work in embedded environments on JDK 7. Nor did <xslt> when using Xalan redirects. Bugzilla Report 51668, 52382. * Encoding of unicode escape sequences by the property file task Bugzilla Report 50515. * The code that implicitly sets the -source switch if only -target has been specified in <javac> was broken for Java 5 and 6. Bugzilla Report 50578. * MailLogger ignore the Maillogger.starttls.enable property. Bugzilla Report 50668. * Delete task example does not work Bugzilla Report 50816. * <splash>'s proxy handling has been delegated to <setproxy> internally so the two tasks are consistent. <splash>'s way of not setting a proxy caused problems with other Java libraries. Bugzilla Report 50888. * Include task breaks dependencies or extension-points for multiple files. Bugzilla Report 50866. * Read on System.in hangs for forked java task. Bugzilla Report 50960. * FileResource specified using basedir/name attributes was non-functional. * Resource collection implementation of mapped PropertySet returned unusable resources. * The hasmethod condition failed with a NullPointerException when ignoresystemclasses is true and Ant tried to load a "restricted class" - i.e. a class that the Java VM will only accept when loaded via the bootclassloader (a java.* class). It will now fail with a more useful error message. Bugzilla Report 51035. * Exec task may mix the stderr and stdout output while logging it Bugzilla Report 50507. * Missing space between "finished" and timestamp in task/target finish message from ProfileLogger. Bugzilla Report 51109. * Redirecting the output of a java, exec or apply task could print in the error output stream some "Pipe broken" errors. Bugzilla Report 48789. * ZipFile failed to clean up some resources which could lead to OutOfMemoryException while unzipping large archives. A similar problem in ZipArchiveOutputStream has been fixed as well. Bugzilla Report 42696. * quiet attribute added to the copy and move tasks, to be used together with failonerror=false, so warnings won't get logged Bugzilla Report 48789. * System.in was closed and not readable anymore by the DefaultInputHandler when Ant is used via its Java API. Bugzilla Report 51161 * <sync> only supported a single non-fileset resource collection even though the manual said it could be multiple. * <sync> didn't work properly when working on resource collections. Bugzilla Report 51462. * <augment> cause a NullPointerException if it was used in a target that was invoked by multiple targets from the command line. Bugzilla Report 50894. * The ZipFile class could read past the start of the file if the given file is not a ZIP archive and it is smaller than the size of a ZIP "end of central directory record". * <javac> would create the empty package-info.class file in the wrong directory if no destdir was specified. Note it may still pick the wrong directory if you specify more than one source directory but no destDir. It is highly recommended that you always explicitly specify the destDir attribute. Bugzilla Report 51947. * packagemapper now honors the handleDirSep attribute. Bugzilla Report 51086. * the attributes of macrodef tasks had their values run through property expansion twice. Still true by default, but can be disabled. Bugzilla Report 42046. * jvc doesn't like it if source file names in argument files are quoted. Bugzilla Report 31667. * ZipFile didn't work properly for archives using unicode extra fields rather than UTF-8 filenames and the EFS-Flag. * Access to DirectoryScanner's default excludes wasn't synchronized. Bugzilla Report 52188. * When a Project instance was created by a custom tasks its createTask method didn't work. Bugzilla Report 50788. Other changes: -------------- * -f/-file/-buildfile accepts a directory containing build.xml. * The <javacc>, <jjtree> and <jjdoc> now support a new maxmemory attribute. Bugzilla Report 50513. * the documented inputstring attribute of sshexec has been implemented and the actually existing attribute inputproperty documented. Bugzilla Report 50576. * The concat task now permits the name of its exposed resource by means of its 'resourcename' attribute. * The expandproperties filter now accepts a nested propertyset which, if specified, provides the properties for expansion. Bugzilla Report 51044. * <junit filtertrace="true"/> will no longer filter out the very first line of the stacktrace containing the original exception message even if it matches one of the filter expressions. * Upgraded to Apache AntUnit 1.2 * Provide read access to Mkdir.dir. Bugzilla Report 51684. * <delete> and <move> have a new attribute performGCOnFailedDelete that may - when set to true - help resolve some problems with deleting empty directories on NFS shares. Bugzilla Report 45786. * <loadfile> and <loadresource> used to log at level INFO to signal a property hasn't been set when the resource was empty even if the quiet attribute was set to true. They will now use VERBOSE instead. Bugzilla Report 52107. * <javac> has a new attribute createMissingPackageInfoClass that can be set to false to prevent Ant from creating empty dummy classes used for up-to-date-ness checks. Bugzilla Report 52096. * URLResources#isExists has become less noisy. Bugzilla Report 51829. * The <retry> task has a new optional attribute retryDelay that can be used to make the task sleep between retry attempts. Bugzilla Report 52076. * <signjar> has new attributes that control the signature and digest algorithms. Bugzilla Report 52344. * Initial support for Java 8. * <sshexec> can optionally create a pseudo terminal (like ssh -t) Bugzilla Report 52554.
Weitere Details im Blog http://marek.potociar.net/2012/02/22/first-milestone-build-of-jersey-2-0/. Für Clients gibt es vielleicht die größte Änderung: Die Einführung der JAX-RS Client API. Die API ist allerdings noch nicht verabschiedet, kann sich daher also ändern. Die bisherige Spezi von JAX-RS liegt unter http://jcp.org/aboutJava/communityprocess/edr/jsr339/index.html.
Sehr sehr cool, mit http://code.google.com/p/playn/ kann man mit GWT eine Java-Anwendung schreiben und der GWT-Compiler setzt das nicht nur in JavaScript um, sondern in ActionScript, und da hinten kommt Flash raus.
Änderungen: http://jmeter.apache.org/changes.html
Erst ein paar Tage ist es her, da kam Hibernate 4 heraus. Nun gibt es auch schon das erste Update. Die Änderungen: https://hibernate.onjira.com/secure/ReleaseNote.jspa?projectId=10031&version=11754
Neues unter http://code.google.com/p/guava-libraries/wiki/Release11, genauer http://docs.guava-libraries.googlecode.com/git-history/v11.0/jdiff/changes.html. 2 neue Pakete sind:
Mit der neuen MathInt Klasse beschäftigt sich ausführlicher der Blogpost http://marxsoftware.blogspot.com/2011/12/guava-release-11s-intmath.html.
Nach dem auf der Mailingliste schon seit längerem eine Version 2 angekündigt wurde, mussten Entwickler doch noch längere Zeit warten. Jetzt ist es soweit. Infos unter http://findbugs.sourceforge.net/findbugs2.html und http://code.google.com/p/findbugs/w/list.
Die Version 2 kann man gleich über JNLP mit ein paar Sourcen ausprobieren:
Im JDK finden sich immer noch einige Fehler, toll, was FindBugs so findet. Das hier zum Beispiel:
oder
oder
oder
if ((parent instanceof LiteralElement) ||
(parent instanceof LiteralElement)) {
oder
COOL!
Features wie auf http://www.springsource.org/node/3334 genannt:
Download wie üblich unter http://www.hibernate.org/. News im Blog (http://in.relation.to/Bloggers/HibernateCore40IsFinal), gerade offline…
Adobe kündigte dies in http://blogs.adobe.com/flex/2011/11/your-questions-about-flex.html an. Damit ist klar: HTML 5 is the way to go. Flex war ein Nischenprodukt und der Wechsel zum Friedhof Apache wird das nicht ändern. Tschüss zur nächsten Client-Technologie.
Mehr Details unter http://googlewebtoolkit.blogspot.com/2011/11/google-plugin-for-eclipse-gpe-is-now.html. Was das für Konsequenzen hat, muss sich aber erst noch zeigen.