<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BEEing Blog &#187; Guida per i programmatori</title>
	<atom:link href="http://www.smartfeeling.org/beeing/category/guida-per-i-programmatori/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.smartfeeling.org/beeing</link>
	<description>The Enterprise 2.0 Open Source Project</description>
	<lastBuildDate>Sun, 18 Dec 2011 14:11:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>La codifica in BEEing</title>
		<link>http://www.smartfeeling.org/beeing/2010/02/19/la-codifica-in-beeing/</link>
		<comments>http://www.smartfeeling.org/beeing/2010/02/19/la-codifica-in-beeing/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 10:14:10 +0000</pubDate>
		<dc:creator>Roberto Fratti</dc:creator>
				<category><![CDATA[Guida per i programmatori]]></category>
		<category><![CDATA[piattaforma]]></category>
		<category><![CDATA[codifica]]></category>
		<category><![CDATA[codifica_progetto]]></category>
		<category><![CDATA[eclipse-link]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[utf8]]></category>

		<guid isPermaLink="false">http://www.smartfeeling.org/beeing/?p=232</guid>
		<description><![CDATA[In questo articolo viene spiegato come modificare il tipo di codifica utilizzato dal framework. Di default BEEing utilizza la codifica UTF-8 adatta ad una piattaforma multilingue. <a href="http://www.smartfeeling.org/beeing/2010/02/19/la-codifica-in-beeing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/02/post.png"></a></h2>
<h2><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/02/encoding1.jpg"><img class="alignnone size-full wp-image-251" title="encoding" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/02/encoding1.jpg" alt="encoding" width="314" height="272" /></a></h2>
<h2>Introduzione</h2>
<p>BEEing utilizza la codifica <strong>UTF-8</strong> senza BOM (<strong>U</strong>nicode <strong>T</strong>ransformation <strong>F</strong>ormat, <strong>8</strong> bit), molto utile per il trasferimento di informazioni tramite sistemi di posta elettronica o per la memorizzazione di dati all&#8217;interno di un datastore. In particolare risulta essere molto adatta a questo tipo di piattaforma, essendo BEEing un framework multilingue.</p>
<h2>Come impostare una codifica in BEEing</h2>
<p>Per definire una determinata codifica sulla piattaforma (es. UTF-8) è necessario seguire i seguenti passi;</p>
<h3 style="font-size: 1.17em;">Impostare la codifica UTF-8 in Glassfish</h3>
<p><a href="https://glassfish.dev.java.net/" target="_blank">Glassfish</a> è l&#8217;application server utilizzato da BEEing, all&#8217;interno del quale è necessario configurare un pool contenente le connessioni con i database.</p>
<p>Per ogni connessione è necessario definire alcune proprietà aggiuntive (vedi l&#8217;apposita sezione in <a href="http://www.smartfeeling.org/beeing/2010/01/01/installare-la-versione-3-x-di-beeing/" target="_blank">Installare la versione 3.x di BEEing</a>) tramite cui specificare il nome del database, l&#8217;indirizzo IP &#8230; Tra queste può essere inserita anche la proprietà <strong>Encoding</strong> con valore il tipo di codifica che si intende utilizzare.</p>
<p style="text-align: center;"><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/02/Encoding-glassfish.png"><img style="display: block; margin-left: auto; margin-right: auto; border: 0px initial initial;" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/02/Encoding-glassfish.png" alt="Encoding-glassfish" width="574" height="196" /></a></p>
<h3 style="font-size: 1.17em;">Impostare la codifica UTF-8 nel Database.</h3>
<p>Il database destinato a contenere i nostri dati dev&#8217;essere configurato con la codifica prescelta onde evitare spiacevoli conversioni errate; questa impostazione può essere specificata attraverso il software prescelto per la gestione dei datastore. Di seguito un esempio tramite <a href="http://www.navicat.com/" target="_blank">Navicat</a>.</p>
<p><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/02/Encoding-navicat.png"><img style="display: block; margin-left: auto; margin-right: auto; border: 0px initial initial;" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/02/Encoding-navicat.png" alt="Encoding-navicat" width="414" height="234" /></a></p>
<p style="text-align: center;"><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/02/Encoding-navicat.png"></a></p>
<h3>Codifica per Progetto (per chi ama lavorare sul codice sorgente)</h3>
<p>Tramite un apposito IDE di programmazione (o sull&#8217;apposito file.xml) è possibile impostare la codifica di un progetto.</p>
<p>Ad esempio <a href="http://netbeans.org/" target="_blank">Netbeans</a> consente questa operazione entrando nelle proprietà del progetto di interesse.</p>
<p style="text-align: center"><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/02/nb.png"><img class="aligncenter size-full wp-image-233" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/02/nb.png" alt="nb" width="358" height="74" /></a></p>
<h3>Codifica per Eclipse-Link (per chi ama lavorare sul codice sorgente)</h3>
<p>Se siete degli sviluppatori e state realizzando un nuovo plug-in con un apposito database, allora dovreste assicurarvi che anche le dichiarazioni delle persistence unit contengano le corrette specifiche di encoding.</p>
<p><strong><span style="font-weight: normal"><a href="http://www.eclipse.org/eclipselink/" target="_blank">Eclipse-Link</a> consente l&#8217;interazione tra BEEing ed il datastore. Perchè possa essere utilizzato all&#8217;interno dal framework è necessario configurare, per ogni progetto, il file </span>persistence.xml<span style="font-weight: normal">. All&#8217;interno di questo file è possibile definire il tipo di codifica da utilizzare per la comunicazione con il database: </span></strong></p>
<p style="text-align: center"><strong><span style="font-weight: normal"><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/02/Encoding-eclipselink.png"><img class="size-full wp-image-234   aligncenter" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/02/Encoding-eclipselink.png" alt="Encoding-eclipselink" width="429" height="120" /></a></span></strong></p>
<p style="text-align: center">
<p style="text-align: center">
<p style="text-align: left;">AUTORE: Roberto Fratti</p>
]]></content:encoded>
			<wfw:commentRss>http://www.smartfeeling.org/beeing/2010/02/19/la-codifica-in-beeing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La flessibilità di BEEing</title>
		<link>http://www.smartfeeling.org/beeing/2010/02/18/la-flessibilita-di-beeing/</link>
		<comments>http://www.smartfeeling.org/beeing/2010/02/18/la-flessibilita-di-beeing/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 11:31:58 +0000</pubDate>
		<dc:creator>angelo.geminiani</dc:creator>
				<category><![CDATA[Guida per i programmatori]]></category>
		<category><![CDATA[Guida per utenti]]></category>
		<category><![CDATA[piattaforma]]></category>

		<guid isPermaLink="false">http://www.smartfeeling.org/beeing/?p=220</guid>
		<description><![CDATA[In questo articolo &#8220;Cos&#8217;è BEEing&#8221; avevo già introdotto a grandi linee le potenzialità del Framework e l&#8217;idea del percorso evolutivo della piattaforma verso un sistema applicativo, per così dire, &#8220;pronto all&#8217;uso&#8221;. Cosa posso farci con BEEing? Posso realizzare un CRM? &#8230; <a href="http://www.smartfeeling.org/beeing/2010/02/18/la-flessibilita-di-beeing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/02/flexible2.png"><img class="alignnone size-full wp-image-221" title="flexible2" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/02/flexible2.png" alt="flexible2" width="343" height="324" /></a></p>
<p>In questo articolo &#8220;<a title="Cos'è BEEing" href="http://www.smartfeeling.org/beeing/2009/10/15/hello-world/" target="_blank">Cos&#8217;è BEEing</a>&#8221; avevo già introdotto a grandi linee le potenzialità del Framework e l&#8217;idea del percorso evolutivo della piattaforma verso un sistema applicativo, per così dire, &#8220;pronto all&#8217;uso&#8221;.</p>
<p>Cosa posso farci con BEEing? Posso realizzare un CRM? Posso utilizzarlo come wiki aziendale? Posso utilizzare il datastore <a title="Condivisione Documentale" href="http://www.smartfeeling.org/blog/2009/11/enterprise-2-0-dall-archiviazione-documentale-alla-condivisione-documentale/" target="_blank">come sistema di archiviazione o condivisione documentale</a>? Posso utilizzarlo per l&#8217;implementazione di un sistema di configurazione commerciale? Posso pubblicare report aziendali? Posso gestire i profili professionali dei miei dipendenti?</p>
<p>La risposta a queste domande è sì. BEEing racchiude una serie di funzionalità base ed alcune predisposizioni a funzionalità che possono essere sviluppate ad-hoc o che verranno sviluppate in futuro. Come già detto in piu&#8217; occasioni, BEEing si sta evolvendo di giorno in giorno e quotidianamente presenta nuovi plug-in e nuove funzionalità</p>
<p>Ad oggi viene utilizzato con grande successo come <strong>piattaforma sociale di livello enterprise</strong>, integrando funzionalità tipiche di una extranet aziendale, di un wiki intra/extra aziendale, di un sistema di archiviazione/condivisione documentale, di una piattaforma a supporto di soluzioni commerciali di configurazione.</p>
<h2>Perchè utilizzare BEEing per lo sviluppo di soluzioni Enterprise?</h2>
<p>Potrei rispondere perchè è Open Source, il codice rispetta tutti i principali standard tecnologici e fa largo uso di molti altri progetti Open Source (es: <strong>ZK</strong>, <strong>JSON</strong>, <strong>Velocity</strong>, <strong>Rome</strong>, <strong>EclipseLink</strong>, <strong>Jakarta </strong>Commons, ecc..). Inoltre si appoggia ad uno dei migliori Application Server Open Source, <strong>Glassfish </strong>(oggi supportato da Oracle).</p>
<p>Ma il motivo principale deve essere che BEEing è stato progettato appositamente per l&#8217;implementazione di <strong>soluzioni sociali a livello Enterprise</strong>. Che si tratti di mettere in piedi un semplice wiki aziendale o un piu&#8217; complesso sistema intra/extra aziendale, BEEing è sempre la scelta migliore.</p>
<p>Potete personalizzare ogni template grafico, configurare il profilo utente ai massimi dettagli (ruoli, attributi e gruppi), sfruttare la tecnologia wiki nativa, il datastore interno per l&#8217;archiviazione di files, oppure sviluppare internamente i vostri plug-in per fornire ai vostri utenti report sempre aggiornati, sistemi dispositivi integrati al vostro ERP, sistemi di configurazione commerciale o a supporto della progettazione tecnica.</p>
<p>In una sola parola, perchè <strong>BEEing è flessibile </strong>e quell&#8217;idea che avete in mente può facilmente diventare realtà.</p>
<h2>Chi può trarre vantaggio nell&#8217;utilizzo di BEEing?</h2>
<h3>Aziende:</h3>
<p>Tutte le aziende che trovino sufficienti le funzionalità applicative incluse (wiki, gestione profili, blog, archiviazione, sistema multilingue) o quelle che dispongono di una struttura tecnica interna in grado di personalizzare ed estendere la piattaforma.</p>
<h3>Software House:</h3>
<p>BEEing è facilmente integrabile con quasi tutti i piu&#8217; moderni sistemi gestionali oggi presenti sul mercato (l&#8217;integrazione con SAP/R3, per esempio, avviene mediante BAPI e JCo) ed offre una semplice ma potente piattaforma di sviluppo che consente anche ai programmatori meno esperti di cimentarsi con lo svliluppo di applicazioni web solide e graficamente accattivanti. L&#8217;architettura a componenti, che coinvolge anche l&#8217;aspetto grafico del framework, consente la realizzazione di oggetti e widget riutilizzabili in ogni contesto.</p>
<h3>Sviluppatori Liberi Professionisti:</h3>
<p>Per chi già sviluppa in java e vuole una piattaforma economica, flessibile, robusta e semplice da implementare presso i propri clienti. Sviluppare su BEEing, Glassfish e MySQL non costa nulla ed offre potenzialità illimitate.<br />
Potrete tranquillamente affrontare tutte le richieste dei vostri clienti.<br />
Inoltre potreste diventare partner ed implementatori   certificati.</p>
<h2>E l&#8217;assistenza?</h2>
<p>Molti ci hanno già contattati, perciò non esitate se avete dubbi o quesiti di ogni tipo.<br />
BEEing è giovane, e ci stiamo organizzando per istruire una rete di partner intenzionati ad investire in progetti Open Source e che siano in grado di diffonderne le conoscenze.<br />
Molto presto pubblicheremo i nominativi delle prime Software House in grado di fornire assistenza tecnica a pagamento.<br />
Per ora potete benissimo sfruttare l&#8217;assistenza gratuita che forniamo con piacere a tutti coloro che ne facciano richiesta.</p>
<p><span style="color: #0000ff;">AUTORE</span>: <a title="Autore" href="http://www.smartfeeling.org/beeing/about/" target="_blank">Gian Angelo Geminiani</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.smartfeeling.org/beeing/2010/02/18/la-flessibilita-di-beeing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quanta memoria assegnare a BEEing?</title>
		<link>http://www.smartfeeling.org/beeing/2010/01/08/quanta-memoria-assegnare-a-beeing/</link>
		<comments>http://www.smartfeeling.org/beeing/2010/01/08/quanta-memoria-assegnare-a-beeing/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 17:07:33 +0000</pubDate>
		<dc:creator>angelo.geminiani</dc:creator>
				<category><![CDATA[Guida per i programmatori]]></category>
		<category><![CDATA[piattaforma]]></category>
		<category><![CDATA[configurazione]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.smartfeeling.org/beeing/?p=205</guid>
		<description><![CDATA[BEEing, per migliorare le performance applicative, fa largo uso di diversi sistemi di caching dei dati sia in memoria che su file. La cache utilizza in parte la memoria ram della macchina host. Per questo motivo è buona norma configurare &#8230; <a href="http://www.smartfeeling.org/beeing/2010/01/08/quanta-memoria-assegnare-a-beeing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfish_momory.png"><img class="alignleft size-full wp-image-206" title="glassfish_momory" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfish_momory.png" alt="glassfish_momory" width="194" height="145" /></a>BEEing, per migliorare le performance applicative, fa largo uso di diversi sistemi di caching dei dati sia in memoria che su file.</p>
<p>La cache utilizza in parte la memoria ram della macchina host.<br />
Per questo motivo è buona norma configurare Glassfish in modo che renda disponibile la memoria a BEEing nel minor tempo possibile.</p>
<p>Glassfish viene installato con un&#8217;impostazione base adatta ad un ambiente di sviluppo e debug.<br />
Per ambienti di produzione occorre modificare alcune opzioni della macchina virtuale.<br />
Per farlo dovete aprire la sezione &#8220;<strong>JVM Options</strong>&#8221; ed impostare le seguenti opzioni come di seguito:</p>
<ol>
<li>Cambiate l&#8217;opzione <strong>-client</strong> in <strong>-server</strong>.</li>
<li>Impostate l&#8217;opzione Xms in questo modo: <strong>-Xms832m</strong></li>
<li>Impostate l&#8217;opzione Xmx in questo modo: <strong>-Xmx832m</strong></li>
<li>Assicuratevi che esista questa opzione: <strong>-XX:MaxPermSize=192m</strong></li>
</ol>
<p><span style="color: #0000ff;">AUTORE</span>: <a title="Autore" href="http://www.smartfeeling.org/beeing/about/" target="_blank">Gian Angelo Geminiani</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.smartfeeling.org/beeing/2010/01/08/quanta-memoria-assegnare-a-beeing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Impostare Glassfishv3 come daemon (servizio) in Linux</title>
		<link>http://www.smartfeeling.org/beeing/2010/01/08/impostare-glassfishv3-come-daemon-servizio-in-linux/</link>
		<comments>http://www.smartfeeling.org/beeing/2010/01/08/impostare-glassfishv3-come-daemon-servizio-in-linux/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 10:16:42 +0000</pubDate>
		<dc:creator>angelo.geminiani</dc:creator>
				<category><![CDATA[Guida per i programmatori]]></category>
		<category><![CDATA[piattaforma]]></category>
		<category><![CDATA[configurazione]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.smartfeeling.org/beeing/?p=193</guid>
		<description><![CDATA[Introduzione Questo post spiega come configurare Glassfish su piattaforma Linux Ubuntu affinchè parta come daemon (servizio) al boot della macchina. L&#8217;installer non esegue queste attività automaticamente, ma in un contesto di produzione è impensabile dover avviare manualmente l&#8217;Application Server. Questo &#8230; <a href="http://www.smartfeeling.org/beeing/2010/01/08/impostare-glassfishv3-come-daemon-servizio-in-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/ubuntu_glassfish_beeing.jpg"><img class="alignleft size-full wp-image-195" title="ubuntu_glassfish_beeing" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/ubuntu_glassfish_beeing.jpg" alt="ubuntu_glassfish_beeing" width="339" height="307" /></a>Introduzione</h2>
<p>Questo post spiega come configurare Glassfish su piattaforma Linux Ubuntu affinchè parta come daemon (servizio) al boot della macchina.<br />
L&#8217;installer non esegue queste attività automaticamente, ma in un contesto di produzione è impensabile dover avviare manualmente l&#8217;Application Server.</p>
<p>Questo breve tutorial è dedicato agli utenti meno esperti.</p>
<h2>Installazione di Glassfish</h2>
<p>Prima di avventurarci nelle attività successive, dovete aver effettuato l&#8217;installazione di Glassfish e la configurazione di BEEing come da<a href="http://www.smartfeeling.org/beeing/2010/01/01/installare-la-versione-3-x-di-beeing/" target="_blank"> tutorial</a>.</p>
<p>Dalla procedura di installazione dovete segnarvi il percorso in cui Glassfish è stato installato.<br />
es: /home/administrator/glassfishv3</p>
<h2>Creazione del file di avvio</h2>
<p>La creazione del file di avvio è molto semplice.<br />
Il file dovrà essere creato nella cartella <strong><em>/etc/init.d</em></strong>.<br />
Chiameremo il file semplicemente <strong><em>GlassFish</em></strong>.</p>
<h3>1. Avviare l&#8217;editor di testo in modalità amministrativa:</h3>
<p>Eseguire il seguente comando da terminale:</p>
<pre>sudo gedit /etc/init.d/GlassFish</pre>
<p><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfish_daemon_step1.png"><img class="alignnone size-full wp-image-196" title="glassfish_daemon_step1" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfish_daemon_step1.png" alt="glassfish_daemon_step1" width="615" height="498" /></a></p>
<p>Appena inserita la password di amministrazione (quella che avrete impostato in fase di installazione del sistema operativo) l&#8217;editor verrà aperto pronto alla modifica del file <strong>GlassFish</strong> (che naturalmente in questa fase sarà vuoto).<br />
Copiate nel file il seguente contenuto:</p>
<pre>GLASSFISHHOME=/home/administrator/glassfishv3/glassfish
case "$1" in
start)
 ${GLASSFISHHOME}/bin/asadmin start-domain domain1
 ;;
stop)
 ${GLASSFISHHOME}/bin/asadmin stop-domain domain1
 ;;
restart)
 ${GLASSFISHHOME}/bin/asadmin stop-domain domain1
 ${GLASSFISHHOME}/bin/asadmin start-domain domain1
 ;;
*)
 echo $"usage: $0 {start|stop|restart}"
 exit 1
esac</pre>
<p>Salvate e Chiudete il file.</p>
<h3>2. Rendere Avviabile il file GlassFish</h3>
<p>Digitate a terminale il seguente comando:</p>
<pre>sudo chmod a+x /etc/init.d/GlassFish</pre>
<p>E&#8217; possibile che vi venga richiesta nuovamente la password di amministratore.</p>
<h3>3. Creare i links al file Glassfish per i diversi livelli di avvio.</h3>
<p>Nelle fasi precedenti abbiamo creato un file, <strong>GlassFish</strong>, che consente l&#8217;avvio e l&#8217;arresto (ed il riavvio) dell&#8217;Application Server.<br />
Poi lo abbiamo reso eseguibile, in modo che possa essere  lanciato come un qualsiasi altro programma.</p>
<p>Ora dobbiamo creare i link all&#8217;interno di apposite cartelle che invocheranno il nostro file <strong>GlassFish</strong>.<br />
Per evitare di eseguire la procedura manualmente, possiamo utilizzare uno script che ho reperito sul <a href="http://blogs.sun.com/kkranz/entry/setting_up_glassfish_on_ubuntu" target="_blank">blog di Sun</a> e ho riadattato.<br />
Dobbiamo innanzi tutto creare un file eseguibile contenente lo script che lanceremo successivamente.</p>
<p>Per creare il file eseguibile con lo script compiremo la stessa procedura descritta nei punti 1 e 2.</p>
<p><strong>Avvio dell&#8217;editor di testo</strong>:</p>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">sudo gedit /home/administrator/Desktop/CreateLinks</span></p>
<p>Verrà creato un file <strong>CreateLinks </strong>sul desktop.</p>
<p>Copiate il seguente contenuto nel file e salvate. Potete poi chiudere l&#8217;editor.</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">#!/bin/bash

# Author: Ken Kranz - Sun Microsystems, Inc

TARGET=$1

NUMBER=$2

USAGE="$(basename $0) TARGET NUMBER"

if [[ $# != 2 ]]; then

    echo $USAGE

    exit 0

fi

if [[ x$TARGET = x ]]; then

    echo missing TARGET

    echo $USAGE

    exit 1

fi

if [[ x$NUMBER = x ]]; then

    echo missing NUMBER

    echo $USAGE

    exit 1

fi

if [[ ! -e /etc/init.d/$TARGET ]]; then

    echo cannot find $TARGET

    exit 1

fi

sudo chmod a+x /etc/init.d/$TARGET

sudo ln -v -s /etc/init.d/$TARGET /etc/rc0.d/K${NUMBER}$TARGET

sudo ln -v -s /etc/init.d/$TARGET /etc/rc1.d/K${NUMBER}$TARGET

sudo ln -v -s /etc/init.d/$TARGET /etc/rc2.d/S${NUMBER}$TARGET

sudo ln -v -s /etc/init.d/$TARGET /etc/rc3.d/S${NUMBER}$TARGET

sudo ln -v -s /etc/init.d/$TARGET /etc/rc4.d/S${NUMBER}$TARGET

sudo ln -v -s /etc/init.d/$TARGET /etc/rc5.d/S${NUMBER}$TARGET

sudo ln -v -s /etc/init.d/$TARGET /etc/rc6.d/K${NUMBER}$TARGET</pre>
<p><strong>Rendere il file CreteLinks eseguibile.</strong></p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">sudo chmod a+x /home/administrator/Desktop/CreateLinks</pre>
<p><strong>Eseguire CreateLinks.</strong></p>
<p>Siamo finalmente pronti ad eseguire CreteLinks, il file che si occuperà per noi di effettuare tutte le modifiche necessarie all&#8217;avvio, arresto e riavvio di Glassfish come daemon.</p>
<p>Da terminale dovrete digitare, uno alla volta, i seguenti comandi:</p>
<pre>sudo /home/administrator/Desktop/CreateLinks GlassFish 2</pre>
<pre>sudo /home/administrator/Desktop/CreateLinks GlassFish 5</pre>
<pre>sudo /home/administrator/Desktop/CreateLinks GlassFish 0</pre>
<pre>sudo /home/administrator/Desktop/CreateLinks GlassFish 1</pre>
<pre>sudo /home/administrator/Desktop/CreateLinks GlassFish 6</pre>
<p>Riavviate la macchina e verificate che Glassfish sia partito.</p>
<p><span style="color: #0000ff;">AUTORE</span>: <a title="Autore" href="http://www.smartfeeling.org/beeing/about/" target="_blank">Gian Angelo Geminiani</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.smartfeeling.org/beeing/2010/01/08/impostare-glassfishv3-come-daemon-servizio-in-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stile e Specifiche di programmazione in BEEing</title>
		<link>http://www.smartfeeling.org/beeing/2010/01/05/stile-di-programmazione-in-beeing/</link>
		<comments>http://www.smartfeeling.org/beeing/2010/01/05/stile-di-programmazione-in-beeing/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 12:01:01 +0000</pubDate>
		<dc:creator>Roberto Fratti</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Guida per i programmatori]]></category>
		<category><![CDATA[Manuale di Stile e Risorse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[stile del codice]]></category>

		<guid isPermaLink="false">http://www.smartfeeling.org/beeing/?p=134</guid>
		<description><![CDATA[Attraverso questa  guida si vuol aiutare quei programmatori che vogliono iniziare a scrivere con il framework BEEing. Contiene consigli e direttive per scrivere un codice pulito, intelligente e facile da manutenere.   <a href="http://www.smartfeeling.org/beeing/2010/01/05/stile-di-programmazione-in-beeing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><span style="font-size: small"><strong><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/StileProgrammazione.png"><br />
<img class="size-full wp-image-183 aligncenter" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/StileProgrammazione.png" alt="StileProgrammazione" width="286" height="286" /></a></strong></span></p>
<h2>Introduzione.</h2>
<p>Questo post è <strong>indirizzato esclusivamente ai programmatori</strong> che abbiano interesse ad orientarsi nel codice sorgente di BEEing.<br />
Per migliorare la lettura del codice ed il lavoro in team, abbiamo definito alcune semplici specifiche che vanno dalla definizione dei nomi delle variabili, dei metodi, ecc.. alla struttura dei package.</p>
<h2>Specifiche:</h2>
<h3><span style="font-size: small"><strong>NOMI COMPOSTI:</strong></span><span style="font-size: small"> </span></h3>
<p><span style="font-size: small">Java impone che i nomi di metodi,di variabili &#8230; vengano scritti con l&#8217;iniziale minuscola.<br />
Se sono nomi composti, ogni nuova parola deve iniziare con la lettera maiuscola.</span></p>
<p><span style="font-size: small"><span style="color: #ff9900">***************************************************************</span></span><br />
<span style="font-size: small"><span style="font-size: x-small"> setPostName(final String postName){<br />
&#8230;..<br />
&#8230;..<br />
}<br />
</span></span><span style="font-size: small"><span style="color: #ff9900">***************************************************************</span></span><br />
<span style="font-size: small"> </span></p>
<h3><strong>DIVISIONE ALL&#8217;INTERNO DEI PROGETTI: </strong></h3>
<p><strong> </strong>Il codice sorgente di BEEing è organizzato in packages ed in cartelle.<br />
La divisione in cartelle rispetta le specifiche del pattern<strong> MVC (Model View Control), </strong>e separa nettamente GUI (View),  Model e Controller:</p>
<ul>
<li><span style="color: #ff0000">GUI</span>: Parte di grafica. Spesso viene fatta un ulteriore divisione in GUI_WIDGETS, GUI_COMPONENTS, GUI_WINDOWS&#8230;</li>
<li><span style="color: #ff0000">MODEL</span>: Sezione relativa al Database.</li>
<li><span style="color: #ff0000">CONTROLLER</span>: Cartella destinata a contenere classi di utiliti, classi astratte &#8230;</li>
</ul>
<p><span style="font-size: small"><span style="color: #ff9900">***************************************************************</span></span></p>
<h3><strong>NOM<span style="font-weight: normal"><strong>I DEI PACKAGE:</strong></span></strong></h3>
<p><strong><span style="font-weight: normal"><strong> </strong> In BEEing si è scelto di definire in nomi dei package in questo modo:</span></strong></p>
<p><span style="color: #ff0000"><span style="color: #000000">Prima parte: </span><strong>org.sf.bee.</strong></span></p>
<p>Seconda parte: <span style="color: #000000"><strong>nome del progetto</strong> <strong>o identificativo della sezione</strong>: (esempio <span style="color: #ff0000">search</span>, <span style="color: #ff0000">admin</span>, <span style="color: #ff0000">wiki </span>&#8230;);<br />
</span></p>
<p><span style="color: #000000">Terza parte: <strong>nome della cartella</strong> in cui si trova il package: gui (se si trova in una cartella <span style="color: #ff0000">GUI</span>), gui.components (se si trova nella cartella <span style="color: #ff0000">GUI_COMPONENTS</span>);</span></p>
<p><span style="color: #000000">Quarta parte: <strong>components</strong>, <strong>widgets</strong>, <strong>windows </strong>a seconda del tipo di componente. Non viene inserita se è già stata specificata al terzo punto;</span></p>
<p><span style="color: #000000">Quinta parte: </span><strong>pagectrls</strong>, <span style="color: #000000">nel caso si tratti di un componente che funga da controller della pagina. In questo modo è molto facile distinguere tra classi principali e classi secondarie.<br />
</span></p>
<p><span style="color: #000000">Sesta parte: <strong>nome </strong>esplicito ed identificativo della <strong>funzionalità </strong>della classe. Tutto in minuscolo e senza separatori.</span><br />
ESEMPIO:</p>
<p><span style="font-size: small"> </span></p>
<div style="text-align: left"><img style="width: 429px;height: 507px" src="http://docs.google.com/File?id=dk56f95_135g4g3gpwn_b" alt="" /></div>
<p><span style="font-size: small"><span style="color: #ff9900">***************************************************************</span></span></p>
<h3><span style="font-size: small"><strong>UTILIZZATE NOMI INTELLIGENTI</strong>:</span></h3>
<div><span style="font-size: small"> </span><span style="font-size: small">le funzioni, le proprietà, le variabili &#8230; devono avere nomi semplici; in questo modo sia chi scrive il codice sia chi lo va a leggere può dedurne immediatamente lo scopo. Eventualmente utilizzate dei prefissi per indicare tipi diversi di variabili e funzioni.</span></div>
<p><span style="font-size: small">Scrivendo i nomi chiaramente non avrete bisogno di scrivere commenti troppo descrittivi.</span><br />
<span style="font-size: small">Esempi</span> <span style="font-size: small">di nomi per i metodi:</span><br />
<span style="font-size: small"><strong>do</strong>Save, <strong>do</strong>Remove &#8230; &#8211;&gt; il prefisso <strong>do</strong> </span><span style="font-size: small">rende l&#8217;idea di un&#8217;azione, quindi può essere utilizzato per i metodi chiamati al click su un bottone, su un link &#8230;;</span></p>
<p><strong>get</strong>Text, <strong>get</strong>Name &#8230; &#8211;&gt; il prefisso <strong>get</strong>, in italiano &#8220;dammi&#8221;, dedicatelo a quei metodi che devono restituire qualcosa;</p>
<p><strong>set</strong>Text, <strong>set</strong>Name &#8230; &#8211;&gt; viceversa adoperate la parola <strong>set</strong>, in italiano &#8220;imposta&#8221;, per quei metodi che devono inizializzare o aggiornare dei dati (normalmente vengono passati, come argomenti, i dati da aggiornare);<br />
<span style="font-size: small"> </span><br />
<span style="font-size: small"><strong>init</strong>, <strong>init</strong>Components&#8230; &#8211;&gt; il prefisso <strong>init</strong> dev&#8217;essere utilizzato per indicare una inizializzazione. Normalmente tutti i metodi che iniziano con <strong>init</strong> vengono posti vicini nel codice.</span></p>
<p>E&#8217; buona norma che i metodi abbiano una lunghezza massima intorno alle 15 righe. Quando iniziano ad essere 20 &#8211; 30 sarebbe buona norma pensare di dividere i metodi in due o più; in questo modo sarà più facile manutenere e debuggare il codice.</p>
<p>Un&#8217;altra tecnica spesso utilizzata per aver maggiore chiarezza consiste nell&#8217;inserire delle righe bianche per dividere le varie parti di un metodo.</p>
<p><span style="font-size: small"><span style="color: #ff9900">***************************************************************</span></span></p>
<h3><span style="font-size: small"><strong>CURARE LA FORMA:</strong></span></h3>
<div><span style="font-size: small"><strong> </strong> </span><span style="font-size: small">è importante, sia per chi sviluppa che per chi legge, che il codice sia pulito, ordinato e ben formattato.</span></div>
<p><span style="font-size: small"> Cercate di dichiarare le variabili sempre prima del codice così da poterle ritrovare facilmente. <a id="e.r1" title="-&gt;" href="http://docs.google.com/Doc?docid=0AazMsAVRAE4vZGs1NmY5NV8xMjVoZmN4eGQ5Yg&amp;hl=en#variablesBeforeCode" target="_self">&#8211;&gt;</a><br />
</span> <span style="font-size: small">Utilizzate sempre le costanti (nome della variabile tutto maiuscolo). <a id="byw7" title="-&gt;" href="http://docs.google.com/Doc?docid=0AazMsAVRAE4vZGs1NmY5NV8xMjVoZmN4eGQ5Yg&amp;hl=en#constants" target="_self">&#8211;&gt;</a><br />
Quando potete, anteponete al <strong>tipo </strong>di variabile la keyword <strong>final</strong>. <a id="dbpt" title="--&gt;" href="http://docs.google.com/Doc?docid=0AazMsAVRAE4vZGs1NmY5NV8xMjVoZmN4eGQ5Yg&amp;hl=en#final" target="_self">&#8211;&gt;</a> </span><br />
<span style="font-size: small"><br />
</span><br />
<span style="font-size: small">Andiamo nel dettaglio&#8230;</span></p>
<p><strong><em><span style="font-size: small"><a name="variablesBeforeCode"></a>Cercate di dichiarare le variabili sempre prima del codice così da poterle ritrovare facilmente.</span></em></strong><br />
<span style="font-size: x-small"><br />
</span></p>
<div style="text-align: left"><img class="alignnone size-full wp-image-179" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/StileProgrammazione_Properties.png" alt="StileProgrammazione_Properties" width="535" height="221" /></div>
<div style="text-align: left">Le variabili della classe vengono identificate come &#8220;<strong>Properties</strong>&#8221; se prevedono i metodi &#8220;<strong>set</strong>&#8221; e &#8220;<strong>get</strong>&#8220;.</div>
<div style="text-align: left"><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/StileProgrammazione_CompFieldsConstants.png"><img class="alignnone size-full wp-image-180" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/StileProgrammazione_CompFieldsConstants.png" alt="StileProgrammazione_CompFieldsConstants" width="725" height="388" /></a></div>
<div style="text-align: left">I &#8220;<strong>Fields</strong>&#8221; vengono distinti dalle altre variabili in quanto il nome identificativo viene preceduto da un <strong>singolo underscore</strong> &#8220;_&#8221;.  Questa tecnica derivante dal <strong>C++</strong> rappresenta, a mio parere, un&#8217;alternativa più elegante al &#8220;<strong>this.</strong>&#8221; introdotto con <strong>Java</strong>. Per questo motivo è stata adottata in tutto il framework e dovrà essere utilizzata.</div>
<p><em><span style="font-size: small"><a name="constants"></a>Utilizzate sempre le costanti (nome della variabile tutto maiuscolo).</span></em><br />
<span style="font-size: x-small"><span style="font-size: small"><span style="color: #000000"><br />
All&#8217;interno di una classe (Prova.java): </span></span><br />
<strong> public static final String BTN_ADD = &#8220;btnAdd&#8221;;</strong></span><br />
<span style="font-size: small">All&#8217;interno di un&#8217;altra classe che debba utilizzare lo <strong>stesso</strong> bottone della classe Prova (Test.java):<br />
</span><span style="font-size: x-small"><strong>public static final String BTN_ADD =  Prova.BTN_ADD;</strong><br />
</span><span style="font-size: small">In questo modo non dovrete ricercare per tutta la classe (o addirittura su più classi) una stringa da modificare (<span style="font-size: x-small">es. da &#8220;btnAdd&#8221; a &#8220;btnNew&#8221;</span>), basterà farlo per una sola costante.<br />
</span></p>
<p><span style="font-size: small">Formattate bene il codice; molti strumenti di sviluppo offrono delle funzioni che consentono una strutturazione automatica.<br />
</span><br />
<strong><span style="font-size: small"><a name="final"></a>Quando potete, anteponete al tipo di variabile la costante final. </span></strong><br />
<span style="font-size: small"> </span></p>
<div style="text-align: left"><img style="width: 592px;height: 39px" src="http://docs.google.com/File?id=dk56f95_129w74rrqcv_b" alt="" /></div>
<p>L&#8217;applicazione della keyword <span style="text-decoration: underline">final</span> alle <strong>variabili</strong> è un&#8217;ottimizzazione in quanto constente di allocarle direttamente in memoria così che possano essere reperite più velocemente.<br />
Naturalmente comporta alcune limitazioni, in quanto dopo la dichiarazione, potrete inizializzare la variabile UNA sola volta.</p>
<p>Applicando <span style="text-decoration: underline">final</span> ad una <strong>classe</strong>, impedisce la creazione di sottoclassi (N.B. non confondere il concetto di sottoclasse, subclass, con istanza della classe).</p>
<p>Se applicata ai <strong>metodi</strong> ne impedisce l&#8217;override.</p>
<p><strong><em><span style="font-size: small"><a name="components"></a>Alcune variabili, quelle relative ai componenti grafici, è buona norma inizializzare SOLO una volta per ogni istanza di classe. </span></em></strong><span style="font-size: small"> </span></p>
<p><strong><em><span style="font-size: small"><img src="http://docs.google.com/File?id=dk56f95_128gqmnzrfm_b" alt="" width="648" height="196" /><br />
</span></em></strong><span style="font-size: small"><span style="background-color: #ffffff">L&#8217;utilizzo di questo metodo comporta i seguenti vantaggi:<br />
- performance migliori<br />
- drastica riduzione di null pointer exception e di pagine bianche.<br />
Mal che vada, non vedendo il componente, potrete farvi immediatamente un&#8217;idea su chi ha originato l&#8217;errore.</span></span></p>
<p><span style="font-size: small"><span style="background-color: #ffffff"><span style="color: #0000ff">AUTORE</span>: <a href="http://www.smartfeeling.org/beeing/about/">Roberto Fratti</a></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.smartfeeling.org/beeing/2010/01/05/stile-di-programmazione-in-beeing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Glassfish v3: come verificare la connessione ad un database.</title>
		<link>http://www.smartfeeling.org/beeing/2010/01/03/glassfish-v3-come-verificare-la-connessione-ad-un-database/</link>
		<comments>http://www.smartfeeling.org/beeing/2010/01/03/glassfish-v3-come-verificare-la-connessione-ad-un-database/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 09:20:06 +0000</pubDate>
		<dc:creator>angelo.geminiani</dc:creator>
				<category><![CDATA[Guida per i programmatori]]></category>
		<category><![CDATA[Quick Start]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[installazione]]></category>

		<guid isPermaLink="false">http://www.smartfeeling.org/beeing/?p=172</guid>
		<description><![CDATA[Glassfish dispone di un metodo molto semplice per testare la connessione ad un database, il ping. Per verificare se tutti i parametri inseriti nella procedura di configurazione sono corretti, è sufficiente cliccare sul bottone Ping. E&#8217; molto semplice, selezionate la &#8230; <a href="http://www.smartfeeling.org/beeing/2010/01/03/glassfish-v3-come-verificare-la-connessione-ad-un-database/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-173 alignleft" title="glassfishv3_ping" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfishv3_ping-300x163.png" alt="glassfishv3_ping" width="300" height="163" /></p>
<p>Glassfish dispone di un metodo molto semplice per testare la connessione ad un database, il <strong>ping</strong>.</p>
<p>Per verificare se tutti i parametri inseriti nella <a title="Come installare BEEing 3.x in Glassfish 3.x" href="http://www.smartfeeling.org/beeing/2010/01/01/installare-la-versione-3-x-di-beeing/" target="_blank">procedura di configurazione</a> sono corretti, è sufficiente cliccare sul bottone Ping.</p>
<p>E&#8217; molto semplice, selezionate la connessione desiderata tra quelle presenti nel &#8220;Connection Pools&#8221; e fate click su &#8220;Ping&#8221;.</p>
<p>Se tutto ha funzionato a dovere otterrete un bel &#8220;<strong>Ping Succeded</strong>&#8220;, oppure un errore di qualche tipo.</p>
<p>Se avete appena installato Glassfish e non avete distribuito i driver del database, allora otterrete un <strong>errore JDBC</strong> che vi informa dell&#8217;impossibilità da parte del sistema di reperire il driver richiesto.<br />
Niente di cui preoccuparsi, ecco come ottenere e distribuire i driver su Glassfish.</p>
<h2>Distribuire i driver del vostro database su Glassfish.</h2>
<p>Questa procedura ha lo scopo di rendere disponibili i driver di database a livello di application server.<br />
Procedete in questo modo:</p>
<ol>
<li> Scaricate il driver desiderato. Poniamo ad esempio che abbiate necessità di testare la connessione con MySQL, allora dovrete scaricare l&#8217;ultima versione dei driver da questo sito: <a href="http://dev.mysql.com/downloads/connector/j/">http://dev.mysql.com/downloads/connector/j/</a> (.tar o .zip a seconda del sistema operativo su cui state facendo girare Glassfish)</li>
<li>Aprite l&#8217;archivio appena scaricato ed estraetene il contenuto in una cartella temporanea o sul Desktop. Dovreste ottenere una cartella con un nome simile a questo: &#8220;mysql-connector-java-5.1.10&#8243;</li>
<li>Aprite la cartella e verificate la presenza di un file .jar dal nome simile a &#8220;mysql-connector-java-5.1.10-bin.jar&#8221; (il nome può cambiare in funzione della versione del driver).</li>
<li>Copiate il file &#8220;mysql-connector-java-5.1.10-bin.jar&#8221; nella cartella LIB di Glassfish che trovate nel percorso &#8220;<strong>glassfish/lib</strong>/&#8221;. Se siete in ambiente Windows e state utilizzando Glassfishv3 il percorso dovrebbe essere grosso modo questo: &#8220;c:\glassfishv3\glassfish\lib&#8221;.<br />
Se invece state utilizzando Linux e avete installato Glassfish con i parametri di default, il percorso dovrebbe essere &#8220;/home/USER/glassfishv3/glassfish&#8221;.</li>
<li>Riavviate Glassfish.</li>
</ol>
<p>A questo punto riprovate il Ping. Se otterrete nuovamente un errore, questa volta dovrebbe trattarsi di un errore diverso da quello precedente e riportante l&#8217;indicazione che la connessione non è possibile perchè il database non è raggiungibile o l&#8217;utente non è stato riconosciuto.</p>
<p><span style="color: #0000ff;">AUTORE</span>: <a title="Autore" href="http://www.smartfeeling.org/beeing/about/" target="_blank">Gian Angelo Geminiani</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.smartfeeling.org/beeing/2010/01/03/glassfish-v3-come-verificare-la-connessione-ad-un-database/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installare la versione 3.x di BEEing</title>
		<link>http://www.smartfeeling.org/beeing/2010/01/01/installare-la-versione-3-x-di-beeing/</link>
		<comments>http://www.smartfeeling.org/beeing/2010/01/01/installare-la-versione-3-x-di-beeing/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 12:50:17 +0000</pubDate>
		<dc:creator>angelo.geminiani</dc:creator>
				<category><![CDATA[Guida per i programmatori]]></category>
		<category><![CDATA[Quick Start]]></category>
		<category><![CDATA[installazione]]></category>

		<guid isPermaLink="false">http://www.smartfeeling.org/beeing/?p=141</guid>
		<description><![CDATA[La versione 3.0.0 è da considerarsi una &#8220;Major Release&#8221; ed introduce numerose novità sia a livello funzionale che strutturale. In questo post prenderemo in considerazione solo le novità strutturali, in quanto influiscono anche sulle modalità di installazione. Innanzi tutto, per &#8230; <a href="http://www.smartfeeling.org/beeing/2010/01/01/installare-la-versione-3-x-di-beeing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/v3_0_0.png"><img class="alignleft size-full wp-image-140" title="v3_0_0" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/v3_0_0.png" alt="v3_0_0" width="310" height="264" /></a>La versione 3.0.0 è da considerarsi una &#8220;<strong>Major Release</strong>&#8221; ed introduce numerose novità sia a livello funzionale che strutturale.<br />
In questo post prenderemo in considerazione solo le novità strutturali, in quanto influiscono anche sulle modalità di installazione.</p>
<p>Innanzi tutto, per le versioni 3.x, abbiamo accorpato i vari database (bee_sys, bee_membership, bee_wiki, bee_audit, bee_community, ecc..) in uno unico (bee_sys).<br />
Le motivazioni che ci hanno spinto a ridefinire l&#8217;architettura dei dati sono innumerevoli, ma la principale è stata l&#8217;integrazione con <a title="Glassfish v3 Final" href="https://glassfish.dev.java.net/downloads/v3-final.html" target="_blank">Glassfish 3.x</a> ed il fatto che ora i datasource vengono gestiti direttamente da Glassfish e quindi devono essere configurati al suo interno.</p>
<p>I plug-in, invece, manterranno la classica architettura a database separati e dovranno essere configurati manualmente all&#8217;interno di Glassfish (nelle versioni precedenti erano auto-installanti).</p>
<p>Il risultato è che ora l&#8217;avvio dell&#8217;applicazione (avvio dell&#8217;ambiente, controllo integrità database, upgrade database, ecc..) richiede molta meno memoria, un minor utilizzo di CPU e tempi ridotti ad un quinto (circa 18 secondi su una macchina a singolo processore a  con 4 gb di ram).</p>
<h2>Installazione e configurazione MySQL.</h2>
<p>Non cambia quasi nulla dalla precedente versione di Glassfish.<br />
L&#8217;unica cosa è la creazione manuale del database principale: <strong>bee_sys</strong>.</p>
<h3>Creare il database bee_sys.</h3>
<p>La creazione manuale del database principale è molto semplice e può essere fatta da riga di comando &#8220;CREATE DATABASE &#8230;&#8221; oppure con un qualunque tool di amministrazione (MYSQL ADMINISTRATOR va benissimo).<br />
E&#8217; importante tener presente che <strong>non occorre creare l&#8217;intera struttura di metadati </strong>(Tabelle, Campi, ecc..) perchè a questo penserà poi la procedura di &#8220;sincronizzazione degli schema&#8221; di BEEing.</p>
<p>Anche in questo caso mi permetto di consigliarvi uno strumento gratuito nella versione Lite e molto potente per la gestione del database, cioè <a title="Navicat" href="http://www.navicat.com/download/download.html" target="_blank"><strong>Navicat</strong></a>.<br />
Purtroppo non è un progetto Open Source, ma vi garantisco che sul mercato difficilmente troverete tools all&#8217;altezza di Navicat.<br />
Inoltre la versione Lite fa tutto ciò di cui avrete bisogno per amministrare agevolmente un database.</p>
<h2>Installazione e configurazione di Glassfish v 3.x</h2>
<p>Glassfish v3 è realmente un application server eccezionale (EJB 3.1, JAVA EE6, Corba 3, ecc..) e potete scaricarlo dal sito ufficiale a questo link: <a title="Download Glassfish v3" href="https://glassfish.dev.java.net/downloads/v3-final.html" target="_blank">DOWNLOAD GLASSFISH</a><br />
Sul sito trovate inoltre tutte le indicazioni per installare Glassfish sia in ambiente Windows che Linux o Mac.</p>
<p>Personalmente preferisco lavorare su una macchina virtuale Linux Ubuntu (<a title="VMWare" href="http://www.vmware.com/products/server/" target="_blank">VMWARE Server è gratis da qualche anno</a>) ed installare BEEing in questo ambiente. In questo modo posso portarmi dietro la macchina virtuale su un disco esterno ed utilizzarla su tutte le macchine di sviluppo senza dover ogni volta riconfigurare l&#8217;ambiente o aggiornare il server.<br />
Presto forniremo una <strong>macchina virtuale preconfigurata</strong> e pronta all&#8217;uso (chi ne avesse urgenza può contattarci commentando questo post).</p>
<h3>Configurazione di BEEing v3 in Glassfish v3.</h3>
<p>La prima cosa da fare è quella di copiare e sovrascrivere il file login.conf (<a title="Come installare Glassfish v2" href="http://www.smartfeeling.org/beeing/2009/10/16/come-installare-beeing/" target="_blank">vedi post precedente</a>).<br />
La procedura è molto semplice: Aprite la cartella contenente i files di configurazione e copiatevi all’interno il file <a title="Download Login.conf" href="../../downloads/beeing/login-conf.zip" target="_self">login.config</a>, sovrascrivendo la versione esistente.</p>
<p>Ora siamo pronti alla definizione delle risorse database: Connection Pool e JDBC Resources.</p>
<p><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/Glassfishv3_JDBC.png"><img class="size-full wp-image-151 alignnone" title="Glassfishv3_JDBC" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/Glassfishv3_JDBC.png" alt="Glassfishv3_JDBC" width="582" height="424" /></a></p>
<p>I passi da fare sono due.<br />
Per prima cosa dovrete definire una connessione al database all&#8217;interno del<strong> Connection Pool</strong> e attribuirle un nome. Non importa quale nome attribuirete alla connessione perchè lo ritroverete successivamente elencato all&#8217;interno di un elenco a discesa (Attribuzione del Nome JNDI).<br />
Successivamente dovrete creare un <strong>abbinamento tra nome JNDI</strong> (che deve essere tassativamente <em><strong>bee_sys</strong></em>) <strong>e risorsa </strong>all&#8217;interno del Connection Pool selezionando la connessione appena creata dall&#8217;elenco a discesa.</p>
<h4><strong>1. Creazione della connessione nel Connection Pools:</strong></h4>
<p><strong><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfishv3_newpool.png"><img class="alignnone size-full wp-image-156" title="glassfishv3_newpool" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfishv3_newpool.png" alt="glassfishv3_newpool" width="578" height="87" /></a></strong></p>
<p>Selezionate<strong> &#8220;Connection Pools&#8221; </strong>dall&#8217;albero alla vostra sinistra<strong>. </strong>Glassfish vi elecherà tutte le connessioni esistenti (in genere quelle di esempio, se non avete creato manualmente altre connessioni).<br />
Per aggiungere una nuova connessione cliccate sul bottone &#8220;New..&#8221;. Si aprirà la maschera col wizard di configurazione della connessione.</p>
<h5>STEP 1</h5>
<p><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfishv3_pool1.png"><img class="alignnone size-full wp-image-158" title="glassfishv3_pool1" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfishv3_pool1.png" alt="glassfishv3_pool1" width="543" height="214" /></a></p>
<ul>
<li><strong>Name</strong>: Un nome a vostra scelta. Non importa quale nome sceglierete in questa fase, perchè successivamente lo ritroverete elencato in una combo box.</li>
<li><strong>Resource Type</strong>: Avrete diverse opzioni. Selezionate &#8220;javax.sql.DataSource&#8221;.</li>
<li><strong>Database Vendor</strong>: &#8220;MySQL&#8221;.</li>
</ul>
<h5>STEP 2</h5>
<p>La seconda maschera è piuttosto ampia e riporta una serie di campi già precompilati.<br />
Lasciate i valori di default, andranno benissimo.<br />
La sezione a cui dedicare attenzione è quella delle &#8220;Additional Properties&#8221;.</p>
<p><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfishv3_pool2.png"><img class="alignnone size-full wp-image-161" title="glassfishv3_pool2" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfishv3_pool2.png" alt="glassfishv3_pool2" width="532" height="193" /></a></p>
<p>Questa sezione deve essere compilata con i dati relativi al vostro database.<br />
Eliminate le proprietà di troppo ed assicuratevi di inserire quelle necessarie:</p>
<ul>
<li><strong>databaseName</strong>: Nome del Database (bee_sys)</li>
<li><strong>portNumber</strong>: Porta del Database (3306)</li>
<li><strong>driverClass</strong>: La classe del driver fornito con il database (com.mysql.jdbc.Driver)</li>
<li><strong>serverName</strong>: Il Nome o L&#8217;indirizzo IP del server (localhost)</li>
<li><strong>user</strong>: Nome Utente del database (beeing)</li>
<li><strong>password</strong>: La Password (beeing)</li>
</ul>
<p><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfishv3_pool3.png"><img class="alignnone size-full wp-image-162" title="glassfishv3_pool3" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfishv3_pool3.png" alt="glassfishv3_pool3" width="522" height="205" /></a></p>
<h4 style="font-size: 1em;"><strong>2. Creazione della risorsa JDBC</strong></h4>
<p><strong><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfish_jdbc_resource.png"><img class="alignnone size-full wp-image-210" title="glassfish_jdbc_resource" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfish_jdbc_resource.png" alt="glassfish_jdbc_resource" width="553" height="243" /></a></strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong></p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2607px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Ora potete procedere alla creazione della risorsa JDBC selezionando il nodo &#8220;JDBC Resources&#8221; dall&#8217;albero dei menu&#8217; di Glassfish.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2607px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Ricordate che il nome deve essere bee_sys.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 2607px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Selezionate la connessione appena creata dalla combobox &#8220;Pool Name&#8221; e salvate cliccando sul bottone &#8220;OK&#8221; presente in alto a destra.</div>
<p><span style="font-weight: normal;"><br />
</span></p>
<p><span style="font-weight: normal;">Ora potete procedere alla creazione della risorsa JDBC selezionando il nodo &#8220;JDBC Resources&#8221; dall&#8217;albero dei menu&#8217; di Glassfish.</span></p>
<p><span style="font-weight: normal;">Ricordate che il nome deve essere</span> <em>bee_sys</em>.</p>
<p><span style="font-weight: normal;">Selezionate la connessione appena creata dalla combobox</span> &#8220;Pool Name&#8221;<span style="font-weight: normal;"> e salvate cliccando sul bottone &#8220;OK&#8221; presente in alto a destra</span>.</p>
<p></strong></p>
<h2>Creazione dell&#8217;utente amministratore del database.</h2>
<p>Non dimenticate di creare l&#8217;<strong>utente amministratore del database</strong>.<br />
Nei passi precedenti (Additional Properties) abbiamo utilizzato &#8220;beeing&#8221; come utente amministratore con password &#8220;beeing&#8221;.<br />
Potete utilizzare qualunque altro utente in fase di configurazione della connessione, l&#8217;importante è che poi non vi dimentichiate di crearlo anche all&#8217;interno del database.</p>
<p>La creazione di un utente in MySQL è piuttosto semplice, ma diventa addirittura banale se utilizzate uno strumento come Navicat.<br />
Ricordatevi di assegnare all&#8217;utente creato i massimi privilegi, in modo che possa amministrare il database per conto vostro (BEEing si occupa dell&#8217;update degli schema).</p>
<h2>Note su MySQL.</h2>
<p>Se utilizzate MySQL su una macchina differente da quella su cui installate Glassfish, non dimenticate di autorizzare le connessioni da remoto da parte dell&#8217;utente utilizzato da BEEing.<br />
In caso contrario MySQL non consentirà l&#8217;accesso al database e BEEing non sarà in grado di inizializzarsi correttamente.</p>
<p>A questo punto potete &#8220;deployare&#8221; il file BEEing.war che avrete scaricato dai repository (potete farlo sia da sourceforge che da kenai).</p>
<h2>Login.conf</h2>
<p>Non dimenticate di modificare il file login.conf.<br />
Questa modifica è necessaria alla gestione della procedura di autenticazione di BEEing.<br />
<a title="Download Login.conf" href="http://www.smartfeeling.org/downloads/beeing/login-conf.zip" target="_blank">Potete scaricare il file Login.conf da questo link.</a></p>
<p>La procedura è descritta anche nel post precedente: &#8220;<a title="Come installare BEEing" href="http://www.smartfeeling.org/beeing/2009/10/16/come-installare-beeing/" target="_blank">Come installare BEEing</a>&#8220;.</p>
<h2>Deploy di BEEing.</h2>
<p>Scaricate il file <a href="http://kenai.com/projects/beeing/downloads/directory/binary" target="_blank">BEEing_3_0_0.war</a>.<br />
Per distinguere le diverse versioni, abbiamo rinominato il file BEEing.war in BEEing_3_0_0.war.<br />
Tuttavia il <strong>nome dell&#8217;applicazione deve essere BEEing</strong> e non BEEing_3_0_0 come invece accadrebbe se effettuaste il deploy con il file BEEing_3_0_0.war.</p>
<p>Rinominate BEEing_3_0_0.war in BEEing.war e procedete al deploy.<br />
E&#8217; fondamentale che &#8220;<strong>Application Name</strong>&#8221; e &#8220;<strong>Context Root</strong>&#8221; siano BEEing.</p>
<p><a href="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfish_deploy.png"><img class="alignnone size-full wp-image-177" title="glassfish_deploy" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2010/01/glassfish_deploy.png" alt="glassfish_deploy" width="398" height="290" /></a></p>
<p>Se avete dubbi su come effettuare il deploy di un&#8217;applicazione su Glassfish, fate riferimento al post precedente &#8220;<a href="http://www.smartfeeling.org/beeing/2009/10/16/come-installare-beeing/" target="_blank">Come installare BEEing</a>&#8220;.</p>
<h2>Link Utili:</h2>
<p>Sito Glassfish: <a href="https://glassfish.dev.java.net/" target="_blank">https://glassfish.dev.java.net/</a></p>
<p>Sito MySQL: <a href="http://dev.mysql.com/downloads/mysql/5.1.html" target="_blank">http://dev.mysql.com/downloads/mysql/5.1.html</a></p>
<p>Sito Navicat: <a href="http://www.navicat.com/download/download.html">http://www.navicat.com/download/download.html</a></p>
<p>Sito VMWare:<a href=" http://www.vmware.com/products/server/" target="_blank"> http://www.vmware.com/products/server/</a></p>
<p><a href="https://sourceforge.net/projects/beeing/files/BIN%20(All%20you%20need)/3.0.0/BEEing_3_0_0.war/download" target="_blank">BEEing Download v3 da SourceForge</a></p>
<p><a href="http://kenai.com/projects/beeing/downloads/directory/binary" target="_blank">BEEing Download v3 da Kenai</a></p>
<p><a href="http://www.smartfeeling.org/beeing/2010/01/03/glassfish-v3-come-verificare-la-connessione-ad-un-database/" target="_blank">Come verificare la connessione al database.</a></p>
<p><span style="font-family: Verdana,Geneva,Arial,Helvetica,sans-serif; font-size: 13px; font-weight: bold;">Buon Anno a tutti <img src='http://www.smartfeeling.org/beeing/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span></p>
<p><span style="font-family: Verdana,Geneva,Arial,Helvetica,sans-serif; font-size: 13px; font-weight: bold;"><span style="color: #0000ff;">AUTORE</span>: <a title="Autore" href="http://www.smartfeeling.org/beeing/about/" target="_blank">Gian Angelo Geminiani</a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.smartfeeling.org/beeing/2010/01/01/installare-la-versione-3-x-di-beeing/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Componente &#8220;informazioni utente&#8221;</title>
		<link>http://www.smartfeeling.org/beeing/2009/10/21/componente-informazioni-utente/</link>
		<comments>http://www.smartfeeling.org/beeing/2009/10/21/componente-informazioni-utente/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 10:13:10 +0000</pubDate>
		<dc:creator>andrea.bertozzi</dc:creator>
				<category><![CDATA[Guida per i programmatori]]></category>
		<category><![CDATA[componenti]]></category>
		<category><![CDATA[informazioni utente]]></category>
		<category><![CDATA[utente]]></category>

		<guid isPermaLink="false">http://www.smartfeeling.org/beeing/?p=78</guid>
		<description><![CDATA[E&#8217; stato creato un nuovo componente per la visualizzazione delle informazioni di un determinato utente. Il componente si chiama org.sf.bee.wiki.gui.components.membership.user.info.CMPauthorinfo Alla classe si possono passare alcuni parametri per modificarne le informazioni ed eventualmente il layout. Le proprietà sono le seguenti &#8230; <a href="http://www.smartfeeling.org/beeing/2009/10/21/componente-informazioni-utente/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-93" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2009/10/21-10-2009-15-29-50.png" alt="21-10-2009 15-29-50" width="297" height="214" /></p>
<p>E&#8217; stato creato un nuovo componente per la visualizzazione delle informazioni di un determinato utente.</p>
<p>Il componente si chiama</p>
<p><span style="background-color: #ffffff"><em>org.sf.bee.wiki.gui.components.membership.user.info.CMPauthorinf</em>o </span></p>
<p><span style="background-color: #ffffff">Alla classe si possono passare alcuni parametri per modificarne le informazioni ed eventualmente il layout.</span></p>
<p>Le proprietà sono le seguenti</p>
<p><strong>setUser(User user)</strong> = vuole l&#8217;istanza di un utente da cui prelevare le informazioni</p>
<p>setShowName(boolean showName) = visualizza o meno il nome dell&#8217;utente (il default è false)</p>
<p><img class="alignnone size-full wp-image-79" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2009/10/21-10-2009-11-41-25.png" alt="21-10-2009 11-41-25" width="155" height="32" /></p>
<p><strong>setShowImage(boolean showImage) </strong>= visualizza o meno l&#8217;immagine dell&#8217;utente (il default è true)</p>
<p><img class="alignnone size-full wp-image-80" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2009/10/21-10-2009-11-46-06.png" alt="21-10-2009 11-46-06" width="137" height="26" /></p>
<p><strong>setHorizontalLayout(boolean horizontalLayout)</strong> = visualizza il layout in orizzontale  se true o verticale se false (il default è true). Questa proprietà si applica solamente al nome utente</p>
<p><img style="border: 0px initial initial" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2009/10/21-10-2009-11-41-25.png" alt="21-10-2009 11-41-25" width="155" height="32" /></p>
<p><span style="background-color: #ffffff"><img class="alignnone size-full wp-image-81" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2009/10/21-10-2009-11-47-20.png" alt="21-10-2009 11-47-20" width="126" height="55" /></span></p>
<p><strong>setShowExtraInfo(boolean showExtraInfo) </strong>= visualizza o meno l&#8217;etichetta con le informazioni extra</p>
<p>setExtraInfo(final String extraInfo) = setta il contenuto delle informazioni extra</p>
<p><img class="alignnone size-full wp-image-82" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2009/10/21-10-2009-11-49-37.png" alt="21-10-2009 11-49-37" width="181" height="54" /></p>
<p><strong>setStyleClass(final String styleClass) </strong>= assegna uno stile alle etichette ed all&#8217;immagine, passando il nome di una classe di stili</p>
<p><img class="alignnone size-full wp-image-83" src="http://www.smartfeeling.org/beeing/wp-content/uploads/2009/10/21-10-2009-11-55-40.png" alt="21-10-2009 11-55-40" width="250" height="58" /></p>
<p>Il componente prevede altri due parametri di configurazione per il settaggio dell&#8217;utente</p>
<p><strong>setUserById(final long userId) </strong>= assegna l&#8217;utente passando l&#8217;id</p>
<p><strong>setUserByUid(final String userUid) </strong>= assegna l&#8217;utente passando l&#8217;uid</p>
<p>tuttavia, qualora si disponesse già di un utente, è meglio usare il metodo setUser al fine di risparmiare un accesso al database.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.smartfeeling.org/beeing/2009/10/21/componente-informazioni-utente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

