August 22nd, 2008 by c4rl3sm
1. L’estructura general de l’aplicació és la següent:

- L’estructura bàsica de l’aplicació seria: tool -> logic-api -> logic-impl -> dao-api -> dao-impl.
On:
- tool -> capa de presentacio.
- logic-api -> interfície de la capa de domini.
- logic-impl -> implementació de la interfície de domini.
- dao-api -> interfície de la capa de dades.
- dao-impl -> implementació de la interfície de dades.
- Servei de connexió opcional:
2. Estructura d’arxius:
social-bookmarks
- api - projecte amb totes les interfícies, models d’objestes i els arxius d’hibernate hbm (capa de dades).
- src - inclou les interfícies, model d’objectes, i arxius hbm.
- test - (opcional) pot incloure tests de dades compartits i strubs que ajuden a altres tests.
- impl - el projecte en aquest nivell (capa de domini).
- src - inclou el codi font en java per totes les implementacions de les interfícies.
- test - inclou tots els tests d’unitat i de integració.
- pack - Components necessaris per Sakai (conjunt d’arxius de configuració de Spring).
- tool - projecte per l’eina (capa de presentació).
- src - directori del codi font en java.
- java - qualsevol codi font en java usat només per l’eina.
- webapp
- app-name - arxius JSF i JSP.
- css - arxius CSS (style-sheet per als HTMLs).
- images - arxius d’imatge usades per l’eina.
- templates - plantilles HTML RSF.
- tools - Arxius tool.xml de Sakai.
- WEB-INF - Molts arxius de configuració XML (web.xml, applicationContext.xml, etc…).
3. Estructura Java (packages):
org.sakaiproject.social-bookmarks
- dao - classes de interfície de la capa de dades.
- impl - classes que implementen les interfícies de la capa de dades.
- hbm - arxius de mapejos de hibernate (persistència).
- logic - classes de interfície de la capa de domini.
- impl - classes que implementen les interfícies de la capa de domini.
- model - arxius que defineixen les dades bàsiques model (POJOs).
- service - totes les classes accessibles públicament relacionades amb l’aplicació.
- tool - classes relacionades amb l’eina (backing beans) (capa de presentació).
- jsf - arxius JSF i JSP.
- producers - classes Producer.
- params - classes ViewParams.

Posted in Uncategorized | No Comments »
August 22nd, 2008 by c4rl3sm
Per explicar aquesta part em serviré d’un gràfic molt il·lustratiu:

- El Template (sempre HTML) defineix l’interfície.
Han de ser XML vàlids i verdaderament són plantilles XHTML.
L’atribut rsf:id identifica el component per al Producer.
- El Producer (java o XML) defineix la vista, omple la plantilla (el Template) amb informació dinàmica i gestiona la navegació.
Defineix únicament una vista establint un ViewID.
Ha d’implementar el ViewComponentProducer per poder veure els rsf:id.
Es defineix la pàgina principal implementant DefaultView.
Per poder controlar la navegació POST (submit) ha d’implementar NavigationCaseReporter.
Per poder rebre atributs a través del mètode GET ha d’implementar ViewParamsReporter.
- ViewParams defineix els atributs que es passen entre vistes (mètodes GET).
Estén SimpleViewParameters.
S’hauria d’utilitzar quan s’han de transmetre dades d’una vista a una altra.
Pot ser utilitzar en múltiples pàgines.
- El Backing Bean processa les accions (mètodes POST).
Bean amb mètodes que s’ocupen de les accions i propietats públiques.
No té dependencies RSF.
Pot interactuar amb la capa de domini.
Creat i destruït en el cicle de requesta per defecte.
- A requestContext es defineixen quins són els Producers i els Backing Beans.
També anomenat RSAC (Request Scope Application Context).
Està escrit com un arxiu de definició de Spring estàndard.
Només inclou un subgrup de la funcionalitat per defecte per incrementar la velocitat.
La localització d’aquest arxiu està definit a web.xml.
- A applicationContext es defineix l’àmbit dels Backing Beans de l’aplicació i gestiona a través d’Spring la configuració dels RSF de l’aplicació.
Està escrit com un arxiu de definició de Spring estàndard.
La localització d’aquest arxiu està definit a web.xml.
- La Logic Layer representa la resta de l’apliació (capa de domini i de dades).
- El model és el tipus de dada bàsica també anomenada POJO.
Posted in Uncategorized | No Comments »
August 16th, 2008 by c4rl3sm
Aquests dies he après com en la eina que he creat i anomenat SocialBookmarks es genera la persistència, i el més important, com editar-la i que funcioni.

