Requirements, Features:
– Support for Alfresco development (javascript and java webscripts, actions, properties XMLs)
– HTML editor and preview (Firefox and Safari)
– JavaScript editor (with code formatter, and syntax checker)
– Freemarker editor (with syntax checker)
– PHP editor (with syntax checker and help)
– XML editor
– Shell script editor
– SVN client (projects by checkout)
Eclipse:
– Eclipse IDE for Java Developers (3.4 GANYMEDE): download
Tools update site links:
– Aptana update for Eclipse 3.4: http://update.aptana.com/update/studio/3.4
– Window menu: My Aptana
– Utilities / Subclipse SVN client plugin (with SVNKit)
– Platform / Aptana PHP
– Platform / Aptana Adobe AIR 1.5 Development
– Platform / Aptana Apple iPhone Development
– FreeMarker syntax: http://www.freemarker.org/eclipse/update/ (don’t forget to update freemarker.jar in eclipse/plugins/org.visigoths.freemarker_2.3.2)
– TRAC plugin for Mylin
– Graphviz plugin: http://abstratt.com/update/
– JBOSS jBPM graphical workflow/process designer: unzip “jbpm-jpdl-designer-site.zip” in folder “designer”, then select “Help/Software Updates/Find and Install”, and use “Search for new features to install” to add with “New Local Site”
– JSON editor (local site install)
– ShellEd – shell script editor (download zip and copy contents into Eclipse directory)
A Web Script-ek, illetve a Web Script-ekkel megvalósított szolgáltatások az Alfresco rendszer erőforrásainak, elemeinek és tartalmainak egyszerű, HTTP protokoll fölötti publikációjára készültek. Ez a lehetőség a 2.1-es verziótól kezdve használható mind az Enterprise, mind a Community kiadásokban.
Alapvetően két kötelező elemre lesz szükségünk, az egyik egy XML file, mely leírja és regisztrálhatóvá teszi magát a Web Script-et az Alfresco rendszer számára, míg a másik egy, az outputot előállító FreeMarker (FTL) nyelven leírt űrlap. Összetettebb, programozást is igénylő funkciók esetén használható az Alfresco JavaScript API-ja is, melyet egy harmadik file-ban (JS) lehet elhelyezni.
Mintánkban egy “mywebscript” lesz a megvalósítandó funkció neve, így az ehhez kapcsolódó, kötelező formátumú elnevezések:
Magyarázatra szorulhat az használt név-konvenció; a szeparátor minden esetben a “.”, az első mező (”mywebscript”) tartalmazza a Web Script nevét, a második a használt HTTP protokollt (”get”, “post”, etc.). Itt érdemes megjegyezni, hogy egy szolgáltatásnak lehet többféle protokollja is, de minden esetben csak azo(ko)n lehet megszólítani, amely(ek)re regisztrálva lett – esetunkben “GET”, az URL-ben átadott paramétereket fogja értelmezni, “POST”-ra hibajelzés fog adni.
A harmadik Web Script specifikus paraméter (mely csak az XML és az FTL file-oknál szükséges) az XML-nél kötelezően “desc” mint descriptor (leíró). Az FTL file-oknál viszont azt határozza meg, hogy milyen formátumú lesz a válasz. Ezt a formátumot a Web szerver mint content-type fogja közölni a klienssel, azaz “html” esetében más lesz mint “xml”, “atom”, vagy “json” esetében. Ha több válasz típus is létezik az adott szolgáltatáshoz, az XML-ben lehet default értéket adni (a “format” paraméterrel), illetve a kérésben is lehet specifikálni a várt formátumot: “GET /my/mywebscript.json”
Installáció
A saját készítésű Web Script-eket az Alfresco-n belül a “/Data Dictionary/Web Scripts Extensions/” space alatt kell elhelyezni, célszerűen egy könyvtárba rendezve. Legyen ez esetünkben a “my” könyvtár melyet az Alfresco WEB-es felületén is létrehozhatunk, sőt akár ZIP file-ként ugyanott a teljes csomagot (my/*) importálhatjuk is.
A Web Script-es fejlesztések egyik legnagyobb előnye, hogy nem igényel deploy-t (eltekintve az első installációtól és regisztrációtól), azaz az FTL vagy a JS file-okat módosítva azonnal érvényre jutnak a változtatások. Ezért érdemes a WebDav, vagy a CIFS felületen keresztül dolgozni, így az editorból közvetlenül szerkeszthető és menthető a kód. Ezáltal az installációt is célszerű így elvégezni, kedvenc Finder-ünk vagy file-kezelő programunk segítségével. A WebDav-os mount-hoz (ezt MacOSX-en a Finder-ben az ALMA+K gombkombináció megnyomása után lehet átadni) a következő URL-t lehet használni: http://localhost:8080/alfresco/webdav
Installáció után az Alfresco-n belül (repository) a következő struktúrának kell előállnia:
Hogy az új szolgáltatásunk elérhető is legyen, szükség van még egy Alfresco-n belüli Regisztrációra is.
Regisztráció
Ha az Installáción túl vagyunk, az Alfresco rendszer tudtára kell adni, hogy új szolgáltatása lett. Ehhez a beépített Web Script regisztrációt kell használni, mely a következő címen érhető el: http://localhost:8080/alfresco/service/
A “Refresh List of Web Scripts” gomb által indított folyamat rekurzívan felolvassa a szkriptek tárolására szolgáló helyi és repository-n belüli könyvtárakat, majd az ott található XML-ek alapján frissíti az elérhető Web Script-ek listáját – illetve jelzi, ha valamelyik szkript definíciójával probléma adódott.
Sikeres regisztráció után a saját szkriptünk is meg fog jelenni a listában, ehhez érdemes a “Browse by Web Script Package” link-en kiválasztani a “my” csomagot. Az itt megjelenő listában összefoglaló látható az adott csomagban található szkriptekről és azok szolgáltatásairól, paramétereiről. Az “Id” sorban megjelenő linkre kattintva megtekinthetők a szkript összetevői és azok forrása is.
A fent ismertetett alapismeretekkel a következő szkriptet állítottam össze:
mywebscript.get.desc.xml
Simple form filling testJust a simple form filling test example/my/mywebscriptargumentuserrequired
mywebscript.get.html.ftl
Logged in user: ${person.properties.userName}
mywebscript.get.js
var countryList = '';
// here is the code to generate country list:
countryList += '' + '\n';
countryList += '' + '\n';
// pass value to FTL
model.countryList = '";