<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="bbPress/1.0.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Forum :: openmamba &#187; Forum: news - Recent Posts</title>
		<link>http://forum.openmamba.org/forum.php?id=6</link>
		<description>openmamba forum</description>
		<language>en</language>
		<pubDate>Thu, 23 May 2013 01:21:55 +0000</pubDate>
		<generator>http://bbpress.org/?v=1.0.3</generator>
		<textInput>
			<title><![CDATA[Search]]></title>
			<description><![CDATA[Search all topics from these forums.]]></description>
			<name>q</name>
			<link>http://forum.openmamba.org/search.php</link>
		</textInput>
		<atom:link href="http://forum.openmamba.org/rss.php?forum=6" rel="self" type="application/rss+xml" />

		<item>
			<title>silvan on "Release: openmamba livecd snapshot for x86_64 (installable)"</title>
			<link>http://forum.openmamba.org/topic.php?id=2669#post-6890</link>
			<pubDate>Thu, 07 Feb 2013 12:46:26 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">6890@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;The first 64 bit version of &#60;code&#62;openmamba livecd&#60;/code&#62; is &#60;a href=&#34;http://www.openmamba.org/distribution/announcements.html?distrelease=devel&#38;amp;medium=livecd&#38;amp;version=20130207&#34;&#62;available&#60;/a&#62;. The live system is based on KDE 4 and provides all the features of the classic 32 bit version including the tool to install the system on the PC. The porting of the second-stage installed additional components is yet to be completed, but those who want to install 64 bit openmamba today will be able to add the missing components later as soon as they become available.&#60;/p&#62;
&#60;p&#62;To boot and install a live openmamba medium you need to follow one of the following procedures:&#60;/p&#62;
&#60;ul&#62;
&#60;li&#62;download the ISO image and burn into a CD/DVD medium
&#60;/li&#62;
&#60;li&#62;prepare a USB pendrive starting from an openmamba system:
&#60;ul&#62;
&#60;li&#62;using the &#60;code&#62;usbinstall&#60;/code&#62; tool that is available in the system applications menu
&#60;/li&#62;
&#60;li&#62;installing the modified &#60;code&#62;unetbootin&#60;/code&#62; package (*) through &#60;code&#62;Add/Remove software packages...&#60;/code&#62;
&#60;/li&#62;
&#60;/ul&#62;
&#60;/li&#62;
&#60;li&#62;prepare a bootable USB pendrive from any Linux system by following the instructions found in the &#60;a href=&#34;http://www.openmamba.org/distribution/media/bootusb.html&#34;&#62;openmamba bootusb archive&#60;/a&#62; page&#60;/li&#62;
&#60;/ul&#62;
&#60;p&#62;&#60;em&#62;(*) support for openmamba in all &#60;code&#62;unetbootin&#60;/code&#62; Linux version will be available when the &#60;a href=&#34;https://bugs.launchpad.net/unetbootin/+bug/1114339&#34;&#62;patch I have submitted&#60;/a&#62; will be accepted and integrated  upstream.&#60;/em&#62;
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Release: openmamba milestone2 2.0pre7 &#34;LinuxDay Preview&#34;"</title>
			<link>http://forum.openmamba.org/topic.php?id=625#post-4187</link>
			<pubDate>Sat, 22 Oct 2011 11:45:01 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">4187@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;The ISO images and archives of the seventh openmamba milestone2 pre-release are available for download.&#60;br /&#62;
- LibreOffice 3.4&#60;br /&#62;
- Firefox 7&#60;br /&#62;
- support for 4GB+ RAM system extended also to livecd-light version for server installations&#60;br /&#62;
- cdrtool -&#38;gt; cdrkit switch&#60;br /&#62;
- installation and system bugfixes&#60;/p&#62;
&#60;p&#62;The downloadable media are:&#60;br /&#62;
- livedvd: complete and recommended for most installations, kernel for 4GB+ RAM systems can be selected at boot&#60;br /&#62;
- livecd: base system release limited to fit into a CD, the installation of the additional components in the livedvd version can be made after installation through a network connection&#60;br /&#62;
- livecd-gnome: GNOME desktop environment version for CD medium. Additional components can be installed from network after the installation. The system is stable and usable but the work on GNOME desktop is still in progress and any problem seen and reported will be rapidly fixed through system updates&#60;br /&#62;
- livecd-light: light version for optimized server installations and old for hardware with limited resources&#60;br /&#62;
- sdk: ARM EABI compatible root filesystem with the LXDE graphical environment. Suitable for the installation on ARM based mobile and embedded devices&#60;br /&#62;
- bootusb: auxiliary archive for booting and installing live media through a USB storage device.&#60;/p&#62;
&#60;p&#62;All targets support x86 compatible archs (with the exception of sdk) and are available in english, italian and spanish languages. The ISO images can be burnt on CD/DVD media or installed in a USB pendrive and used to boot a live system and install it.&#60;/p&#62;
&#60;p&#62;A detailed list of changes can be found on these pages: &#60;a href=&#34;http://www.openmamba.org/distribution/distromatic.html?tag=milestone2&#38;#038;changelog&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/distromatic.html?tag=milestone2&#38;#038;changelog&#60;/a&#62;&#60;br /&#62;
&#60;a href=&#34;http://www.openmamba.org/distribution/distromatic.html?tag=milestone2-updates&#38;#038;changelog&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/distromatic.html?tag=milestone2-updates&#38;#038;changelog&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;and on the git repository:&#60;br /&#62;
&#60;a href=&#34;http://git.openmamba.org&#34; rel=&#34;nofollow&#34;&#62;http://git.openmamba.org&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;Thanks to all the people who contributed in different ways to the development of this new release of openmamba. &#60;/p&#62;
&#60;p&#62;Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Release: openmamba milestone2 2.0pre6"</title>
			<link>http://forum.openmamba.org/topic.php?id=618#post-4146</link>
			<pubDate>Sat, 08 Oct 2011 18:22:52 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">4146@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;The ISO images and archives of the sixth openmamba milestone2 pre-release are available for download.&#60;/p&#62;
&#60;p&#62;This new release adds the following new features:&#60;br /&#62;
- Linux kernel 3.0.4&#60;br /&#62;
- support for 4GB+ RAM system (livedvd version)&#60;br /&#62;
- live-gnome: new stable live CD based on the Gnome desktop environment, version 2.32. 3.x will be optionally available as an upgrade when ready&#60;br /&#62;
- live-light: new stable live CD based on the LXDE environment&#60;br /&#62;
- USB 3.0 support for the USB live version of openmamba&#60;br /&#62;
- KDE 4.6.5 (KDE 4.7.x will be available as an update as soon as the changes and tests for painless user upgrades will be completed)&#60;br /&#62;
- Chromium is the new default and recommended browser&#60;br /&#62;
- added support for the open source 'nouveau' video driver for system having an NVIDIA graphical chipset, as well as X.org updates with all other graphic drivers&#60;/p&#62;
&#60;p&#62;The downloadable media are:&#60;br /&#62;
- livedvd: complete and recommended for most installations, kernel for 4GB+ RAM systems can be selected at boot&#60;br /&#62;
- livecd: base system release limited to fit into a CD, the installation of the additional components in the livedvd version can be made after installation through a network connection&#60;br /&#62;
- livecd-gnome: GNOME desktop environment version for CD medium. Additional components can be installed from network after the installation. The system is stable and usable but the work on GNOME desktop is still in progress and any problem seen and reported will be rapidly fixed through system updates&#60;br /&#62;
- livecd-light: light version for optimized server installations and old for hardware with limited resources&#60;br /&#62;
- sdk: ARM EABI compatible root filesystem with the LXDE graphical environment. Suitable for the installation on ARM based mobile and embedded devices&#60;br /&#62;
- bootusb: auxiliary archive for booting and installing live media through a USB storage device.&#60;/p&#62;
&#60;p&#62;All targets support x86 compatible archs (with the exception of sdk) and are available in english, italian and spanish languages. The ISO images can be burnt on CD/DVD media or installed in a USB pendrive and used to boot a live system and install it.&#60;/p&#62;
&#60;p&#62;Please note that the livegames target is no longer available as a stable release but is still available as a weekly development snapshot.&#60;/p&#62;
&#60;p&#62;A long and detailed list of changes can be found on these pages: &#60;a href=&#34;http://www.openmamba.org/distribution/distromatic.html?tag=milestone2&#38;#038;changelog&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/distromatic.html?tag=milestone2&#38;#038;changelog&#60;/a&#62;&#60;br /&#62;
&#60;a href=&#34;http://www.openmamba.org/distribution/distromatic.html?tag=milestone2-updates&#38;#038;changelog&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/distromatic.html?tag=milestone2-updates&#38;#038;changelog&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;and on the new git repository:&#60;br /&#62;
&#60;a href=&#34;http://git.openmamba.org&#34; rel=&#34;nofollow&#34;&#62;http://git.openmamba.org&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;Thanks to all the people who contributed in different ways to the development of this new release of openmamba. &#60;/p&#62;
&#60;p&#62;Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Release: openmamba milestone2 2.0pre4"</title>
			<link>http://forum.openmamba.org/topic.php?id=558#post-3803</link>
			<pubDate>Mon, 04 Apr 2011 20:22:28 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">3803@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;The ISO images of the fouth pre-release of openmamba milestone 2 are available for download.&#60;/p&#62;