Els arxius marcats en verd són els que s’expliquen en qualsevol tutorial de hibernate que es pugui trobar a la xarxa.
En el nostre cas SocialBookmarksItem.java seria el POJO on estarien els valors que defineixen un item (un bookmark), amb els seus getters i setters.
A SocialBookmarksItem.hbm.xml s’especifica el nom de la taula a la BBDD i els camps que tindrà (hauria de seguir la lògica de SocialBookmarksItem.java).
Per acabar a hibernate.cfg.xml s’indiquen els recusos que s’han de carregar: <mapping resource=”org/sakaiproject/socialbookmarks/dao/hbm/SocialBookmarksItem.hbm.xml” /> en el nostre cas.
Ara bé, els arxius marcats en vermell no s’expliquen a cap tutorial i fan la funció següent:
spring-hibernate.xml: s’ha d’incloure el mateix que ha hibernate.cfg.xml. <mapping resource=…. />
AddItemProducer.java: aquest arxiu parla més sobre què s’ha de fer quan s’insereix un nou item (bookmark). M’ha donat problemes ja que en aquest arxiu s’utilitzen directament els noms dels atributs definits al POJO SocialBookmarksItem.java en forma d’String (p.ex. “#{itemsBean.newItem.hidden}”, on hidden és un atribut del POJO).
Dit això, em posaré mans a la feina i descriuré una mica com és que m’agradaria que quedés al final el projecte. En quant a taules, una cosa semblant a aquesta:

D’aquesta manera mitjançant el id d’usuari de sakai podrem saber quins bookmarks té guardats aquest i, a més, quants usuaris tenen guardat un mateix bookmark.
Posted in Uncategorized | No Comments »
July 30th, 2008 by c4rl3sm
Un petit pas desenvolupant, un gran pas per al projecte: per fi es pot veure alguna cosa al Sakai sobre l’eina SocialBookmarks que he creat, de manera molt bàsica.
Finalment m’ha calgut editar una línia d’un arxiu anomenat pom.xml que està a l’arrel del projecte. A part d’això, l’Eclipse es queixa de que no sap resoldre imports, però m’han dit que s’arregla al .classplath, continuaré investigant.
Marc!! Estic pendent encara de que m’enviïs la informació que em vas dir sobre bookmarks socials!!
Adjunto una captura de pantalla per anar fent boca.

Posted in Uncategorized | No Comments »
July 29th, 2008 by c4rl3sm
Encara no sé com no m’han engegat a patades de la llista de correu… els tinc ben ocupadets últimament.
Problema rera problema sembla indiscutible que haig d’utlitzar la versió del sakai “cafe/branches/2-5-x”, ja que sinó no puc ni començar a provar una nova eina a la qual he anomenat socialbookmarks, perquè només executar-la dóna errors.
Finalment sembla que podré utilitzar la versió 5.5.26 del tomcat i tot.
Posted in Uncategorized | No Comments »
July 28th, 2008 by c4rl3sm
Seguint els passos a http://confluence.sakaiproject.org/confluence/display/BOOT/Sakai+development+getting+started, em topo en el punt 4, que consisteix en un puglin per l’eclipse anomenat AppBuilder, que prepara un nou projecte per desenvolupar-lo al sakai.
Tot va anar bé fins que vaig haver d’executar l’ordre “mvn install”, ja que van començar a sortir errors i parlant amb en Aaron Zeckoski vaig entendre que jo havia agafat el codi font de la branca “trunk” tal i com posa a la guia, quan el que hauria d’haver fet es agafar la versió estable de “cafe/tags/2-5-0″.
Bé, marxa enrera mig procés i em surt un altre problema, quan arrenco el tomcat també surten errors i ara no puc ni fer funcionar la pàgina del sakai en local. Després de refer el procés diverses vegades i en diferents ordinadors, vaig acabar enviant un mail a la l’adreça de desenvolupadors del sakai demanant ajuda. Vaig obtenir la resposata de que sakai 2.5.0 i tomcat 5.5.26 no són compatibles, que desenvolupés sobre la versió del sakai 2.5.x o cambiés la versió del tomcat a la 5.5.25. Vaig canviar la versió del tomcat i ara ja funciona bé i ja he pogut veure com s’integra la nova eina al sakai (amb errors).
Posted in Uncategorized | No Comments »
July 28th, 2008 by c4rl3sm
He segit els passos descrits a http://bugs.sakaiproject.org/confluence/display/BOOT/Sakai+development+getting+started per donar-me d’alta com a desenvolupador de Sakai, de la mateixa manera que he pogut veure com esta estructurada una eina en Sakai.
Enllaços i recursos per al desenvolupador: http://bugs.sakaiproject.org/confluence/display/BOOT/Developer+links+and+resources.
Alguns d’ells:
Portal de col·laboració al Sakai: https://collab.sakaiproject.org/portal.
Sakai Confluence: http://bugs.sakaiproject.org/confluence/.
JIRA: http://bugs.sakaiproject.org/jira/.
Posted in Uncategorized | No Comments »
July 28th, 2008 by c4rl3sm
Per poder col·laborar correctament amb el programari lliure de Sakai he seguit els passos descrits a la guia que hi ha a http://bugs.sakaiproject.org/confluence/display/BOOT/Development+Envirnment+Setup+Walkthrough, on es descriu com instal·lar i configurar per a que funcioni amb Sakai els programes tomcat, mysql, subversion; i el que és més important, descarregar-se la última versió en desenvolupament del Sakai.
A més, explica com integrar l’Eclipse amb el Sakai, el que facilita molt la tasca del programador.
Posted in Uncategorized | No Comments »