domenica 12 febbraio 2012

jsf2: stringhe vuote convertite in zero.. automaticamente

Nelle ultime versioni di jsf c'è una nuova future voluta (che non mi piace affatto!!) che consente di gestire la conversione automatica tra valori vuoti e 0..
faccio un esempio: quando avete un array di select items capita di spesso di inserire un valore vuoto con label "seleziona" - il valore vuoto serve per non far scattare il filtro nel meccanismo di ricerca.
Se invece il vuoto viene convertito in 0, a quel punto il meccanismo di ricerca lo utilizza...


per ulteriori informazioni a riguardo:


Una possibile soluzione in jboss è di aggiungere nel file jboss7/bin/standalone.conf  questo parametro:
-Dorg.apache.el.parser.COERCE_TO_ZERO=false

Nel file web.xml aggiungete invece:
<context-param>
        <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
        <param-value>true</param-value>
</context-param>


funziona...peccato che su openshift non si possano aggiungere variabili d'ambiente custom!!!

openshift: OPENSHIFT_DATA_DIR come usarlo per file RESISTENTI AI PUSH

Indagare meglio su come usare il nostro spazio:
"For persistent data (also in env var OPENSHIFT_DATA_DIR)"


Ho provato ad usarlo, creando un link simbolico tra:
ln -s ~/appname/data ~/appname/jbossas-7.0/standalone/deployments/ROOT.war/data




MA NON FUNZIA!!




link utile:
https://www.redhat.com/openshift/community/forums/express/few-questions-to-learn-more-about-express

openshift: aggiungere alias

Se registrate un dominio per pochi euro (dominio+dns+posta = 10/20 euro).
Create presso il vs DNS una CNAME del tipo: test.dominio.it. [NOTATE IL PUNTO!] 

che ridirge verso 

appname-domainname.rhcloud.com

Comunicate ad openshift questo CNAME, tramite il comando rhc-ctl-app:
rhc-ctl-app -a appname -c add-alias --alias appname.domainname.it -l account@gmail.com

E voilà la vs applicazione è raggiungibile a tutto il mondo!

ricordatevi ogni tanto di verificare che il jboss sia ancora attivo (openshift è ancora in beta...ogni tanto va tutto giù senza preavviso)!!!!


openshift: usiamo il cron per riavviare jboss di notte!

Date le poche risorse a disposizione, potrebbe essere utile riavviare jboss tutte le notti alle 3:00 (..si lo so che una buon applicazione non ne dovrebbe aver bisogno...):

  1) abilitiamo il cron alla ns applicazione
rhc-ctl-app -a giavacms -e add-cron-1.4

  2) creaiamo cartelle e script per usare i cron su openshift
mkdir -p .openshift/cron/hourly

 3) creiamo il ns file di restart di jboss 
touch .openshift/cron/hourly/restart_jboss.sh

4) aggiungiamo il seguente contenuto al suo interno

#!/bin/bash
echo "--------------------------------------------" >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log
date >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log
NOW=$(date +"%H")
echo $NOW >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log
echo 'resto' $RESTO '- cnfr' $CNFR >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log
if [ "$NOW" -eq "03"\ ];then
        $OPENSHIFT_APP_CTL_SCRIPT restart;
        echo "restart jboss now:" >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log
else
        echo "no restart jboss now!!" >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log
fi
date >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log
echo "--------------------------------------------" >> $OPENSHIFT_REPO_DIR/cron_jboss/cron.log


5) creiamo una cartella in cui archiviare il log di restart:
mkdir cron_jboss
touch cron_jboss//cron.log

6) committiamo tutti i files su openshift
git add .openshift/*
git add cron_jboss/*
git commit -m"start with cron" .openshift/*
git commit -m"start with cron" cron_jboss/*
git push



7) link utili
https://www.redhat.com/openshift/community/forums/express/restart-jboss-with-cron
http://docs.redhat.com/docs/en-US/OpenShift_Express/2.0/html/User_Guide/sect-User_Guide-Scheduling_Timed_Jobs_with_Cron.html