&#60;p&#62;This new release adds the following new features:&#60;br /&#62;
- &#34;longterm&#34; 2.6.35.11 Linux kernel&#60;br /&#62;
- Linux kernel 2.6.37.6 can now be installed optionally by enabling the new milestone2-kernel channel&#60;br /&#62;
- KDE desktop environment 4.5.5&#60;br /&#62;
- network connections management is now based on NetworkManager in order to provide an integrated and simple solution for ethernet, wireless, mobile broadband, ADSL (PPPoE) and more&#60;br /&#62;
- 500+ software components updated&#60;/p&#62;
&#60;p&#62;openmamba is available for PC (x86 compatibles) in english, italian and spanish languages. It is distributed as ISO images in livecd, livedvd and livegames flavours and can be freely downloaded from &#60;a href=&#34;http://www.openmamba.org&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org&#60;/a&#62;. The ISO images can be burnt on CD/DVD media or installed in a USB pendrive and used to boot a live system and install it.&#60;/p&#62;
&#60;p&#62;A long and detailed list of changes is available on this page: &#60;a href=&#34;http://www.openmamba.org/distribution/distromatic.html?tag=milestone2&#38;#038;changelog&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/distromatic.html?tag=milestone2&#38;#038;changelog&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;I also would like to announce the availability of a couple of new weekly snapshot targets:&#60;br /&#62;
- openmamba SDK: a root filesystem that can be used as a development environment with many recent devices that are based on ARM compatible processors (tablets, smartphones, smartbooks and plug computers) which also provides a LXDE based graphical environment and NetworkManager, rpm and smart to allow the installation of the 1600+ openmamba packages that have been ported at the date (see &#60;a href=&#34;http://www.openmamba.org/distribution/distromatic.html?tag=devel&#38;#038;arch=arm&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/distromatic.html?tag=devel&#38;#038;arch=arm&#60;/a&#62; for the full list)&#60;br /&#62;
- openmamba livecd-light: a light openmamba release based on the LXDE graphical environment intended for use with computers which have less than 512MB of RAM&#60;/p&#62;
&#60;p&#62;openmamba head maintainer wants to say thanks to all the people who contributed in different ways to the development of this new release of openmamba. Beta testers and developers are welcome to help improve this project and can join by subscribing and writing to the development Lists (&#60;a href=&#34;http://www.openmamba.org/lists/&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/lists/&#60;/a&#62;) or in the Forum (&#60;a href=&#34;http://forum.openmamba.org)&#34; rel=&#34;nofollow&#34;&#62;http://forum.openmamba.org)&#60;/a&#62;.&#60;/p&#62;
&#60;p&#62;Note: we are aware of download problems from our main server and a migration to a new more functional and performant infrastructure is due within the next weeks. Meanwhile we recommend people having download problems to use a download manager with resume capability and to make use of the information from page &#60;a href=&#34;http://www.openmamba.org/distribution/download.html&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/download.html&#60;/a&#62; to perform a MD5 check of the downloaded files.&#60;/p&#62;
&#60;p&#62;Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Upgrade: openmamba milestone2 2.0pre4"</title>
			<link>http://forum.openmamba.org/topic.php?id=554#post-3795</link>
			<pubDate>Mon, 07 Mar 2011 00:04:07 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">3795@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;Users of openmamba milestone2 will get an upgrade to the fourth pre-release&#60;br /&#62;
with the following main new features:&#60;/p&#62;
&#60;p&#62;- &#34;longterm&#34; 2.6.35.11 kernel&#60;br /&#62;
- KDE desktop environment 4.5.5&#60;br /&#62;
- network connections management is now based on NetworkManager in order to&#60;br /&#62;
provide an integrated and simple solution for ethernet, wireless, mobile&#60;br /&#62;
broadband, ADSL (PPPoE) and more&#60;br /&#62;
- 400+ software components updated&#60;br /&#62;
- initial support for the &#34;light&#34; LXDE desktop environment, suitable for&#60;br /&#62;
computers with limited CPU and memory resources&#60;/p&#62;
&#60;p&#62;IMPORTANT NOTES:&#60;br /&#62;
- upon upgrade completion the system must be rebooted&#60;br /&#62;
- network settings like password for Wireless connection, static IP and DNS&#60;br /&#62;
and any other custom settings have to be reconfigured with the new interface&#60;br /&#62;
- in order to decrease the risk of an upgrade failure due to the new kernel it&#60;br /&#62;
is now possible to start the system using the previous kernel (2.6.33),&#60;br /&#62;
available as a choice in the boot menu&#60;br /&#62;
- in order to use the LXDE environment the &#34;lxde&#34; package must be installed,&#60;br /&#62;
then logout from KDE and login again after selecting &#34;lxde&#34; session type&#60;/p&#62;
&#60;p&#62;Within a few days live installation media will be available and the official&#60;br /&#62;
release will be published.&#60;/p&#62;
&#60;p&#62;Wishing you a pleasant upgrade,&#60;br /&#62;
Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Maintenance: openmamba server shutdown from december, 18 2010 at 9.00"</title>
			<link>http://forum.openmamba.org/topic.php?id=543#post-3770</link>
			<pubDate>Fri, 17 Dec 2010 12:45:02 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">3770@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;Due to a maintenance task planned by our ISP, openmamba server will not be reachable from 9.00 of saturday 12/18/2010 till the end of operations.&#60;/p&#62;
&#60;p&#62;Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Release: openmamba milestone2 2.0pre3"</title>
			<link>http://forum.openmamba.org/topic.php?id=539#post-3762</link>
			<pubDate>Sat, 27 Nov 2010 03:49:14 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">3762@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;There are no preset passwords in openmamba, normally when this happens it's because of a bug in desktop environment startup. You can press CTRL-ALT-F2 to access a console where you can set a password but that won't fix the problem. The cause of the problem might be visible in /root/.xsession-errors or you can generate a detailed report by running the command openmamba-makereport and then send the output file to &#60;a href=&#34;mailto:reports@openmamba.org&#34;&#62;reports@openmamba.org&#60;/a&#62; for us to examine it. Regards.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>jerrybee on "Release: openmamba milestone2 2.0pre3"</title>
			<link>http://forum.openmamba.org/topic.php?id=539#post-3761</link>
			<pubDate>Sat, 27 Nov 2010 03:00:13 +0000</pubDate>
			<dc:creator>jerrybee</dc:creator>
			<guid isPermaLink="false">3761@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;I've just downloaded the latest iso file and burned it to a DVD.  I booted the DVD, hoping to install openmamba onto a hard drive.  But the process ended with a text screen asking me for a username and password, which, of course, I don't have.  Please supply the default username and password so that I can proceed with the installation.  I tried a username of &#34;admin&#34;, and it seemed to accept that.  But when then asked for a password, I tried all I could think of and it accepted none of them.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Release: openmamba milestone2 2.0pre3"</title>
			<link>http://forum.openmamba.org/topic.php?id=539#post-3760</link>
			<pubDate>Fri, 26 Nov 2010 19:08:02 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">3760@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;The third pre-release of openmamba milestone 2 is out with over 1000 software updates. The system is based on Linux kernel 2.6.33.7 and provides a modern desktop environment that includes, among the others, KDE (4.5.3), OpenOffice (3.2), Firefox (3.6.12), Amarok (2.3.2).&#60;/p&#62;
&#60;p&#62;openmamba is available for PC (x86 compatibles) in english, italian and spanish languages, it is distributed as ISO images in livecd, livedvd and livegames flavours and can be freely downloaded from &#60;a href=&#34;http://www.openmamba.org&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org&#60;/a&#62;. The ISO image can be burned on CD/DVD media or installed in a USB pendrive and used to boot a live system and install it.&#60;/p&#62;
&#60;p&#62;Users of previous 2.0 pre-releases will receive a consistent upgrade from network to get aligned with the new release. In case of problems it is recommended to write in the Forum at &#60;a href=&#34;http://forum.openmamba.org&#34; rel=&#34;nofollow&#34;&#62;http://forum.openmamba.org&#60;/a&#62; or to use the Bug Tracking page at &#60;a href=&#34;http://bugs.openmamba.org&#34; rel=&#34;nofollow&#34;&#62;http://bugs.openmamba.org&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;The full list of changes is available on this page: &#60;a href=&#34;http://www.openmamba.org/distribution/distromatic.html?tag=milestone2&#38;#038;changelog&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/distromatic.html?tag=milestone2&#38;#038;changelog&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;Thanks to all the people who contributed in different ways to the development of this new release of openmamba. Beta testers and developers are welcome and can subscribe and write to the development Lists (&#60;a href=&#34;http://www.openmamba.org/lists/&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/lists/&#60;/a&#62;) or in the Forum (&#60;a href=&#34;http://forum.openmamba.org)&#34; rel=&#34;nofollow&#34;&#62;http://forum.openmamba.org)&#60;/a&#62;.&#60;/p&#62;
&#60;p&#62;Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "openmamba milestone2 pre-release 3"</title>
			<link>http://forum.openmamba.org/topic.php?id=536#post-3752</link>
			<pubDate>Thu, 18 Nov 2010 13:35:44 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">3752@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;This morning repository sync operations for version 2.0 pre-release3 have been activated. openmamba milestone2 users will get a consistent update that will align the system with the most recent software packages and features.&#60;br /&#62;
In case of problems it is possibile to use the usual channels to communicate with the developers.&#60;br /&#62;
Installation and live media and the official announcement will be made in the next days.&#60;/p&#62;
&#60;p&#62;Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>aleprova on "Release: openmamba milestone2 2.0pre2"</title>
			<link>http://forum.openmamba.org/topic.php?id=518#post-3705</link>
			<pubDate>Tue, 07 Sep 2010 15:35:05 +0000</pubDate>
			<dc:creator>aleprova</dc:creator>
			<guid isPermaLink="false">3705@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;ORM OBJECT RELATIONAL MAPPING&#60;br /&#62;
It mapping between the objects and the database.ORM, in essence, works by (reversibly) transforming data from one representation to another.&#60;/p&#62;
&#60;p&#62;CRUD (create, read, update, delete) operations&#60;br /&#62;
-	Dati persistent&#60;br /&#62;
-	Operation:ORM OBJECT RELATIONAL MAPPING&#60;br /&#62;
It mapping between the objects and the database.ORM, in essence, works by (reversibly) transforming data from one representation to another.&#60;/p&#62;
&#60;p&#62;CRUD (create, read, update, delete) operations&#60;br /&#62;
-	Dati persistent&#60;br /&#62;
-	Operation:&#60;/p&#62;
&#60;p&#62;■ Storage, organization, and retrieval of structured data&#60;br /&#62;
■ Concurrency and data integrity&#60;br /&#62;
■ Data sharing&#60;/p&#62;
&#60;p&#62;      -      Granularità&#60;/p&#62;
&#60;p&#62;If one application holds a lock on a database object, another application might not be able to access that object. For this reason, row-level locks, which minimize the amount of data that is locked and therefore inaccessible, are better for maximum concurrency than block-level, data partition-level or table-level locks. However, locks require storage and processing time, so a single table lock minimizes lock overhead.&#60;br /&#62;
The LOCKSIZE clause of the ALTER TABLE statement specifies the scope (granularity) of locks at the row, data partition, block, or table level. By default, row locks are used. Only S (Shared) and X (Exclusive) locks are requested by these defined table locks. The ALTER TABLE statement LOCKSIZE ROW clause does not prevent normal lock escalation from occurring.&#60;br /&#62;
A permanent table lock defined by the ALTER TABLE statement might be preferable to a single-transaction table lock using LOCK TABLE statement in the following cases:&#60;br /&#62;
-	The table is read-only, and will always need only S locks. Other users can also obtain S locks on the table.&#60;br /&#62;
-	The table is usually accessed by read-only applications, but is sometimes accessed by a single user for brief maintenance, and that user requires an X lock. While the maintenance program runs, the read-only applications are locked out, but in other circumstances, read-only applications can access the table concurrently with a minimum of locking overhead.&#60;br /&#62;
PAG 52&#60;br /&#62;
Cap2.&#60;br /&#62;
The persistence consists in storing data in a relational database using SQL. Hibernate applications define persistent classes that are “mapped” to database tables.&#60;/p&#62;
&#60;p&#62;package hello;&#60;br /&#62;
public class Message {&#60;br /&#62;
private Long id;&#60;br /&#62;
private String text;&#60;br /&#62;
private Message nextMessage;&#60;br /&#62;
private Message() {&#60;br /&#62;
}&#60;br /&#62;
public Message(String text) {&#60;br /&#62;
this.text = text;&#60;br /&#62;
}&#60;br /&#62;
public Long getId() {&#60;br /&#62;
return id;&#60;br /&#62;
}&#60;br /&#62;
private void setId(Long id) {&#60;br /&#62;
this.id = id;&#60;br /&#62;
}&#60;br /&#62;
public String getText() {&#60;br /&#62;
return text;&#60;br /&#62;
}&#60;br /&#62;
}&#60;br /&#62;
public void setText(String text) {&#60;br /&#62;
this.text = text;&#60;br /&#62;
}&#60;br /&#62;
public Message getNextMessage() {&#60;br /&#62;
return nextMessage;&#60;br /&#62;
}&#60;br /&#62;
public void setNextMessage(Message nextMessage) {&#60;br /&#62;
this.nextMessage = nextMessage;&#60;br /&#62;
}&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;It prints &#34;Hello World&#34; to the console.&#60;br /&#62;
Message message = new Message(&#34;Hello World&#34;);&#60;br /&#62;
System.out.println( message.getText() );&#60;/p&#62;
&#60;p&#62;Our persistent class can be used in any execution context at all. Of course, you came here to see Hibernate itself, so let’s save a new Message to the database:&#60;/p&#62;
&#60;p&#62;Session session = getSessionFactory().openSession();&#60;br /&#62;
Transaction tx = session.beginTransaction();&#60;br /&#62;
Message message = new Message(&#34;Hello World&#34;);&#60;br /&#62;
session.save(message);&#60;br /&#62;
tx.commit();&#60;br /&#62;
session.close();&#60;/p&#62;
&#60;p&#62;This code calls the Hibernate Session and Transaction interfaces. It results in the execution of something similar to the following SQL:&#60;/p&#62;
&#60;p&#62;insert into MESSAGES (MESSAGE_ID, MESSAGE_TEXT, NEXT_MESSAGE_ID)&#60;br /&#62;
values (1, 'Hello World', null)&#60;/p&#62;
&#60;p&#62;We can also assume that the MESSAGES table already exists.&#60;br /&#62;
Session newSession = getSessionFactory().openSession();&#60;br /&#62;
Transaction newTransaction = newSession.beginTransaction();&#60;br /&#62;
List messages = newSession.find(&#34;from Message as m order by m.text asc&#34;);&#60;br /&#62;
//&#60;br /&#62;
HIBERNATE QUERY:&#60;br /&#62;
select m.MESSAGE_ID, m.MESSAGE_TEXT, m.NEXT_MESSAGE_ID&#60;br /&#62;
from MESSAGES m&#60;br /&#62;
order by m.MESSAGE_TEXT asc&#60;br /&#62;
//&#60;br /&#62;
System.out.println( messages.size() + &#34; message(s) found:&#34; );&#60;br /&#62;
for ( Iterator iter = messages.iterator(); iter.hasNext(); ) {&#60;br /&#62;
Message message = (Message) iter.next();&#60;br /&#62;
System.out.println( message.getText() );&#60;br /&#62;
}&#60;br /&#62;
newTransaction.commit();&#60;br /&#62;
newSession.close();&#60;br /&#62;
All SQL is generated at runtime.&#60;br /&#62;
XML MAPPING HIBERNATE CODE&#60;br /&#62;
&#38;lt;?xml version=&#34;1.0&#34;?&#38;gt;&#60;br /&#62;
&#38;lt;!DOCTYPE hibernate-mapping PUBLIC&#60;br /&#62;
&#34;-//Hibernate/Hibernate Mapping DTD//EN&#34;&#60;br /&#62;
&#34;http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd&#34;&#38;gt;&#60;br /&#62;
&#38;lt;hibernate-mapping&#38;gt;&#60;br /&#62;
&#38;lt;class&#60;br /&#62;
name=&#34;hello.Message&#34;&#60;br /&#62;
table=&#34;MESSAGES&#34;&#38;gt;&#60;br /&#62;
&#38;lt;id name=&#34;id&#34; column=&#34;MESSAGE_ID&#34;&#38;gt;&#60;br /&#62;
&#38;lt;generator class=&#34;increment&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;/id&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;text&#34; column=&#34;MESSAGE_TEXT&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;many-to-one name=&#34;nextMessage&#34; cascade=&#34;all&#34; column=&#34;NEXT_MESSAGE_ID&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;/class&#38;gt;&#60;br /&#62;
&#38;lt;/hibernate-mapping&#38;gt;&#60;br /&#62;
The Hibernate interfaces may be approximately classified as follows:&#60;/p&#62;
&#60;p&#62;■ Interfaces called by applications to perform basic CRUD and querying operations. These interfaces are the main point of dependency of application business/control logic on Hibernate. They include Session, Transaction, and Query.&#60;br /&#62;
■ Interfaces called by application infrastructure code to configure Hibernate, most importantly the Configuration class.&#60;br /&#62;
■ Callback interfaces that allow the application to react to events occurring inside Hibernate, such as Interceptor, Lifecycle, and Validatable.&#60;br /&#62;
■ Interfaces that allow extension of Hibernate’s powerful mapping functionality, such as UserType, CompositeUserType, and IdentifierGenerator. These interfaces are implemented by application infrastructure code (if necessary).&#60;/p&#62;
&#60;p&#62;•	SESSION&#60;br /&#62;
The Session interface is the primary interface used by Hibernate applications. Hibernate sessions are not thread safe and should by design be used by only one thread at a time.&#60;/p&#62;
&#60;p&#62;•	SESSION FACTORY&#60;br /&#62;
It’s intended to be shared among many application threads. There is typically a single SessionFactory for the whole application. However, if your application accesses multiple databases using Hibernate, you’ll need a SessionFactory for each database. The SessionFactory caches generated SQL statements and other mapping metadata that Hibernate uses at runtime.&#60;/p&#62;
&#60;p&#62;The following code starts Hibernate:&#60;br /&#62;
Configuration cfg = new Configuration();&#60;br /&#62;
cfg.addResource(&#34;hello/Message.hbm.xml&#34;);&#60;br /&#62;
cfg.setProperties( System.getProperties() );&#60;br /&#62;
SessionFactory sessions = cfg.buildSessionFactory();&#60;/p&#62;
&#60;p&#62;The location of the mapping file, Message.hbm.xml, is relative to the root of the application classpath.&#60;/p&#62;
&#60;p&#62;If we had another persistent class, it would be defined in its own mapping file.  You can load multiple mapping files by calling addResource() as often as you have to. Alternatively, if you follow the convention just described, you can use the method addClass(), passing a persistent class as the parameter:&#60;/p&#62;
&#60;p&#62;SessionFactory sessions = new Configuration()&#60;br /&#62;
.addClass(org.hibernate.auction.model.Item.class)&#60;br /&#62;
.addClass(org.hibernate.auction.model.Category.class)&#60;br /&#62;
.addClass(org.hibernate.auction.model.Bid.class)&#60;br /&#62;
.setProperties( System.getProperties() )&#60;br /&#62;
.buildSessionFactory();&#60;/p&#62;
&#60;p&#62;If another SessionFactory is needed—if there are multiple databases, for example—you repeat the process.&#60;br /&#62;
To specify configuration options, you may use any of the following techniques:&#60;/p&#62;
&#60;p&#62;■ Used except for quick testing and prototypes:&#60;br /&#62;
■ Pass an instance of java.util.Properties to Configuration.setProperties().&#60;br /&#62;
■ Set system properties using java -Dproperty=value.&#60;br /&#62;
■ Place a file called hibernate.properties in the classpath.&#60;br /&#62;
■ Include &#38;lt;property&#38;gt; elements in hibernate.cfg.xml in the classpath.&#60;/p&#62;
&#60;p&#62;•	CONFIGURATION&#60;br /&#62;
The Configuration object is used to configure and bootstrap Hibernate. The application uses a Configuration instance to specify the location of mapping documents and Hibernate-specific properties and then create the SessionFactory.&#60;/p&#62;
&#60;p&#62;Configuration in non-managed environment:&#60;br /&#62;
Java applications should use a pool of JDBC connections. There are three reasons for using a pool:&#60;/p&#62;
&#60;p&#62;■ Acquiring a new connection is expensive.&#60;br /&#62;
■ Maintaining many idle connections is expensive.&#60;br /&#62;
■ Creating prepared statements is also expensive for some drivers. &#60;/p&#62;
&#60;p&#62;hibernate.connection.driver_class = org.postgresql.Driver&#60;br /&#62;
hibernate.connection.url = jdbc:postgresql://localhost/auctiondb&#60;br /&#62;
hibernate.connection.username = auctionuser&#60;br /&#62;
hibernate.connection.password = secret&#60;br /&#62;
hibernate.dialect = net.sf.hibernate.dialect.PostgreSQLDialect&#60;br /&#62;
hibernate.c3p0.min_size=5&#60;br /&#62;
hibernate.c3p0.max_size=20&#60;br /&#62;
hibernate.c3p0.timeout=300&#60;br /&#62;
hibernate.c3p0.max_statements=50&#60;br /&#62;
hibernate.c3p0.idle_test_period=3000&#60;/p&#62;
&#60;p&#62;Specifying properties of the form hibernate.c3p0.* selects C3P0 as Hibernate’s connection pool.&#60;/p&#62;
&#60;p&#62;Configuration managed environment:&#60;br /&#62;
A managed environment handles certain cross-cutting concerns, such as application security (authorization and authentication), connection pooling, and transaction management.&#60;/p&#62;
&#60;p&#62;hibernate.connection.datasource = java:/comp/env/jdbc/AuctionDB&#60;br /&#62;
hibernate.transaction.factory_class = \&#60;br /&#62;
net.sf.hibernate.transaction.JTATransactionFactory&#60;br /&#62;
hibernate.transaction.manager_lookup_class = \&#60;br /&#62;
net.sf.hibernate.transaction.JBossTransactionManagerLookup&#60;br /&#62;
hibernate.dialect = net.sf.hibernate.dialect.PostgreSQLDialect&#60;/p&#62;
&#60;p&#62;XML-based Configuration:&#60;br /&#62;
The hibernate.cfg.xml file may also specify the location of mapping documents. &#60;/p&#62;
&#60;p&#62;?xml version='1.0'encoding='utf-8'?&#38;gt;&#60;br /&#62;
&#38;lt;!DOCTYPE hibernate-configuration&#60;br /&#62;
PUBLIC &#34;-//Hibernate/Hibernate Configuration DTD//EN&#34;&#60;br /&#62;
&#34;http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd&#34;&#38;gt;&#60;br /&#62;
&#38;lt;hibernate-configuration&#38;gt;&#60;br /&#62;
&#38;lt;session-factory name=&#34;java:/hibernate/HibernateFactory&#34;&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;show_sql&#34;&#38;gt;true&#38;lt;/property&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;connection.datasource&#34;&#38;gt; java:/comp/env/jdbc/AuctionDB&#38;lt;/property&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;dialect&#34;&#38;gt; net.sf.hibernate.dialect.PostgreSQLDialect &#38;lt;/property&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;transaction.manager_lookup_class&#34;&#38;gt;&#60;br /&#62;
net.sf.hibernate.transaction.JBossTransactionManagerLookup&#60;br /&#62;
&#38;lt;/property&#38;gt;&#60;br /&#62;
&#38;lt;mapping resource=&#34;auction/Item.hbm.xml&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;mapping resource=&#34;auction/Category.hbm.xml&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;mapping resource=&#34;auction/Bid.hbm.xml&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;/session-factory&#38;gt;&#60;br /&#62;
&#38;lt;/hibernate-configuration&#38;gt;&#60;/p&#62;
&#60;p&#62;Now you can initialize Hibernate using:&#60;br /&#62;
SessionFactory sessions = new Configuration() .configure().buildSessionFactory();&#60;br /&#62;
When configure() was called, Hibernate searched for a file named hibernate.cfg.xml in the classpath. If you wish to use a different filename or have Hibernate look in a subdirectory, you must pass a path to the configure() method:&#60;/p&#62;
&#60;p&#62;SessionFactory sessions =&#60;br /&#62;
new Configuration().configure(&#34;/hibernate-config/auction.cfg.xml&#34;).buildSessionFactory();&#60;/p&#62;
&#60;p&#62;Using an XML configuration file is certainly more comfortable than a properties file or even programmatic property configuration.&#60;/p&#62;
&#60;p&#62;Logging&#60;br /&#62;
When you find yourself troubleshooting a difficult problem, you need to be able to see exactly what’s going on inside Hibernate. You can use logging to get a view of Hibernate’s internals. Hibernate logs all interesting events using Apache commons-logging, a thin abstraction layer that directs output to either Apache log4j (if you put log4j.jar in your classpath).&#60;br /&#62;
JNDI&#60;br /&#62;
è acronimo di Java Naming and Directory Interface. All’interno di un Application Server (e anche in applicazioni non necessariamente web). Tutte le operazioni fondamentali che si possono compiere in un Application Server possono essere rimappate utilizzando JNDI. Elenchiamo alcune delle principali operazioni che normalmente vengono compiute: Transazioni (UserTransaction &#38;amp; TransactionManager) Pool di Connessioni ai Database (Datasource) Pool di Connessioni Transazionali ai Database (XADatasource). Con JNDI si possono rimappare tutti i percorsi fisici a cui è necessario puntare, in una sorta di tabella chiave-valore, una specie di HashTable, che rende facilmente configurabile, e quindi portabile, la nostra applicazione. Per maggiori informazioni ed esempi vi invito caldamente a visitare i link correlati. In particolare nel primo link è mostrato come accedere a JNDI in un Application Server Bea Weblogic.&#60;/p&#62;
&#60;p&#62;Finally, you have the hibernate.properties, hibernate.cfg.xml, and log4j.properties configuration files.&#60;br /&#62;
Or&#60;/p&#62;
&#60;p&#62;JMX:  JAVA MANAGEMENT EXTENSION&#60;/p&#62;
&#60;p&#62;The JMX specification defines the following components:&#60;/p&#62;
&#60;p&#62;■ The JMX MBean—A reusable component (usually infrastructural) that exposes an interface for management (administration)&#60;br /&#62;
■ The JMX container—Mediates generic access (local or remote) to the MBean&#60;br /&#62;
■ The (usually generic) JMX client—May be used to administer any MBean via the JMX container&#60;/p&#62;
&#60;p&#62;An application server with support for JMX (such as JBoss) acts as a JMX container and allows an MBean to be configured and initialized as part of the application server startup process.&#60;/p&#62;
&#60;p&#62;&#38;lt;server&#38;gt;&#60;br /&#62;
&#38;lt;mbean code=&#34;net.sf.hibernate.jmx.HibernateService&#34; name=&#34;jboss.jca:service=HibernateFactory, name=HibernateFactory&#34;&#38;gt;&#60;br /&#62;
&#38;lt;depends&#38;gt;jboss.jca:service=RARDeployer&#38;lt;/depends&#38;gt;&#60;br /&#62;
&#38;lt;depends&#38;gt;jboss.jca:service=LocalTxCM, name=DataSource&#38;lt;/depends&#38;gt;&#60;br /&#62;
&#38;lt;attribute name=&#34;MapResources&#34;&#38;gt; auction/Item.hbm.xml, auction/Bid.hbm.xml &#38;lt;/attribute&#38;gt;&#60;br /&#62;
&#38;lt;attribute name=&#34;JndiName&#34;&#38;gt; java:/hibernate/HibernateFactory &#38;lt;/attribute&#38;gt;&#60;br /&#62;
&#38;lt;attribute name=&#34;Datasource&#34;&#38;gt; java:/comp/env/jdbc/AuctionDB &#38;lt;/attribute&#38;gt;&#60;br /&#62;
&#38;lt;attribute name=&#34;Dialect&#34;&#38;gt; net.sf.hibernate.dialect.PostgreSQLDialect &#38;lt;/attribute&#38;gt;&#60;br /&#62;
&#38;lt;attribute name=&#34;TransactionStrategy&#34;&#38;gt; net.sf.hibernate.transaction.JTATransactionFactory &#38;lt;/attribute&#38;gt;&#60;br /&#62;
&#38;lt;attribute name=&#34;TransactionManagerLookupStrategy&#34;&#38;gt; net.sf.hibernate.transaction.JBossTransactionManagerLookup &#38;lt;/attribute&#38;gt;&#60;br /&#62;
&#38;lt;attribute name=&#34;UserTransactionName&#34;&#38;gt; java:/UserTransaction &#38;lt;/attribute&#38;gt;&#60;br /&#62;
&#38;lt;/mbean&#38;gt;&#60;br /&#62;
&#38;lt;/server&#38;gt;&#60;/p&#62;
&#60;p&#62;•	TRANSICTION&#60;br /&#62;
The Transaction interface is an optional API. Hibernate applications may choose not to use this interface, instead managing transactions in their own infrastructure code. A Transaction abstracts application code from the underlying transaction implementation allowing the application to control transaction boundaries via a consistent API.&#60;/p&#62;
&#60;p&#62;•	CALLBACK&#60;br /&#62;
Callback interfaces allow the application to receive a notification when something interesting happens to an object—for example, when an object is loaded, saved, or deleted. Hibernate applications don’t need to implement these callbacks, but they’re useful for implementing certain kinds of generic functionality, such as creating audit records. The Lifecycle and Validatable interfaces allow a persistent object to react to events relating to its own persistence lifecycle.&#60;/p&#62;
&#60;p&#62;•	TYPE&#60;br /&#62;
A Hibernate Type object maps a Java type to a database column type (actually, the type may span multiple columns). All persistent properties of persistent classes, including associations, have a corresponding Hibernate type. This design makes Hibernate extremely flexible and extensible.&#60;/p&#62;
&#60;p&#62;•	EXTENSION POINTS:&#60;/p&#62;
&#60;p&#62;■ Primary key generation (IdentifierGenerator interface)&#60;br /&#62;
■ SQL dialect support (Dialect abstract class)&#60;br /&#62;
////Serve e a specificare quale database stiamo utilizzando oracledialect; mysqldialect ecc...&#60;br /&#62;
■ Caching strategies (Cache and CacheProvider interfaces)&#60;br /&#62;
■ JDBC connection management (ConnectionProvider interface)&#60;br /&#62;
■ Transaction management (TransactionFactory, Transaction, and TransactionManagerLookup interfaces)&#60;br /&#62;
■ ORM strategies (ClassPersister interface hierarchy)&#60;br /&#62;
■ Property access strategies (PropertyAccessor interface)&#60;br /&#62;
■ Proxy creation (ProxyFactory interface)&#60;/p&#62;
&#60;p&#62;&#60;a href=&#34;http://www.roseindia.net/hibernate/firstexample.shtml&#34; rel=&#34;nofollow&#34;&#62;http://www.roseindia.net/hibernate/firstexample.shtml&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;ARCHITETTURA:&#60;br /&#62;
Session, Transaction, and Query&#60;/p&#62;
&#60;p&#62;(Create and compile a persistent class (the initial Message, for example), copy Hibernate and its required libraries to the classpath together with a hibernate.properties file, and build a SessionFactory. The next section covers advanced Hibernate configuration options. Some of them are recommended, such as logging executed SQL statements for debugging or using the convenient XML configuration file instead of plain properties.)&#60;/p&#62;
&#60;p&#62;Cap3. &#60;/p&#62;
&#60;p&#62;You shouldn’t put code that addresses these cross-cutting concerns in the classes that implement the domain model. When these concerns start to appear in the domain model classes, we call this an example of leakage of concerns. The EJB standard tries to solve the problem of leaky concerns. Indeed, if we implemented our domain model using entity beans, the container would take care of some concerns for us (or at least externalize those concerns to the deployment descriptor). The EJB container prevents leakage of certain cross-cutting concerns using interception. An EJB is a managed component, always executed inside the EJB container. The container intercepts calls to your beans and executes its own functionality. Hibernate isn’t an application server, and it doesn’t try to implement all the cross-cutting concerns mentioned in the EJB specification. Hibernate is a solution for just one of these concerns: persistence. If you require declarative security and transaction management, you should still access your domain model via a session bean, taking advantage of the EJB container’s implementation of these concerns. Hibernate is commonly used together with the well-known session façade J2EE pattern. Much discussion has gone into the topic of persistence, and both Hibernate and EJB entity beans take care of that concern. However, Hibernate offers something that entity beans don’t: transparent persistence. Our Item class, for example, will not have any code-level dependency to any Hibernate API. Furthermore:&#60;/p&#62;
&#60;p&#62;■ Hibernate doesn’t require that any special superclasses or interfaces be inherited or implemented by persistent classes. Nor are any special classes used to implement properties or associations. Thus, transparent persistence improves code readability, as you’ll soon see.&#60;br /&#62;
■ Persistent classes may be reused outside the context of persistence, in unit tests or in the user interface (UI) tier, for example. Testability is a basic requirement for applications with rich domain models.&#60;br /&#62;
■ In a system with transparent persistence, objects aren’t aware of the underlying data store; they need not even be aware that they are being persisted or retrieved. Persistence concerns are externalized to a generic persistence manager interface —in the case of Hibernate, the Session and Query interfaces.&#60;/p&#62;
&#60;p&#62;By this definition of transparent persistence, you see that certain non-automated persistence layers are transparent (for example, the DAO pattern) because they decouple the persistence-related code with abstract programming interfaces.&#60;br /&#62;
The programming model we’ll introduce is a non-intrusive mix of JavaBean specification details, POJO best practices, and Hibernate requirements. A POJO declares business methods, which define behavior, and properties, which represent state. Some properties represent associations to other POJOs. It’s an implementation of the User entity of our domain model.&#60;/p&#62;
&#60;p&#62;public class User implements Serializable {&#60;br /&#62;
private String username;&#60;br /&#62;
private Address address;&#60;br /&#62;
public User() {&#60;br /&#62;
}&#60;br /&#62;
public String getUsername() {&#60;br /&#62;
return username;&#60;br /&#62;
}&#60;br /&#62;
public void setUsername(String username) {&#60;br /&#62;
this.username = username;&#60;br /&#62;
}&#60;br /&#62;
public Address getAddress() {&#60;br /&#62;
return address;&#60;br /&#62;
public void setAddress(Address address) {&#60;br /&#62;
this.address = address;&#60;br /&#62;
}&#60;br /&#62;
...&#60;br /&#62;
}&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;You use properties to express associations between POJO classes, and you use accessor methods to navigate the object graph at runtime.&#60;br /&#62;
scaffolding code:codice di “collegamento”(ER model).&#60;br /&#62;
For example let’s implement the scaffolding code for the one-to-many self-association of Category:&#60;/p&#62;
&#60;p&#62;public class Category implements Serializable {&#60;br /&#62;
private String name;&#60;br /&#62;
private Category parentCategory;&#60;br /&#62;
private Set childCategories = new HashSet();&#60;br /&#62;
public Category() { }&#60;br /&#62;
...&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;To allow bidirectional navigation of the association, we require two attributes. The parentCategory attribute implements the single-valued end of the association and is declared to be of type Category. The many-valued end, implemented by the child-Categories attribute, must be of collection type. We choose a Set, since duplicates are disallowed, and initialize the instance variable to a new instance of HashSet. We now have some private instance variables but no public interface to allow access from business code or property management by Hibernate. Let’s add some accessor methods to the Category class:&#60;/p&#62;
&#60;p&#62;public String getName() {&#60;br /&#62;
return name;&#60;br /&#62;
}&#60;br /&#62;
public void setName(String name) {&#60;br /&#62;
this.name = name;&#60;br /&#62;
}&#60;br /&#62;
public Set getChildCategories() {&#60;br /&#62;
return childCategories;&#60;br /&#62;
}&#60;br /&#62;
public void setChildCategories(Set childCategories) {&#60;br /&#62;
this.childCategories = childCategories;&#60;br /&#62;
}&#60;br /&#62;
public Category getParentCategory() {&#60;br /&#62;
return parentCategory;&#60;br /&#62;
}&#60;br /&#62;
public void setParentCategory(Category parentCategory) {&#60;br /&#62;
this.parentCategory = parentCategory;&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;Again, these accessor methods need to be declared public only if they’re part of the external interface of the persistent class, the public interface used by the application logic. The basic procedure for adding a child Category to a parent Category looks like this:&#60;/p&#62;
&#60;p&#62;Category aParent = new Category();&#60;br /&#62;
Category aChild = new Category();&#60;br /&#62;
aChild.setParentCategory(aParent);&#60;br /&#62;
aParent.getChildCategories().add(aChild);&#60;/p&#62;
&#60;p&#62;■ The parentCategory of the child must be set, effectively breaking the association between the child and its old parent (there can be only one parent for any child).&#60;br /&#62;
■ The child must be added to the child Categories collection of the new parent.&#60;/p&#62;
&#60;p&#62;Programming models like EJB entity beans muddle this behavior by introducing container-managed relationships. The container automatically changes the other side of a relationship if one side is modified by the application.&#60;/p&#62;
&#60;p&#62;Hibernate doesn’t care if property access methods are private or public, so we can focus on good API design.&#60;/p&#62;
&#60;p&#62;One of the reasons we like to use JavaBeans-style access methods is that they provide encapsulation: The hidden internal implementation of a property can be changed without any changes to the public interface. This allows you to abstract the internal data structure of a class—the instance variables—from the design of the database. For example, if your database stores a name of the user as a single NAME column, but your User class has first name and last name properties, you can add the following persistent name property to your class:&#60;/p&#62;
&#60;p&#62;Public class User {&#60;br /&#62;
private String firstname;&#60;br /&#62;
private String lastname;&#60;br /&#62;
...&#60;br /&#62;
public String getName() {&#60;br /&#62;
return firstname + ' ' + lastname;&#60;br /&#62;
}&#60;br /&#62;
public void setName(String name) {&#60;br /&#62;
StringTokenizer t = new StringTokenizer(name);&#60;br /&#62;
firstname = t.nextToken();&#60;br /&#62;
lastname = t.nextToken();&#60;br /&#62;
)&#60;br /&#62;
...&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;Later, you’ll see that a Hibernate custom type is probably a better way to handle many of these kinds of situations.&#60;br /&#62;
Hibernate will later use our accessor methods to populate the state of an object when loading the object from the database.  Hibernate result in unnecessary SQL UPDATEs.&#60;br /&#62;
This kind of code should almost always be avoided in accessor methods:&#60;/p&#62;
&#60;p&#62;public void setNames(List namesList) {&#60;br /&#62;
names = (String[]) namesList.toArray();&#60;br /&#62;
}&#60;br /&#62;
public List getNames() {&#60;br /&#62;
return Arrays.asList(names);&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;METADATA&#60;br /&#62;
ORM tools require a metadata format for the application to specify the mapping between classes and tables, properties and columns, associations and foreign keys, Java types and SQL types. This information is called the object/relational mapping metadata. It defines the transformation between the different data type systems and relationship representations.&#60;br /&#62;
XML mapping:&#60;/p&#62;
&#60;p&#62;(DTD = document type definition)&#60;/p&#62;
&#60;p&#62;&#38;lt;?xml version=&#34;1.0&#34;?&#38;gt;&#60;br /&#62;
&#38;lt;!DOCTYPE hibernate-mapping PUBLIC &#34;-//Hibernate/Hibernate Mapping DTD//EN&#34;&#60;br /&#62;
&#34;http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd&#34;&#38;gt;&#60;br /&#62;
&#38;lt;hibernate-mapping&#38;gt;&#60;br /&#62;
&#38;lt;class  name=&#34;org.hibernate.auction.model.Category&#34; table=&#34;CATEGORY&#34;&#38;gt;&#60;br /&#62;
&#38;lt;id  name=&#34;id&#34; column=&#34;CATEGORY_ID&#34; type=&#34;long&#34;&#38;gt;&#60;br /&#62;
&#38;lt;generator class=&#34;native&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;/id&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;name&#34; column=&#34;NAME&#34; type=&#34;string&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;/class&#38;gt;&#60;br /&#62;
&#38;lt;/hibernate-mapping&#38;gt;&#60;/p&#62;
&#60;p&#62;If you omit the type, Hibernate will use the Hibernate type string by default. The &#38;lt;property&#38;gt; element (and especially the &#38;lt;column&#38;gt; element) also defines certain attributes that apply mainly to automatic database schema generation.&#60;/p&#62;
&#60;p&#62;&#38;lt;property name=&#34;initialPrice&#34; column=&#34;INITIAL_PRICE&#34; not-null=&#34;true&#34;/&#38;gt;&#60;/p&#62;
&#60;p&#62;&#38;lt;property name=&#34;totalIncludingTax&#34;&#60;br /&#62;
formula=&#34;TOTAL + TAX_RATE * TOTAL&#34;&#60;br /&#62;
type=&#34;big_decimal&#34;/&#38;gt;&#60;/p&#62;
&#60;p&#62;The given SQL formula is evaluated every time the entity is retrieved from the database. The property doesn’t have a column attribute (or sub-element) and appears in an SQL SELECTs. Formulas may refer to columns of the database table, call SQL functions, and include SQL subselects. This example, mapping a derived property of item, uses a correlated subselect to calculate the average amount of all bids for an item:&#60;/p&#62;
&#60;p&#62;&#38;lt;property name=&#34;averageBidAmount&#34;&#60;br /&#62;
formula=&#34;( select AVG(b.AMOUNT)&#60;br /&#62;
                   from BID b&#60;br /&#62;
              ➾where b.ITEM_ID = ITEM_ID )&#34;&#60;br /&#62;
type=&#34;big_decimal&#34;/&#38;gt;&#60;/p&#62;
&#60;p&#62;access=&#34;field&#34;&#60;/p&#62;
&#60;p&#62;Access to properties via accessor methods is considered best practice by the Hibernate community. It provides an extra level of abstraction between the Java domain model and the data model.&#60;/p&#62;
&#60;p&#62;insert=&#34;false&#34;&#60;br /&#62;
update=&#34;false&#34;&#60;/p&#62;
&#60;p&#62;The property name of the JavaBean is therefore immutable and can be read from the database but not modified in any way. If the complete class is immutable, set the immutable=&#34;false&#34; in the class mapping. The dynamic-update attribute tells Hibernate whether to include unmodified properties in the SQL UPDATE:&#60;/p&#62;
&#60;p&#62;&#38;lt;class name=&#34;org.hibernate.auction.model.User&#34;&#60;br /&#62;
dynamic-insert=&#34;true&#34;&#60;br /&#62;
dynamic-update=&#34;true&#34;&#38;gt;&#60;br /&#62;
...&#60;br /&#62;
&#38;lt;/class&#38;gt;&#60;/p&#62;
&#60;p&#62;These are both class-level settings. Enabling either of these settings will cause Hibernate to generate some SQL at runtime, instead of using the SQL cached at startup time.&#60;br /&#62;
SQL schemas&#60;br /&#62;
You can specify a default schema using the hibernate.default_schema configuration option. Alternatively, you can specify a schema in the mapping document. A schema may be specified for a particular class or collection mapping:&#60;/p&#62;
&#60;p&#62;&#38;lt;hibernate-mapping&#38;gt;&#60;br /&#62;
&#38;lt;class&#60;br /&#62;
name=&#34;org.hibernate.auction.model.Category&#34;&#60;br /&#62;
table=&#34;CATEGORY&#34;&#60;br /&#62;
schema=&#34;AUCTION&#34;&#38;gt;&#60;br /&#62;
...&#60;br /&#62;
&#38;lt;/class&#38;gt;&#60;br /&#62;
&#38;lt;/hibernate-mapping&#38;gt;&#60;/p&#62;
&#60;p&#62;It can even be declared for the whole document:&#60;/p&#62;
&#60;p&#62;&#38;lt;hibernate-mapping&#60;br /&#62;
default-schema=&#34;AUCTION&#34;&#38;gt;&#60;br /&#62;
..&#60;br /&#62;
&#38;lt;/hibernate-mapping&#38;gt;&#60;/p&#62;
&#60;p&#62;This isn’t the only thing the root &#38;lt;hibernate-mapping&#38;gt; element is useful for.&#60;/p&#62;
&#60;p&#62;( &#60;a href=&#34;http://www.mokabyte.it/2005/11/hibernate.htm&#34; rel=&#34;nofollow&#34;&#62;http://www.mokabyte.it/2005/11/hibernate.htm&#60;/a&#62;&#60;br /&#62;
tag of XDOCLET:&#60;br /&#62;
&#60;a href=&#34;http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html#@hibernate_property__0__1_&#34; rel=&#34;nofollow&#34;&#62;http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html#@hibernate_property__0__1_&#60;/a&#62;&#60;br /&#62;
using a script build.xml of Ant  )&#60;/p&#62;
&#60;p&#62;using declaration type&#60;br /&#62;
...&#60;br /&#62;
// Define a new column for the USER table&#60;/p&#62;
&#60;p&#62;Column column = new Column();&#60;br /&#62;
column.setType(Hibernate.STRING);&#60;br /&#62;
column.setName(&#34;ETA&#34;);&#60;br /&#62;
column.setNullable(false);&#60;br /&#62;
column.setUnique(true);&#60;br /&#62;
userMapping.getTable().addColumn(column);&#60;/p&#62;
&#60;p&#62;// Wrap the column in a Value&#60;/p&#62;
&#60;p&#62;SimpleValue value = new SimpleValue();&#60;br /&#62;
value.setTable( userMapping.getTable() );&#60;br /&#62;
value.addColumn(column);&#60;br /&#62;
value.setType(Hibernate.STRING);&#60;/p&#62;
&#60;p&#62;// Define a new property of the User class&#60;/p&#62;
&#60;p&#62;Property prop = new Property();&#60;br /&#62;
prop.setValue(value);&#60;br /&#62;
prop.setName(&#34;eta&#34;);&#60;br /&#62;
userMapping.addProperty(prop);&#60;/p&#62;
&#60;p&#62;// Build a new session factory, using the new mapping&#60;/p&#62;
&#60;p&#62;SessionFactory sf = cfg.buildSessionFactory();&#60;/p&#62;
&#60;p&#62;■ Object identity—Objects are identical if they occupy the same memory location in the JVM. This can be checked by using the == operator.&#60;br /&#62;
■ Object equality—Objects are equal if they have the same value, as defined by the equals(Object o) method. Classes that don’t explicitly override this method inherit the implementation defined by java.lang.Object, which compares object identity.&#60;br /&#62;
■ Database identity—Objects stored in a relational database are identical if they represent the same row or, equivalently, share the same table and primary key value.&#60;br /&#62;
Hibernate has several built-in identifier generation strategies:&#60;br /&#62;
Tab Pag.114&#60;/p&#62;
&#60;p&#62;&#38;lt;component&#60;br /&#62;
name=&#34;homeAddress&#34;&#60;br /&#62;
class=&#34;Address&#34;&#38;gt;&#60;br /&#62;
&#38;lt;parent name=&#34;user&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;street&#34; type=&#34;string&#34; column=&#34;HOME_STREET&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;city&#34; type=&#34;string&#34; column=&#34;HOME_CITY&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;zipcode&#34; type=&#34;short&#34; column=&#34;HOME_ZIPCODE&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;/component&#38;gt;&#60;/p&#62;
&#60;p&#62;The &#38;lt;parent&#38;gt; element maps a property of type User to the owning entity, in this example, the property is named user. We then call Address.getUser() to navigate in the other direction.&#60;/p&#62;
&#60;p&#62;A Hibernate component may own other components and even associations to other entities. This flexibility is the foundation of Hibernate’s support for finegrained object models. There are two important limitations to classes mapped as components:&#60;br /&#62;
■ Shared references aren’t possible. The component Address doesn’t have its own database identity (primary key) and so a particular Address object can’t be referred to by any object other than the containing instance of User.&#60;br /&#62;
■ There is no elegant way to represent a null reference to an Address. Hibernate represents null components as null values in all mapped columns of the component. This means that if you store a component object with all null property values, Hibernate will return a null component when the owning entity object is retrieved from the database.&#60;br /&#62;
Mapping&#60;br /&#62;
&#60;a href=&#34;http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-declaration-discriminator&#34; rel=&#34;nofollow&#34;&#62;http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-declaration-discriminator&#60;/a&#62;&#60;br /&#62;
Table per concrete class&#60;br /&#62;
We could use exactly one table for each (non-abstract) class. The main problem with this approach is that it doesn’t support polymorphic associations very well. (can’t be represented as a simple foreign key relationship.)&#60;br /&#62;
Table per class hierarchy&#60;br /&#62;
Alternatively, an entire class hierarchy could be mapped to a single table. This table would include columns for all properties of all classes in the hierarchy. There is one major problem: Columns for properties declared by subclasses must be declared to be nullable. If your subclasses each define several non-nullable properties, the loss of NOT NULL constraints could be a serious problem from the point of view of data integrity.&#60;br /&#62;
[    The &#38;lt;discriminator&#38;gt; element is required for polymorphic persistence using the table-per-class-hierarchy mapping strategy. It declares a discriminator column of the table. The discriminator column contains marker values that tell the persistence layer what subclass to instantiate for a particular row. A restricted set of types can be used: string, character, integer, byte, short, boolean, yes_no, true_false.   ]&#60;br /&#62;
Table per subclass&#60;br /&#62;
The third option is to represent inheritance relationships as relational foreign key associations. Every subclass that declares persistent properties—including abstract, classes and even interfaces—has its own table.&#60;br /&#62;
The primary advantage of this strategy is that the relational model is completely normalized. Schema evolution and integrity constraint definition are straightforward. A polymorphic association to a particular subclass may be represented as a foreign key pointing to the table of that subclass. In Hibernate, we use the &#38;lt;joined-subclass&#38;gt; element to indicate a table-per-subclass mapping.&#60;/p&#62;
&#60;p&#62;&#38;lt;?xml version=&#34;1.0&#34;?&#38;gt;&#60;br /&#62;
&#38;lt;hibernate-mapping&#38;gt;&#60;br /&#62;
&#38;lt;class name=&#34;BillingDetails&#34; table=&#34;BILLING_DETAILS&#34;&#38;gt;&#60;br /&#62;
&#38;lt;id name=&#34;id&#34; column=&#34;BILLING_DETAILS_ID&#34; type=&#34;long&#34;&#38;gt;&#60;br /&#62;
   &#38;lt;generator class=&#34;native&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;/id&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;owner&#34; column=&#34;OWNER&#34; type=&#34;string&#34;/&#38;gt;&#60;br /&#62;
...&#60;br /&#62;
&#38;lt;joined-subclass&#60;br /&#62;
name=&#34;CreditCard&#34;&#60;br /&#62;
table=&#34;CREDIT_CARD&#34;&#38;gt;&#60;br /&#62;
&#38;lt;key column=&#34;CREDIT_CARD_ID&#34;&#38;gt;	&#60;/p&#62;
&#60;p&#62;&#38;lt;property name=&#34;type&#34; column=&#34;TYPE&#34;/&#38;gt;&#60;br /&#62;
...&#60;br /&#62;
&#38;lt;/joined-subclass&#38;gt;&#60;br /&#62;
...&#60;br /&#62;
&#38;lt;/class&#38;gt;&#60;br /&#62;
&#38;lt;/hibernate-mapping&#38;gt;&#60;/p&#62;
&#60;p&#62;(Association (1-n, n-m, 1-1) dal sito)&#60;/p&#62;
&#60;p&#62;To remodel the Item to Bid association as a parent/child relationship, the only change we need to make is to the cascade attribute:&#60;br /&#62;
&#38;lt;class name=&#34;Item&#34; table=&#34;ITEM&#34;&#38;gt;&#60;br /&#62;
...&#60;br /&#62;
&#38;lt;set name=&#34;bids&#34; inverse=&#34;true&#34; cascade=&#34;all-delete-orphan&#34;&#38;gt;&#60;br /&#62;
&#38;lt;key column=&#34;ITEM_ID&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;one-to-many class=&#34;Bid&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;/set&#38;gt;&#60;br /&#62;
&#38;lt;/class&#38;gt;&#60;/p&#62;
&#60;p&#62;CASCADE&#60;/p&#62;
&#60;p&#62;1)	cascade=&#34;none&#34;, the default, tells Hibernate to ignore the association.&#60;br /&#62;
2)	cascade=&#34;save-update&#34; tells Hibernate to navigate the association when the transaction is committed and when an object is passed to save() or update() and save newly instantiated transient instances and persist changes to detached instances.&#60;br /&#62;
3)	cascade=&#34;delete&#34; tells Hibernate to navigate the association and delete persistent instances when an object is passed to delete().&#60;br /&#62;
4)	cascade=&#34;all&#34; means to cascade both save-update and delete, as well as calls to evict and lock.&#60;br /&#62;
5)	cascade=&#34;all-delete-orphan&#34; means the same as cascade=&#34;all&#34; but, in addition, Hibernate deletes any persistent entity instance that has been removed (dereferenced) from the association (for example, from a collection).&#60;br /&#62;
6)	cascade=&#34;delete-orphan&#34; Hibernate will delete any persistent entity instance that has been removed (dereferenced) from the association (for example, from a collection).&#60;/p&#62;
&#60;p&#62;Cap4.&#60;/p&#62;
&#60;p&#62;The application must interact with the persistence layer whenever it needs to propagate state held in memory to the db or vice versa.&#60;/p&#62;
&#60;p&#62;PAG 164&#60;/p&#62;
&#60;p&#62;ORM OBJECT RELATIONAL MAPPING&#60;br /&#62;
It mapping between the objects and the database.ORM, in essence, works by (reversibly) transforming data from one representation to another.&#60;/p&#62;
&#60;p&#62;CRUD (create, read, update, delete) operations&#60;br /&#62;
-	Dati persistent&#60;br /&#62;
-	Operation:&#60;/p&#62;
&#60;p&#62;■ Storage, organization, and retrieval of structured data&#60;br /&#62;
■ Concurrency and data integrity&#60;br /&#62;
■ Data sharing&#60;/p&#62;
&#60;p&#62;      -      Granularità&#60;/p&#62;
&#60;p&#62;If one application holds a lock on a database object, another application might not be able to access that object. For this reason, row-level locks, which minimize the amount of data that is locked and therefore inaccessible, are better for maximum concurrency than block-level, data partition-level or table-level locks. However, locks require storage and processing time, so a single table lock minimizes lock overhead.&#60;br /&#62;
The LOCKSIZE clause of the ALTER TABLE statement specifies the scope (granularity) of locks at the row, data partition, block, or table level. By default, row locks are used. Only S (Shared) and X (Exclusive) locks are requested by these defined table locks. The ALTER TABLE statement LOCKSIZE ROW clause does not prevent normal lock escalation from occurring.&#60;br /&#62;
A permanent table lock defined by the ALTER TABLE statement might be preferable to a single-transaction table lock using LOCK TABLE statement in the following cases:&#60;br /&#62;
-	The table is read-only, and will always need only S locks. Other users can also obtain S locks on the table.&#60;br /&#62;
-	The table is usually accessed by read-only applications, but is sometimes accessed by a single user for brief maintenance, and that user requires an X lock. While the maintenance program runs, the read-only applications are locked out, but in other circumstances, read-only applications can access the table concurrently with a minimum of locking overhead.&#60;br /&#62;
PAG 52&#60;br /&#62;
Cap2.&#60;br /&#62;
The persistence consists in storing data in a relational database using SQL. Hibernate applications define persistent classes that are “mapped” to database tables.&#60;/p&#62;
&#60;p&#62;package hello;&#60;br /&#62;
public class Message {&#60;br /&#62;
private Long id;&#60;br /&#62;
private String text;&#60;br /&#62;
private Message nextMessage;&#60;br /&#62;
private Message() {&#60;br /&#62;
}&#60;br /&#62;
public Message(String text) {&#60;br /&#62;
this.text = text;&#60;br /&#62;
}&#60;br /&#62;
public Long getId() {&#60;br /&#62;
return id;&#60;br /&#62;
}&#60;br /&#62;
private void setId(Long id) {&#60;br /&#62;
this.id = id;&#60;br /&#62;
}&#60;br /&#62;
public String getText() {&#60;br /&#62;
return text;&#60;br /&#62;
}&#60;br /&#62;
}&#60;br /&#62;
public void setText(String text) {&#60;br /&#62;
this.text = text;&#60;br /&#62;
}&#60;br /&#62;
public Message getNextMessage() {&#60;br /&#62;
return nextMessage;&#60;br /&#62;
}&#60;br /&#62;
public void setNextMessage(Message nextMessage) {&#60;br /&#62;
this.nextMessage = nextMessage;&#60;br /&#62;
}&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;It prints &#34;Hello World&#34; to the console.&#60;br /&#62;
Message message = new Message(&#34;Hello World&#34;);&#60;br /&#62;
System.out.println( message.getText() );&#60;/p&#62;
&#60;p&#62;Our persistent class can be used in any execution context at all. Of course, you came here to see Hibernate itself, so let’s save a new Message to the database:&#60;/p&#62;
&#60;p&#62;Session session = getSessionFactory().openSession();&#60;br /&#62;
Transaction tx = session.beginTransaction();&#60;br /&#62;
Message message = new Message(&#34;Hello World&#34;);&#60;br /&#62;
session.save(message);&#60;br /&#62;
tx.commit();&#60;br /&#62;
session.close();&#60;/p&#62;
&#60;p&#62;This code calls the Hibernate Session and Transaction interfaces. It results in the execution of something similar to the following SQL:&#60;/p&#62;
&#60;p&#62;insert into MESSAGES (MESSAGE_ID, MESSAGE_TEXT, NEXT_MESSAGE_ID)&#60;br /&#62;
values (1, 'Hello World', null)&#60;/p&#62;
&#60;p&#62;We can also assume that the MESSAGES table already exists.&#60;br /&#62;
Session newSession = getSessionFactory().openSession();&#60;br /&#62;
Transaction newTransaction = newSession.beginTransaction();&#60;br /&#62;
List messages = newSession.find(&#34;from Message as m order by m.text asc&#34;);&#60;br /&#62;
//&#60;br /&#62;
HIBERNATE QUERY:&#60;br /&#62;
select m.MESSAGE_ID, m.MESSAGE_TEXT, m.NEXT_MESSAGE_ID&#60;br /&#62;
from MESSAGES m&#60;br /&#62;
order by m.MESSAGE_TEXT asc&#60;br /&#62;
//&#60;br /&#62;
System.out.println( messages.size() + &#34; message(s) found:&#34; );&#60;br /&#62;
for ( Iterator iter = messages.iterator(); iter.hasNext(); ) {&#60;br /&#62;
Message message = (Message) iter.next();&#60;br /&#62;
System.out.println( message.getText() );&#60;br /&#62;
}&#60;br /&#62;
newTransaction.commit();&#60;br /&#62;
newSession.close();&#60;br /&#62;
All SQL is generated at runtime.&#60;br /&#62;
XML MAPPING HIBERNATE CODE&#60;br /&#62;
&#38;lt;?xml version=&#34;1.0&#34;?&#38;gt;&#60;br /&#62;
&#38;lt;!DOCTYPE hibernate-mapping PUBLIC&#60;br /&#62;
&#34;-//Hibernate/Hibernate Mapping DTD//EN&#34;&#60;br /&#62;
&#34;http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd&#34;&#38;gt;&#60;br /&#62;
&#38;lt;hibernate-mapping&#38;gt;&#60;br /&#62;
&#38;lt;class&#60;br /&#62;
name=&#34;hello.Message&#34;&#60;br /&#62;
table=&#34;MESSAGES&#34;&#38;gt;&#60;br /&#62;
&#38;lt;id name=&#34;id&#34; column=&#34;MESSAGE_ID&#34;&#38;gt;&#60;br /&#62;
&#38;lt;generator class=&#34;increment&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;/id&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;text&#34; column=&#34;MESSAGE_TEXT&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;many-to-one name=&#34;nextMessage&#34; cascade=&#34;all&#34; column=&#34;NEXT_MESSAGE_ID&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;/class&#38;gt;&#60;br /&#62;
&#38;lt;/hibernate-mapping&#38;gt;&#60;br /&#62;
The Hibernate interfaces may be approximately classified as follows:&#60;/p&#62;
&#60;p&#62;■ Interfaces called by applications to perform basic CRUD and querying operations. These interfaces are the main point of dependency of application business/control logic on Hibernate. They include Session, Transaction, and Query.&#60;br /&#62;
■ Interfaces called by application infrastructure code to configure Hibernate, most importantly the Configuration class.&#60;br /&#62;
■ Callback interfaces that allow the application to react to events occurring inside Hibernate, such as Interceptor, Lifecycle, and Validatable.&#60;br /&#62;
■ Interfaces that allow extension of Hibernate’s powerful mapping functionality, such as UserType, CompositeUserType, and IdentifierGenerator. These interfaces are implemented by application infrastructure code (if necessary).&#60;/p&#62;
&#60;p&#62;•	SESSION&#60;br /&#62;
The Session interface is the primary interface used by Hibernate applications. Hibernate sessions are not thread safe and should by design be used by only one thread at a time.&#60;/p&#62;
&#60;p&#62;•	SESSION FACTORY&#60;br /&#62;
It’s intended to be shared among many application threads. There is typically a single SessionFactory for the whole application. However, if your application accesses multiple databases using Hibernate, you’ll need a SessionFactory for each database. The SessionFactory caches generated SQL statements and other mapping metadata that Hibernate uses at runtime.&#60;/p&#62;
&#60;p&#62;The following code starts Hibernate:&#60;br /&#62;
Configuration cfg = new Configuration();&#60;br /&#62;
cfg.addResource(&#34;hello/Message.hbm.xml&#34;);&#60;br /&#62;
cfg.setProperties( System.getProperties() );&#60;br /&#62;
SessionFactory sessions = cfg.buildSessionFactory();&#60;/p&#62;
&#60;p&#62;The location of the mapping file, Message.hbm.xml, is relative to the root of the application classpath.&#60;/p&#62;
&#60;p&#62;If we had another persistent class, it would be defined in its own mapping file.  You can load multiple mapping files by calling addResource() as often as you have to. Alternatively, if you follow the convention just described, you can use the method addClass(), passing a persistent class as the parameter:&#60;/p&#62;
&#60;p&#62;SessionFactory sessions = new Configuration()&#60;br /&#62;
.addClass(org.hibernate.auction.model.Item.class)&#60;br /&#62;
.addClass(org.hibernate.auction.model.Category.class)&#60;br /&#62;
.addClass(org.hibernate.auction.model.Bid.class)&#60;br /&#62;
.setProperties( System.getProperties() )&#60;br /&#62;
.buildSessionFactory();&#60;/p&#62;
&#60;p&#62;If another SessionFactory is needed—if there are multiple databases, for example—you repeat the process.&#60;br /&#62;
To specify configuration options, you may use any of the following techniques:&#60;/p&#62;
&#60;p&#62;■ Used except for quick testing and prototypes:&#60;br /&#62;
■ Pass an instance of java.util.Properties to Configuration.setProperties().&#60;br /&#62;
■ Set system properties using java -Dproperty=value.&#60;br /&#62;
■ Place a file called hibernate.properties in the classpath.&#60;br /&#62;
■ Include &#38;lt;property&#38;gt; elements in hibernate.cfg.xml in the classpath.&#60;/p&#62;
&#60;p&#62;•	CONFIGURATION&#60;br /&#62;
The Configuration object is used to configure and bootstrap Hibernate. The application uses a Configuration instance to specify the location of mapping documents and Hibernate-specific properties and then create the SessionFactory.&#60;/p&#62;
&#60;p&#62;Configuration in non-managed environment:&#60;br /&#62;
Java applications should use a pool of JDBC connections. There are three reasons for using a pool:&#60;/p&#62;
&#60;p&#62;■ Acquiring a new connection is expensive.&#60;br /&#62;
■ Maintaining many idle connections is expensive.&#60;br /&#62;
■ Creating prepared statements is also expensive for some drivers. &#60;/p&#62;
&#60;p&#62;hibernate.connection.driver_class = org.postgresql.Driver&#60;br /&#62;
hibernate.connection.url = jdbc:postgresql://localhost/auctiondb&#60;br /&#62;
hibernate.connection.username = auctionuser&#60;br /&#62;
hibernate.connection.password = secret&#60;br /&#62;
hibernate.dialect = net.sf.hibernate.dialect.PostgreSQLDialect&#60;br /&#62;
hibernate.c3p0.min_size=5&#60;br /&#62;
hibernate.c3p0.max_size=20&#60;br /&#62;
hibernate.c3p0.timeout=300&#60;br /&#62;
hibernate.c3p0.max_statements=50&#60;br /&#62;
hibernate.c3p0.idle_test_period=3000&#60;/p&#62;
&#60;p&#62;Specifying properties of the form hibernate.c3p0.* selects C3P0 as Hibernate’s connection pool.&#60;/p&#62;
&#60;p&#62;Configuration managed environment:&#60;br /&#62;
A managed environment handles certain cross-cutting concerns, such as application security (authorization and authentication), connection pooling, and transaction management.&#60;/p&#62;
&#60;p&#62;hibernate.connection.datasource = java:/comp/env/jdbc/AuctionDB&#60;br /&#62;
hibernate.transaction.factory_class = \&#60;br /&#62;
net.sf.hibernate.transaction.JTATransactionFactory&#60;br /&#62;
hibernate.transaction.manager_lookup_class = \&#60;br /&#62;
net.sf.hibernate.transaction.JBossTransactionManagerLookup&#60;br /&#62;
hibernate.dialect = net.sf.hibernate.dialect.PostgreSQLDialect&#60;/p&#62;
&#60;p&#62;XML-based Configuration:&#60;br /&#62;
The hibernate.cfg.xml file may also specify the location of mapping documents. &#60;/p&#62;
&#60;p&#62;?xml version='1.0'encoding='utf-8'?&#38;gt;&#60;br /&#62;
&#38;lt;!DOCTYPE hibernate-configuration&#60;br /&#62;
PUBLIC &#34;-//Hibernate/Hibernate Configuration DTD//EN&#34;&#60;br /&#62;
&#34;http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd&#34;&#38;gt;&#60;br /&#62;
&#38;lt;hibernate-configuration&#38;gt;&#60;br /&#62;
&#38;lt;session-factory name=&#34;java:/hibernate/HibernateFactory&#34;&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;show_sql&#34;&#38;gt;true&#38;lt;/property&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;connection.datasource&#34;&#38;gt; java:/comp/env/jdbc/AuctionDB&#38;lt;/property&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;dialect&#34;&#38;gt; net.sf.hibernate.dialect.PostgreSQLDialect &#38;lt;/property&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;transaction.manager_lookup_class&#34;&#38;gt;&#60;br /&#62;
net.sf.hibernate.transaction.JBossTransactionManagerLookup&#60;br /&#62;
&#38;lt;/property&#38;gt;&#60;br /&#62;
&#38;lt;mapping resource=&#34;auction/Item.hbm.xml&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;mapping resource=&#34;auction/Category.hbm.xml&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;mapping resource=&#34;auction/Bid.hbm.xml&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;/session-factory&#38;gt;&#60;br /&#62;
&#38;lt;/hibernate-configuration&#38;gt;&#60;/p&#62;
&#60;p&#62;Now you can initialize Hibernate using:&#60;br /&#62;
SessionFactory sessions = new Configuration() .configure().buildSessionFactory();&#60;br /&#62;
When configure() was called, Hibernate searched for a file named hibernate.cfg.xml in the classpath. If you wish to use a different filename or have Hibernate look in a subdirectory, you must pass a path to the configure() method:&#60;/p&#62;
&#60;p&#62;SessionFactory sessions =&#60;br /&#62;
new Configuration().configure(&#34;/hibernate-config/auction.cfg.xml&#34;).buildSessionFactory();&#60;/p&#62;
&#60;p&#62;Using an XML configuration file is certainly more comfortable than a properties file or even programmatic property configuration.&#60;/p&#62;
&#60;p&#62;Logging&#60;br /&#62;
When you find yourself troubleshooting a difficult problem, you need to be able to see exactly what’s going on inside Hibernate. You can use logging to get a view of Hibernate’s internals. Hibernate logs all interesting events using Apache commons-logging, a thin abstraction layer that directs output to either Apache log4j (if you put log4j.jar in your classpath).&#60;br /&#62;
JNDI&#60;br /&#62;
è acronimo di Java Naming and Directory Interface. All’interno di un Application Server (e anche in applicazioni non necessariamente web). Tutte le operazioni fondamentali che si possono compiere in un Application Server possono essere rimappate utilizzando JNDI. Elenchiamo alcune delle principali operazioni che normalmente vengono compiute: Transazioni (UserTransaction &#38;amp; TransactionManager) Pool di Connessioni ai Database (Datasource) Pool di Connessioni Transazionali ai Database (XADatasource). Con JNDI si possono rimappare tutti i percorsi fisici a cui è necessario puntare, in una sorta di tabella chiave-valore, una specie di HashTable, che rende facilmente configurabile, e quindi portabile, la nostra applicazione. Per maggiori informazioni ed esempi vi invito caldamente a visitare i link correlati. In particolare nel primo link è mostrato come accedere a JNDI in un Application Server Bea Weblogic.&#60;/p&#62;
&#60;p&#62;Finally, you have the hibernate.properties, hibernate.cfg.xml, and log4j.properties configuration files.&#60;br /&#62;
Or&#60;/p&#62;
&#60;p&#62;JMX:  JAVA MANAGEMENT EXTENSION&#60;/p&#62;
&#60;p&#62;The JMX specification defines the following components:&#60;/p&#62;
&#60;p&#62;■ The JMX MBean—A reusable component (usually infrastructural) that exposes an interface for management (administration)&#60;br /&#62;
■ The JMX container—Mediates generic access (local or remote) to the MBean&#60;br /&#62;
■ The (usually generic) JMX client—May be used to administer any MBean via the JMX container&#60;/p&#62;
&#60;p&#62;An application server with support for JMX (such as JBoss) acts as a JMX container and allows an MBean to be configured and initialized as part of the application server startup process.&#60;/p&#62;
&#60;p&#62;&#38;lt;server&#38;gt;&#60;br /&#62;
&#38;lt;mbean code=&#34;net.sf.hibernate.jmx.HibernateService&#34; name=&#34;jboss.jca:service=HibernateFactory, name=HibernateFactory&#34;&#38;gt;&#60;br /&#62;
&#38;lt;depends&#38;gt;jboss.jca:service=RARDeployer&#38;lt;/depends&#38;gt;&#60;br /&#62;
&#38;lt;depends&#38;gt;jboss.jca:service=LocalTxCM, name=DataSource&#38;lt;/depends&#38;gt;&#60;br /&#62;
&#38;lt;attribute name=&#34;MapResources&#34;&#38;gt; auction/Item.hbm.xml, auction/Bid.hbm.xml &#38;lt;/attribute&#38;gt;&#60;br /&#62;
&#38;lt;attribute name=&#34;JndiName&#34;&#38;gt; java:/hibernate/HibernateFactory &#38;lt;/attribute&#38;gt;&#60;br /&#62;
&#38;lt;attribute name=&#34;Datasource&#34;&#38;gt; java:/comp/env/jdbc/AuctionDB &#38;lt;/attribute&#38;gt;&#60;br /&#62;
&#38;lt;attribute name=&#34;Dialect&#34;&#38;gt; net.sf.hibernate.dialect.PostgreSQLDialect &#38;lt;/attribute&#38;gt;&#60;br /&#62;
&#38;lt;attribute name=&#34;TransactionStrategy&#34;&#38;gt; net.sf.hibernate.transaction.JTATransactionFactory &#38;lt;/attribute&#38;gt;&#60;br /&#62;
&#38;lt;attribute name=&#34;TransactionManagerLookupStrategy&#34;&#38;gt; net.sf.hibernate.transaction.JBossTransactionManagerLookup &#38;lt;/attribute&#38;gt;&#60;br /&#62;
&#38;lt;attribute name=&#34;UserTransactionName&#34;&#38;gt; java:/UserTransaction &#38;lt;/attribute&#38;gt;&#60;br /&#62;
&#38;lt;/mbean&#38;gt;&#60;br /&#62;
&#38;lt;/server&#38;gt;&#60;/p&#62;
&#60;p&#62;•	TRANSICTION&#60;br /&#62;
The Transaction interface is an optional API. Hibernate applications may choose not to use this interface, instead managing transactions in their own infrastructure code. A Transaction abstracts application code from the underlying transaction implementation allowing the application to control transaction boundaries via a consistent API.&#60;/p&#62;
&#60;p&#62;•	CALLBACK&#60;br /&#62;
Callback interfaces allow the application to receive a notification when something interesting happens to an object—for example, when an object is loaded, saved, or deleted. Hibernate applications don’t need to implement these callbacks, but they’re useful for implementing certain kinds of generic functionality, such as creating audit records. The Lifecycle and Validatable interfaces allow a persistent object to react to events relating to its own persistence lifecycle.&#60;/p&#62;
&#60;p&#62;•	TYPE&#60;br /&#62;
A Hibernate Type object maps a Java type to a database column type (actually, the type may span multiple columns). All persistent properties of persistent classes, including associations, have a corresponding Hibernate type. This design makes Hibernate extremely flexible and extensible.&#60;/p&#62;
&#60;p&#62;•	EXTENSION POINTS:&#60;/p&#62;
&#60;p&#62;■ Primary key generation (IdentifierGenerator interface)&#60;br /&#62;
■ SQL dialect support (Dialect abstract class)&#60;br /&#62;
////Serve e a specificare quale database stiamo utilizzando oracledialect; mysqldialect ecc...&#60;br /&#62;
■ Caching strategies (Cache and CacheProvider interfaces)&#60;br /&#62;
■ JDBC connection management (ConnectionProvider interface)&#60;br /&#62;
■ Transaction management (TransactionFactory, Transaction, and TransactionManagerLookup interfaces)&#60;br /&#62;
■ ORM strategies (ClassPersister interface hierarchy)&#60;br /&#62;
■ Property access strategies (PropertyAccessor interface)&#60;br /&#62;
■ Proxy creation (ProxyFactory interface)&#60;/p&#62;
&#60;p&#62;&#60;a href=&#34;http://www.roseindia.net/hibernate/firstexample.shtml&#34; rel=&#34;nofollow&#34;&#62;http://www.roseindia.net/hibernate/firstexample.shtml&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;ARCHITETTURA:&#60;br /&#62;
Session, Transaction, and Query&#60;/p&#62;
&#60;p&#62;(Create and compile a persistent class (the initial Message, for example), copy Hibernate and its required libraries to the classpath together with a hibernate.properties file, and build a SessionFactory. The next section covers advanced Hibernate configuration options. Some of them are recommended, such as logging executed SQL statements for debugging or using the convenient XML configuration file instead of plain properties.)&#60;/p&#62;
&#60;p&#62;Cap3. &#60;/p&#62;
&#60;p&#62;You shouldn’t put code that addresses these cross-cutting concerns in the classes that implement the domain model. When these concerns start to appear in the domain model classes, we call this an example of leakage of concerns. The EJB standard tries to solve the problem of leaky concerns. Indeed, if we implemented our domain model using entity beans, the container would take care of some concerns for us (or at least externalize those concerns to the deployment descriptor). The EJB container prevents leakage of certain cross-cutting concerns using interception. An EJB is a managed component, always executed inside the EJB container. The container intercepts calls to your beans and executes its own functionality. Hibernate isn’t an application server, and it doesn’t try to implement all the cross-cutting concerns mentioned in the EJB specification. Hibernate is a solution for just one of these concerns: persistence. If you require declarative security and transaction management, you should still access your domain model via a session bean, taking advantage of the EJB container’s implementation of these concerns. Hibernate is commonly used together with the well-known session façade J2EE pattern. Much discussion has gone into the topic of persistence, and both Hibernate and EJB entity beans take care of that concern. However, Hibernate offers something that entity beans don’t: transparent persistence. Our Item class, for example, will not have any code-level dependency to any Hibernate API. Furthermore:&#60;/p&#62;
&#60;p&#62;■ Hibernate doesn’t require that any special superclasses or interfaces be inherited or implemented by persistent classes. Nor are any special classes used to implement properties or associations. Thus, transparent persistence improves code readability, as you’ll soon see.&#60;br /&#62;
■ Persistent classes may be reused outside the context of persistence, in unit tests or in the user interface (UI) tier, for example. Testability is a basic requirement for applications with rich domain models.&#60;br /&#62;
■ In a system with transparent persistence, objects aren’t aware of the underlying data store; they need not even be aware that they are being persisted or retrieved. Persistence concerns are externalized to a generic persistence manager interface —in the case of Hibernate, the Session and Query interfaces.&#60;/p&#62;
&#60;p&#62;By this definition of transparent persistence, you see that certain non-automated persistence layers are transparent (for example, the DAO pattern) because they decouple the persistence-related code with abstract programming interfaces.&#60;br /&#62;
The programming model we’ll introduce is a non-intrusive mix of JavaBean specification details, POJO best practices, and Hibernate requirements. A POJO declares business methods, which define behavior, and properties, which represent state. Some properties represent associations to other POJOs. It’s an implementation of the User entity of our domain model.&#60;/p&#62;
&#60;p&#62;public class User implements Serializable {&#60;br /&#62;
private String username;&#60;br /&#62;
private Address address;&#60;br /&#62;
public User() {&#60;br /&#62;
}&#60;br /&#62;
public String getUsername() {&#60;br /&#62;
return username;&#60;br /&#62;
}&#60;br /&#62;
public void setUsername(String username) {&#60;br /&#62;
this.username = username;&#60;br /&#62;
}&#60;br /&#62;
public Address getAddress() {&#60;br /&#62;
return address;&#60;br /&#62;
public void setAddress(Address address) {&#60;br /&#62;
this.address = address;&#60;br /&#62;
}&#60;br /&#62;
...&#60;br /&#62;
}&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;You use properties to express associations between POJO classes, and you use accessor methods to navigate the object graph at runtime.&#60;br /&#62;
scaffolding code:codice di “collegamento”(ER model).&#60;br /&#62;
For example let’s implement the scaffolding code for the one-to-many self-association of Category:&#60;/p&#62;
&#60;p&#62;public class Category implements Serializable {&#60;br /&#62;
private String name;&#60;br /&#62;
private Category parentCategory;&#60;br /&#62;
private Set childCategories = new HashSet();&#60;br /&#62;
public Category() { }&#60;br /&#62;
...&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;To allow bidirectional navigation of the association, we require two attributes. The parentCategory attribute implements the single-valued end of the association and is declared to be of type Category. The many-valued end, implemented by the child-Categories attribute, must be of collection type. We choose a Set, since duplicates are disallowed, and initialize the instance variable to a new instance of HashSet. We now have some private instance variables but no public interface to allow access from business code or property management by Hibernate. Let’s add some accessor methods to the Category class:&#60;/p&#62;
&#60;p&#62;public String getName() {&#60;br /&#62;
return name;&#60;br /&#62;
}&#60;br /&#62;
public void setName(String name) {&#60;br /&#62;
this.name = name;&#60;br /&#62;
}&#60;br /&#62;
public Set getChildCategories() {&#60;br /&#62;
return childCategories;&#60;br /&#62;
}&#60;br /&#62;
public void setChildCategories(Set childCategories) {&#60;br /&#62;
this.childCategories = childCategories;&#60;br /&#62;
}&#60;br /&#62;
public Category getParentCategory() {&#60;br /&#62;
return parentCategory;&#60;br /&#62;
}&#60;br /&#62;
public void setParentCategory(Category parentCategory) {&#60;br /&#62;
this.parentCategory = parentCategory;&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;Again, these accessor methods need to be declared public only if they’re part of the external interface of the persistent class, the public interface used by the application logic. The basic procedure for adding a child Category to a parent Category looks like this:&#60;/p&#62;
&#60;p&#62;Category aParent = new Category();&#60;br /&#62;
Category aChild = new Category();&#60;br /&#62;
aChild.setParentCategory(aParent);&#60;br /&#62;
aParent.getChildCategories().add(aChild);&#60;/p&#62;
&#60;p&#62;■ The parentCategory of the child must be set, effectively breaking the association between the child and its old parent (there can be only one parent for any child).&#60;br /&#62;
■ The child must be added to the child Categories collection of the new parent.&#60;/p&#62;
&#60;p&#62;Programming models like EJB entity beans muddle this behavior by introducing container-managed relationships. The container automatically changes the other side of a relationship if one side is modified by the application.&#60;/p&#62;
&#60;p&#62;Hibernate doesn’t care if property access methods are private or public, so we can focus on good API design.&#60;/p&#62;
&#60;p&#62;One of the reasons we like to use JavaBeans-style access methods is that they provide encapsulation: The hidden internal implementation of a property can be changed without any changes to the public interface. This allows you to abstract the internal data structure of a class—the instance variables—from the design of the database. For example, if your database stores a name of the user as a single NAME column, but your User class has first name and last name properties, you can add the following persistent name property to your class:&#60;/p&#62;
&#60;p&#62;Public class User {&#60;br /&#62;
private String firstname;&#60;br /&#62;
private String lastname;&#60;br /&#62;
...&#60;br /&#62;
public String getName() {&#60;br /&#62;
return firstname + ' ' + lastname;&#60;br /&#62;
}&#60;br /&#62;
public void setName(String name) {&#60;br /&#62;
StringTokenizer t = new StringTokenizer(name);&#60;br /&#62;
firstname = t.nextToken();&#60;br /&#62;
lastname = t.nextToken();&#60;br /&#62;
)&#60;br /&#62;
...&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;Later, you’ll see that a Hibernate custom type is probably a better way to handle many of these kinds of situations.&#60;br /&#62;
Hibernate will later use our accessor methods to populate the state of an object when loading the object from the database.  Hibernate result in unnecessary SQL UPDATEs.&#60;br /&#62;
This kind of code should almost always be avoided in accessor methods:&#60;/p&#62;
&#60;p&#62;public void setNames(List namesList) {&#60;br /&#62;
names = (String[]) namesList.toArray();&#60;br /&#62;
}&#60;br /&#62;
public List getNames() {&#60;br /&#62;
return Arrays.asList(names);&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;METADATA&#60;br /&#62;
ORM tools require a metadata format for the application to specify the mapping between classes and tables, properties and columns, associations and foreign keys, Java types and SQL types. This information is called the object/relational mapping metadata. It defines the transformation between the different data type systems and relationship representations.&#60;br /&#62;
XML mapping:&#60;/p&#62;
&#60;p&#62;(DTD = document type definition)&#60;/p&#62;
&#60;p&#62;&#38;lt;?xml version=&#34;1.0&#34;?&#38;gt;&#60;br /&#62;
&#38;lt;!DOCTYPE hibernate-mapping PUBLIC &#34;-//Hibernate/Hibernate Mapping DTD//EN&#34;&#60;br /&#62;
&#34;http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd&#34;&#38;gt;&#60;br /&#62;
&#38;lt;hibernate-mapping&#38;gt;&#60;br /&#62;
&#38;lt;class  name=&#34;org.hibernate.auction.model.Category&#34; table=&#34;CATEGORY&#34;&#38;gt;&#60;br /&#62;
&#38;lt;id  name=&#34;id&#34; column=&#34;CATEGORY_ID&#34; type=&#34;long&#34;&#38;gt;&#60;br /&#62;
&#38;lt;generator class=&#34;native&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;/id&#38;gt;&#60;br /&#62;
&#38;lt;property name=&#34;name&#34; column=&#34;NAME&#34; type=&#34;string&#34;/&#38;gt;&#60;br /&#62;
&#38;lt;/class&#38;gt;&#60;br /&#62;
&#38;lt;/hibernate-mapping&#38;gt;&#60;/p&#62;
&#60;p&#62;If you omit the type, Hibernate will use the Hibernate type string by default. The &#38;lt;property&#38;gt; element (and especially the &#38;lt;column&#38;gt; element) also defines certain attributes that apply mainly to automatic database schema generation.&#60;/p&#62;
&#60;p&#62;&#38;lt;property name=&#34;initialPrice&#34; column=&#34;INITIAL_PRICE&#34; not-null=&#34;true&#34;/&#38;gt;&#60;/p&#62;
&#60;p&#62;&#38;lt;property name=&#34;totalIncludingTax&#34;&#60;br /&#62;
formula=&#34;TOTAL + TAX_RATE * TOTAL&#34;&#60;br /&#62;
type=&#34;big_decimal&#34;/&#38;gt;&#60;/p&#62;
&#60;p&#62;The given SQL formula is evaluated every time the entity is retrieved from the database. The property doesn’t have a column attribute (or sub-element) and appears in an SQL SELECTs. Formulas may refer to columns of the database table, call SQL functions, and include SQL subselects. This example, mapping a derived property of item, uses a correlated subselect to calculate the average amount of all bids for an item:&#60;/p&#62;
&#60;p&#62;&#38;lt;property name=&#34;averageBidAmount&#34;&#60;br /&#62;
formula=&#34;( select AVG(b.AMOUNT)&#60;br /&#62;
                   from BID b&#60;br /&#62;
              ➾where b.ITEM_ID = ITEM_ID )&#34;&#60;br /&#62;
type=&#34;big_decimal&#34;/&#38;gt;&#60;/p&#62;
&#60;p&#62;access=&#34;field&#34;&#60;/p&#62;
&#60;p&#62;Access to properties via accessor methods is considered best practice by the Hibernate community. It provides an extra level of abstraction between the Java domain model and the data model.&#60;/p&#62;
&#60;p&#62;insert=&#34;false&#34;&#60;br /&#62;
update=&#34;false&#34;&#60;/p&#62;
&#60;p&#62;The property name of the JavaBean is therefore immutable and can be read from the database but not modified in any way. If the complete class is immutable, set the immutable=&#34;false&#34; in the class mapping. The dynamic-update attribute tells Hibernate whether to include unmodified properties in the SQL UPDATE:&#60;/p&#62;
&#60;p&#62;&#38;lt;class name=&#34;org.hibernate.auction.model.User&#34;&#60;br /&#62;
dynamic-insert=&#34;true&#34;&#60;br /&#62;
dynamic-update=&#34;true&#34;&#38;gt;&#60;br /&#62;
...&#60;br /&#62;
&#38;lt;/class&#38;gt;&#60;/p&#62;
&#60;p&#62;These are both class-level settings. Enabling either of these settings will cause Hibernate to generate some SQL at runtime, instead of using the SQL cached at startup time.&#60;br /&#62;
SQL schemas&#60;br /&#62;
You can specify a default schema using the hibernate.default_schema configuration option. Alternatively, you can specify a schema in the mapping document. A schema may be specified for a particular class or collection mapping:&#60;/p&#62;
&#60;p&#62;&#38;lt;hibernate-mapping&#38;gt;&#60;br /&#62;
&#38;lt;class&#60;br /&#62;
name=&#34;org.hibernate.auction.model.Category&#34;&#60;br /&#62;
table=&#34;CATEGORY&#34;&#60;br /&#62;
schema=&#34;AUCTION&#34;&#38;gt;&#60;br /&#62;
...&#60;br /&#62;
&#38;lt;/class&#38;gt;&#60;br /&#62;
&#38;lt;/hibernate-mapping&#38;gt;&#60;/p&#62;
&#60;p&#62;It can even be declared for the whole document:&#60;/p&#62;
&#60;p&#62;&#38;lt;hibernate-mapping&#60;br /&#62;
default-schema=&#34;AUCTION&#34;&#38;gt;&#60;br /&#62;
..&#60;br /&#62;
&#38;lt;/hibernate-mapping&#38;gt;&#60;/p&#62;
&#60;p&#62;This isn’t the only thing the root &#38;lt;hibernate-mapping&#38;gt; element is useful for.&#60;/p&#62;
&#60;p&#62;( &#60;a href=&#34;http://www.mokabyte.it/2005/11/hibernate.htm&#34; rel=&#34;nofollow&#34;&#62;http://www.mokabyte.it/2005/11/hibernate.htm&#60;/a&#62;&#60;br /&#62;
tag of XDOCLET:&#60;br /&#62;
&#60;a href=&#34;http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html#@hibernate_property__0__1_&#34; rel=&#34;nofollow&#34;&#62;http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html#@hibernate_property__0__1_&#60;/a&#62;&#60;br /&#62;
using a script build.xml of Ant  )&#60;/p&#62;
&#60;p&#62;using declaration type&#60;br /&#62;
...&#60;br /&#62;
// Define a new column for the USER table&#60;/p&#62;
&#60;p&#62;Column column = new Column();&#60;br /&#62;
column.setType(Hibernate.STRING);&#60;br /&#62;
column.setName(&#34;ETA&#34;);&#60;br /&#62;
column.setNullable(false);&#60;br /&#62;
column.setUnique(true);&#60;br /&#62;
userMapping.getTable().addColumn(column);&#60;/p&#62;
&#60;p&#62;// Wrap the column in a Value&#60;/p&#62;
&#60;p&#62;SimpleValue value = new SimpleValue();&#60;br /&#62;
value.setTable( userMapping.getTable() );&#60;br /&#62;
value.addColumn(column);&#60;br /&#62;
value.setType(Hibernate.STRING);&#60;/p&#62;
&#60;p&#62;// Define a new property of the User class&#60;/p&#62;
&#60;p&#62;Property prop = new Property();&#60;br /&#62;
prop.setValue(value);&#60;br /&#62;
prop.setName(&#34;eta&#34;);&#60;br /&#62;
userMapping.addProperty(prop);&#60;/p&#62;
&#60;p&#62;// Build a new session factory, using the new mapping&#60;/p&#62;
&#60;p&#62;SessionFactory sf = cfg.buildSessionFactory();&#60;/p&#62;
&#60;p&#62;■ Object identity—Objects are identical if they occupy the same memory location in the JVM. This can be checked by using the == operator.&#60;br /&#62;
■ Object equality—Objects are equal if they have the same value, as defined by the equ</description>
		</item>
		<item>
			<title>silvan on "Release: openmamba milestone2 2.0pre2"</title>
			<link>http://forum.openmamba.org/topic.php?id=518#post-3579</link>
			<pubDate>Wed, 09 Jun 2010 15:38:25 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">3579@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;The second pre-release of openmamba milestone 2 is ready with over 700 software package updates to the latest releases. The system is based on Linux kernel 2.6.31.13 and offers a modern desktop environment that includes KDE (4.4.4), OpenOffice (3.2), Firefox (3.6.3), Amarok (2.3.1) and much more. The full list of changes is available at this link: &#60;a href=&#34;http://www.openmamba.org/distribution/distromatic.html?tag=milestone2&#38;#038;changelog&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/distromatic.html?tag=milestone2&#38;#038;changelog&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;Changes were made to the installation application from live media, as it now supports a &#34;cloned&#34; installation of the live pendrive system and the configuration of a separated partition for the &#34;/home&#34; folder.&#60;/p&#62;
&#60;p&#62;openmamba is available for download in livecd, livedvd and livegames flavours for english, italian and spanish languages at this page: &#60;a href=&#34;http://www.openmamba.org/distribution/download.html&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/download.html&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;Users of the first pre-release will receive a consistent upgrade from network to get aligned with the latest system release. In case of problems it is recommended to write on the forum at &#60;a href=&#34;http://forum.openmamba.org&#34; rel=&#34;nofollow&#34;&#62;http://forum.openmamba.org&#60;/a&#62; or to use the bug-tracking page at &#60;a href=&#34;http://bugs.openmamba.org&#34; rel=&#34;nofollow&#34;&#62;http://bugs.openmamba.org&#60;/a&#62;.&#60;/p&#62;
&#60;p&#62;openmamba milestone2 consists of contributions from packagers, graphic designers and translators and of an automatized maintainance and update system that characterizes the distribution update level. Beta-tester and developers are welcome and can subscribe and write to the development lists at &#60;a href=&#34;http://www.openmamba.org/lists/&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/lists/&#60;/a&#62; or in the forum.&#60;/p&#62;
&#60;p&#62;mambaSoft wishes everybody a pleasant experience with openmamba.&#60;/p&#62;
&#60;p&#62;Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Release: openmamba milestone2 2.0pre1"</title>
			<link>http://forum.openmamba.org/topic.php?id=510#post-3518</link>
			<pubDate>Thu, 11 Mar 2010 01:44:43 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">3518@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;I've seen in past such problems with combinations of IDE/SATA disks, is that your situation? Can you provide the installation log that is called /var/log/install*.log and is in the installed openmamba partition? You may attach it here or more privately to reports&#38;lt;at&#38;gt;openmamba&#38;lt;dot&#38;gt;org. Thanks.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>erick111 on "Release: openmamba milestone2 2.0pre1"</title>
			<link>http://forum.openmamba.org/topic.php?id=510#post-3517</link>
			<pubDate>Thu, 11 Mar 2010 00:22:40 +0000</pubDate>
			<dc:creator>erick111</dc:creator>
			<guid isPermaLink="false">3517@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;Hi Silvan, I like openmamba it works great as a live cd, my problem is when I installit as a second hard drive system after I reboot it goes to Grub Rescue &#38;amp; will not boot any system is there a problem with Grub installation I have not experienced this with any other linux distro
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Release: openmamba milestone2 2.0pre1"</title>
			<link>http://forum.openmamba.org/topic.php?id=510#post-3504</link>
			<pubDate>Tue, 02 Mar 2010 04:13:53 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">3504@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;I'm happy to announce the immediate availability of openmamba milestone2 2.0pre1, the new version of the GNU/Linux operating system for laptop, desktop and server PC's.&#60;br /&#62;
The second &#34;milestone&#34; of the openmamba development project has been reached thanks to the integration of the modern KDE 4 desktop environment, the most recent improvements to the Linux kernel and system software and the best open source applications. &#60;/p&#62;
&#60;p&#62;milestone2 offers a renewed tecnological experience thanks to the introduction of automatic maintainance and update mechanisms and to the contribution of mambaSoft and the openmamba developers community, thus providing the user a simple and smart instrument for the interaction with present computer technologies and the internet.&#60;/p&#62;
&#60;p&#62;After months devoted to development and testing, this release is for the users who look for a optimal combination of innovation, reliability and stability. The use of stable repositories with few massive upgrades scheduled, give the user the needed reliability for most purposes.&#60;/p&#62;
&#60;p&#62;openmamba milestone2 is available for free download from this web site in the form of ISO images for livecd and livedvd media. The bootusb distribution can be used with the ISO images to install openmamba on a pen drive, thus also offering a personal system that can be used on many different PC's.&#60;/p&#62;
&#60;p&#62;openmamba media are available in three languages: italian, english and spanish (new!).
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Announcement: openmamba milestone1 1.1 stable"</title>
			<link>http://forum.openmamba.org/topic.php?id=451#post-3142</link>
			<pubDate>Tue, 04 Aug 2009 14:01:16 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">3142@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;The new 1.1 release of openmamba milestone1 is available for download.&#60;br /&#62;
It is a maintainance release since 1.0, with support for recent hardware platforms and fixes to improve system usability and stability.&#60;/p&#62;
&#60;p&#62;This release includes:&#60;/p&#62;
&#60;p&#62;- all software updates made available afer openmamba 1.0 release&#60;br /&#62;
- 2.6.28.10 kernel with wireless and audio drivers backport with support for the most recent devices&#60;br /&#62;
- wicd network manager for easier access to wireless networks&#60;br /&#62;
- X.org server 1.4 with updated video drivers&#60;br /&#62;
- new &#60;strong&#62;installdvd&#60;/strong&#62; media that allows a full system installation rapidly and without using the network&#60;br /&#62;
- new &#60;strong&#62;bootusb&#60;/strong&#62; media for system startup and installation from an USB storage device&#60;br /&#62;
- update from openmamba milestone1 1.0 can be performed without reinstallation&#60;/p&#62;
&#60;p&#62;openmamba milestone1 1.1 is available as a free download in english and italian languages. Other languages are supported after installation.&#60;/p&#62;
&#60;p&#62;Within the next weeks the first pre-release of openmamba2 will be made available. This is where most of the work of the latest months has been addressed with many important system new features. This release can already be downloaded and installed through the weekly snapshot.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Release: openmamba milestone1 1.1pre4"</title>
			<link>http://forum.openmamba.org/topic.php?id=408#post-2784</link>
			<pubDate>Thu, 19 Feb 2009 15:36:32 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">2784@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;The forth pre-release of openmamba milestone1 is available for download.&#60;br /&#62;
It is a maintainance release of openmamba stable with the aim of correcting the hardware support problems detected with release 1.0 especially with new hardware.&#60;br /&#62;
The most important new features are:&#60;/p&#62;
&#60;p&#62;* 2.6.26.8 kernel&#60;br /&#62;
* backport of the latest release of audio drivers from the ALSA project&#60;br /&#62;
* backport of the latest release of wireless drivers from the Compat-Wireless project&#60;br /&#62;
* update of video drivers (Intel GMA4500, NVidia)&#60;br /&#62;
* Xorg 1.4.3&#60;br /&#62;
* disabled by default the Jack low-latency audio server (it can be enabled through QJackCtrl before using professional audio applications)&#60;/p&#62;
&#60;p&#62;openmamba milestone1 1.1pre4 is available in the following CD/DVD live media:&#60;/p&#62;
&#60;p&#62;* livecd&#60;br /&#62;
* livestudio&#60;br /&#62;
* installdvd&#60;/p&#62;
&#60;p&#62;Download can be started from this page:&#60;br /&#62;
&#60;a href=&#34;http://www.openmamba.org/distribution/download.html&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/download.html&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;openmamba 1.0 installations can be upgraded to 1.1 by adding the milestone1 1.1 repository to the list of apt installation sources and performing a system update. It is adviced, before doing this operatrion, to check the compatibility of the new kernel with your hardware by testing one of the 1.1pre4 release live CD/DVD media.&#60;/p&#62;
&#60;p&#62;The stable release of milestone1 1.1 requiest a period of testing. Please send any bug report using the bugs site &#60;a href=&#34;http://bugs.openmamba.org&#34; rel=&#34;nofollow&#34;&#62;http://bugs.openmamba.org&#60;/a&#62;.&#60;/p&#62;
&#60;p&#62;Thanks for your attention and have a nice day,&#60;br /&#62;
Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Announcement: openmamba milestone1 1.0 stable"</title>
			<link>http://forum.openmamba.org/topic.php?id=285#post-1730</link>
			<pubDate>Fri, 01 Aug 2008 18:36:05 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">1730@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;The first stable release of the openmamba GNU/Linux distribution is available today for download.&#60;/p&#62;
&#60;p&#62;openmamba is a GNU/Linux distribution for Personal Computer (Intel i686 compatibles) that can be used on notebooks, desktop and servers. The milestone1 distribution provides almost 4000 software packages made from scratch which include the most popular applications as well as advanced software technologies like Compiz-Fusion and Jack audio server.&#60;/p&#62;
&#60;p&#62;The system is thought to be simple and fast to install and easy to use for most users, and the website (www.openmamba.org) provides services to help users and developers to maintain and develop the distribution, such as a forum, a wiki and a bug tracking website.&#60;/p&#62;
&#60;p&#62;Though most development and tests have been made in Italy the distribution installation media are available in both Italian and English languages and the system can later be customized to support other languages.&#60;/p&#62;
&#60;p&#62;The stable system lets users make use of it in production environments, where software updates need to be limited and focused on security and bug fixes. At the same time the development of the second milestone has begun and users will be able to install a test system using the weekly development snapshots with the latest software releases and support for new hardware that may not be supported in milestone1.&#60;/p&#62;
&#60;p&#62;To get started with openmamba milestone1 please visit &#60;a href=&#34;http://www.openmamba.org/distribution/&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/&#60;/a&#62;.&#60;/p&#62;
&#60;p&#62;The openmamba GNU/Linux distribution is provided and maintained by mambaSoft and developed by a community made of self organized individuals and development groups.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Announcement: openmamba milestone1 pre-release 7"</title>
			<link>http://forum.openmamba.org/topic.php?id=275#post-1680</link>
			<pubDate>Mon, 28 Jul 2008 16:58:25 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">1680@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;A new pre-release of openmamba milestone1, the 7th, is available for download.&#60;br /&#62;
This version provides the correction of some installation problems with SATA devices, a general update of wireless drivers and the update of most system libraries.&#60;br /&#62;
If the tests won't reveal show-stopping problems, this release with minor or no changes will be tagged as stable 1.0.&#60;/p&#62;
&#60;p&#62;The livecd release can be downloaded at the address:&#60;br /&#62;
&#60;a href=&#34;http://www.openmamba.org/distribution/media/livecd.html&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/media/livecd.html&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;The livestudio release can be downloaded at the address: &#60;a href=&#34;http://www.openmamba.org/distribution/media/livestudio.html&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/media/livestudio.html&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Announcement: new openmamba milestone 1 pre-release 5"</title>
			<link>http://forum.openmamba.org/topic.php?id=221#post-1281</link>
			<pubDate>Mon, 02 Jun 2008 17:35:47 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">1281@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;**openmamba milestone1 pre-release 5**&#60;/p&#62;
&#60;p&#62;A new release of openmamba livecd and livestudio is available for download.&#60;br /&#62;
What's new in this release:&#60;/p&#62;
&#60;p&#62;* Test and correction of international (english) release&#60;br /&#62;
* Added installation group with base web server packages (Apache, PHP, MySQL)&#60;br /&#62;
* Added integrated support for internet access through proxy server&#60;br /&#62;
* Support for PDA and cellullar phones syncronization with kitchensync (beta)&#60;br /&#62;
* Supporto for Skype installation from network&#60;br /&#62;
* System and desktop final changes for stable release&#60;br /&#62;
* Many updates and bugfixes&#60;/p&#62;
&#60;p&#62;The livecd release can be downloaded from &#60;a href=&#34;http://www.openmamba.org/distribution/media/livecd.html&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/media/livecd.html&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;The livestudio release can be downloaded from &#60;a href=&#34;http://www.openmamba.org/distribution/media/livestudio.html&#34; rel=&#34;nofollow&#34;&#62;http://www.openmamba.org/distribution/media/livestudio.html&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;If the tests won't expose big problems, in a short period the milestone 1 repository will be freezed and stable openmamba milestone 1 1.0 will be released. This will give users a stable system with limited updates and developers a development branch for the future milestone 2 release.&#60;/p&#62;
&#60;p&#62;Have a nice day,&#60;br /&#62;
Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Announcement: openmamba milestone1 1.0pre3 (third pre-release)"</title>
			<link>http://forum.openmamba.org/topic.php?id=57#post-192</link>
			<pubDate>Tue, 26 Feb 2008 15:04:14 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">192@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;The third openmamba pre-release is available  with tag &#60;code&#62;snapshot 20080224&#60;/code&#62;. The tests on the&#60;br /&#62;
previous releases let us face and solve some relevant installation problems and the&#60;br /&#62;
result is a more simple installation procedure for most users. Many thanks to all the&#60;br /&#62;
beta testers who made this possible!&#60;/p&#62;
&#60;p&#62;Here are the most important changes of this release:&#60;/p&#62;
&#60;ul&#62;
&#60;li&#62;added support for installation in systems with different combinations of IDE, SATA and&#60;br /&#62;
SCSI disks&#60;/p&#62;
&#60;li&#62;boot menu (grub 2): fixed support for Windows Vista boot&#60;/li&#62;
&#60;li&#62;installation wizard: check on partitions improved and the whole process has been made simpler by adding more pages to the wizard
&#60;li&#62;many system bugfixes&#60;/li&#62;
&#60;/ul&#62;
&#60;p&#62;Before the stable release is ready we plan to release a forth (and last) pre-release with&#60;br /&#62;
the following changes:&#60;/p&#62;
&#60;ul&#62;
&#60;li&#62;kernel: update to version 2.6.24&#60;/li&#62;
&#60;li&#62;configuration dialog for language, country, keyboard and time when installation starts&#60;/li&#62;
&#60;li&#62;boot menu: support for Windows and other chainloaded system boot from secondary disks&#60;/li&#62;
&#60;li&#62;boot menu: support for automatic configuration of other Linux systems&#60;/li&#62;
&#60;/ul&#62;
&#60;p&#62;If you want to be informed about the latest news you may subscribe to the openmamba&#60;br /&#62;
newsletter by &#60;a href=&#34;http://www.openmamba.org/registration.html&#34;&#62;registering&#60;/a&#62; on the website.&#60;/p&#62;
&#60;p&#62;The latest release can be downloaded from &#60;a href=&#34;http://www.openmamba.org/distribution/download.html&#34;&#62;this page&#60;/a&#62;.&#60;/p&#62;
&#60;p&#62;A first-use guide and a problems resolution guided procedure are available in the &#60;a href=&#34;http://wiki.openmamba.org&#34;&#62;wiki&#60;/a&#62;. The wiki is currently being written in italian language, but we are looking forward to find help for translations! If you want to help us in this job please &#60;a href=&#34;mailto:info@openmamba.org&#34;&#62;contact us&#60;/a&#62;.&#60;/p&#62;
&#60;p&#62;If you have problems you may submit a &#60;a href=&#34;http://bugs.openmamba.org&#34;&#62;bug report&#60;/a&#62;, or use the &#60;a href=&#34;http://forum.openmamba.org&#34;&#62;forum&#60;/a&#62; or the &#60;a href=&#34;http://lists.openmamba.org&#34;&#62;mailing lists&#60;/a&#62;.&#60;/p&#62;
&#60;p&#62;openmamba adventure continues, we wish you an amazing experience!
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Announcement: openmamba milestone1 pre-release ready for wide testing"</title>
			<link>http://forum.openmamba.org/topic.php?id=47#post-170</link>
			<pubDate>Thu, 24 Jan 2008 15:05:11 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">170@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;After one year of development the first stable release of openmamba is almost ready.&#60;/p&#62;
&#60;p&#62;The distribution, available in english and italian languages, is ready for wide testing&#60;br /&#62;
and especially the international release might need some more test because most development&#60;br /&#62;
so far was made in italy.&#60;/p&#62;
&#60;p&#62;&#60;a href=&#34;http://www.openmamba.org/distribution/download.html&#34;&#62;Download&#60;/a&#62; the installable livecd (snapshot 20080124), see the &#60;a href=&#34;http://wiki.openmamba.org&#34;&#62;wiki&#60;/a&#62; to get more information&#60;br /&#62;
and use the &#60;a href=&#34;http://forum.openmamba.org&#34;&#62;forums&#60;/a&#62; or &#60;a href=&#34;http://www.openmamba.org/distribution&#34;&#62;mailing lists&#60;/a&#62; to share information with other users and developers. If you fall into a bug, please post a &#60;a href=&#34;http://bugs.openmamba.org&#34;&#62;report&#60;/a&#62;.&#60;/p&#62;
&#60;p&#62;If you want to use openmamba in the easiest and most powerful way see the new&#60;br /&#62;
&#60;a href=&#34;http://store.mambasoft.it&#34;&#62;openmamba-based laptops&#60;/a&#62; distributed by &#60;a href=&#34;http://www.mambasoft.it&#34;&#62;mambaSoft&#60;/a&#62;, the creator and maintainer of this project.&#60;/p&#62;
&#60;p&#62;&#60;strong&#62;openmamba is free software&#60;/strong&#62;, please read the &#60;a href=&#34;http://www.openmamba.org/licensing.html&#34;&#62;licensing terms&#60;/a&#62; for more information.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "New openmamba documentation site (Wiki)"</title>
			<link>http://forum.openmamba.org/topic.php?id=40#post-138</link>
			<pubDate>Thu, 03 Jan 2008 13:15:48 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">138@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;Hi everybody and happy new year from openmamba!&#60;br /&#62;
The new year begins with the new wiki, in english and italian languages, available at the following address:&#60;br /&#62;
&#60;a href=&#34;http://wiki.openmamba.org&#34; rel=&#34;nofollow&#34;&#62;http://wiki.openmamba.org&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;The site is ready to accept contents about the distribution and the openmamba community. Currently there is just a very simple main page but you are invited since now to discuss and add pages to share your openmamba experience.&#60;/p&#62;
&#60;p&#62;Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "New openmamba bug tracking system is online"</title>
			<link>http://forum.openmamba.org/topic.php?id=35#post-115</link>
			<pubDate>Tue, 18 Dec 2007 13:35:32 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">115@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;The new openmamba bug tracking system is available (in beta) at the address&#60;br /&#62;
&#60;a href=&#34;http://bugs.openmamba.org&#34;&#62;bugs.openmamba.org&#60;/a&#62;.&#60;br /&#62;
You are kindly invited to use this service to send bug reports and to give us feedback if you have problems with the web interface.&#60;br /&#62;
Thank you!&#60;/p&#62;
&#60;p&#62;Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "Announcement: openmamba livegames and livestudio"</title>
			<link>http://forum.openmamba.org/topic.php?id=27#post-89</link>
			<pubDate>Thu, 15 Nov 2007 18:05:46 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">89@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;It's a pleasure for me to announce the availability of two new live medias:&#60;/p&#62;
&#60;ul&#62;
&#60;li&#62;&#60;strong&#62;&#60;a href=&#34;http://www.openmamba.org/distribution/media/livegames.html&#34;&#62;livegames&#60;/a&#62;&#60;/strong&#62;: a collection of the best games in the distribution including Torcs, Tuxracer, Tuxkart, Pingus, FlightGear, Frozen Bubble, KSudoku. It's perfect for entertainment moments&#60;br /&#62;
anywhere a personal computer is available.&#60;/li&#62;
&#60;li&#62;&#60;strong&#62;&#60;a href=&#34;http://www.openmamba.org/distribution/media/livestudio.html&#34;&#62;livestudio&#60;/a&#62;&#60;/strong&#62;: a collection of programs for creative, artistic and multimedia-oriented creativity that includes Blender, GIMP, Mixxx, Lives, Qtractor, Rosegarden, Audacity, ZynAddSubFX, Hydrogen, Kino.  Conceived for musicians, designers, graphics, photographers and&#60;br /&#62;
who loves expressing it's own creativity through new technologies.&#60;/li&#62;
&#60;/ul&#62;
&#60;p&#62;&#60;code&#62;&#60;/code&#62;&#60;br /&#62;
Like &#60;strong&#62;openmamba livecd&#60;/strong&#62;, livegames and livestudio let you perform an openmamba installation on a computer providing a specialized set of programs that are immediately available for use. After the installation the &#60;strong&#62;mamba&#60;/strong&#62; tool let's perform a network installation of any other software components desired.&#60;/p&#62;
&#60;p&#62;Images are made available as weekly snapshots and thus are useful to simplify the development and test process of the base system.&#60;/p&#62;
&#60;p&#62;&#60;strong&#62;livegames&#60;/strong&#62; and &#60;strong&#62;livestudio&#60;/strong&#62; are based on the openmamba milestone1 (Release Candidate 1) system. Freshly included softwares are considered at  a beta-test stage.&#60;/p&#62;
&#60;p&#62;bye&#60;br /&#62;
Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "livecd 20071018: completed installation and many bugfixes"</title>
			<link>http://forum.openmamba.org/topic.php?id=18#post-55</link>
			<pubDate>Thu, 18 Oct 2007 14:11:09 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">55@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;A new livecd release worth a try!&#60;br /&#62;
With this release, the system installation is complete with all the necessary components and the first stable release (&#60;code&#62;milestone 1&#60;/code&#62;) of openmamba is getting closer.&#60;br /&#62;
The news are:&#60;br /&#62;
* new &#60;code&#62;mamba&#60;/code&#62; tool that completes the installation from network and lets install and update group of packages as well as non distributable softwares (Flash plugin, Win32 codes, Microsoft TrueType Corefonts)&#60;br /&#62;
* support for installation in extended partitions and secondary disks&#60;br /&#62;
* support for boot from USB, SCSI, SATA and PATA cdrom&#60;br /&#62;
* a lot of bugfixes&#60;/p&#62;
&#60;p&#62;You are invited to &#60;a href=&#34;http://www.openmamba.org/distribution/media/livecd.html&#34;&#62;download&#60;/a&#62; the livecd and report any problem to this forum or to the &#60;a href=&#34;http://www.openmamba.org/distribution&#34;&#62;mailing lists&#60;/a&#62;.&#60;/p&#62;
&#60;p&#62;Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "livecd 20070920: video support and installer news"</title>
			<link>http://forum.openmamba.org/topic.php?id=14#post-46</link>
			<pubDate>Fri, 21 Sep 2007 02:04:47 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">46@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;Turn of the screw on the livecd system with the following news:&#60;/p&#62;
&#60;p&#62;* nvidia legacy drivers support, automatic configuration and compiz startup&#60;br /&#62;
* fix: window manager crash (compiz) when direct rendering is not available&#60;br /&#62;
* fix: error detecting usb pens due to a wrong /dev/sda1 entry in /etc/fstab&#60;br /&#62;
* lanuch keyboard setting dialog on first startup (english release only)&#60;br /&#62;
* various bugfixes&#60;/p&#62;
&#60;p&#62;News in the installer (0.3):&#60;br /&#62;
 * italian language translation&#60;br /&#62;
 * non-linux operating systems choice for the boot menu&#60;br /&#62;
 * linux installed partition is (optionally) flagged as bootable&#60;/p&#62;
&#60;p&#62;Updates are available for flash-1GB and bootcd distributions, too.&#60;/p&#62;
&#60;p&#62;cheers,&#60;br /&#62;
Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "livecd e flash-1GB: important bugfix release (20070910)"</title>
			<link>http://forum.openmamba.org/topic.php?id=9#post-24</link>
			<pubDate>Tue, 11 Sep 2007 10:36:58 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">24@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;This release mostly fixes a couple of bugs:&#60;/p&#62;
&#60;p&#62;- automatic libGL alternatives management corrrected (dri,fglrx,nvidia) thus fixing the problem of the window manager not starting at boot and enabling direct rendering where supported;&#60;/p&#62;
&#60;p&#62;- detected disk partitions are now configured for mounting in /mnt/disk[0-9] instead of all in /mnt/disk&#60;/p&#62;
&#60;p&#62;Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "livecd 20070905: fix for nvidia proprietary driver and compiz"</title>
			<link>http://forum.openmamba.org/topic.php?id=8#post-22</link>
			<pubDate>Thu, 06 Sep 2007 11:35:08 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">22@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;The latest livecd release (20070905) has a fix for the autodetection of nvidia proprietary drivers.&#60;br /&#62;
If you have a GPU supported by the latest release of the driver, the system will automatically start with Compiz 3D desktop support!&#60;br /&#62;
We are looking for beta-tester for verifying and adding AIGLX + Compiz support on other supported GPUs (Intel, ATI Radeon, ...).&#60;/p&#62;
&#60;p&#62;bye&#60;br /&#62;
Silvan
&#60;/p&#62;</description>
		</item>
		<item>
			<title>silvan on "New openmamba forum"</title>
			<link>http://forum.openmamba.org/topic.php?id=6#post-7</link>
			<pubDate>Tue, 04 Sep 2007 13:30:09 +0000</pubDate>
			<dc:creator>silvan</dc:creator>
			<guid isPermaLink="false">7@http://forum.openmamba.org/</guid>
			<description>&#60;p&#62;The new openmamba forum is available.&#60;br /&#62;
You can register &#60;a href=&#34;http://www.openmamba.org/registration.html&#34;&#62;here&#60;/a&#62;.&#60;/p&#62;
&#60;p&#62;Good blogging!&#60;/p&#62;
&#60;p&#62;Silvan
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
