My Eclipse installation

Just for a reminder…

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)

Eclipse with Aptana

Alfresco Web Script egyszerűen

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.

Kapcsolódó linkek:

  • Web Script-ek használata
  • Web Script minták
  • FreeMarker az Alfresco-n belül
  • Freemarker template minták
  • Alfresco JavaScript API
  • Alfresco JavaScript API minták
  • Hogyan készítsünk Web Script-et?

    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:

    1. Leíró (XML): mywebscript.get.desc.xml
    2. Output (FTL): mywebscript.get.html.ftl
    3. Program (JS): mywebscript.get.js

    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:

    Könyvtár: /Data Dictionary/Web Scripts Extensions/my/
    File: mywebscript.get.desc.xml
    File: mywebscript.get.html.ftl
    File: mywebscript.get.js

    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.

    Az elkészített és regisztrált szkriptet a következő címen lehet elérni: http://localhost:8080/alfresco/service/my/mywebscript

    A mywebscript példa forrása

    A fent ismertetett alapismeretekkel a következő szkriptet állítottam össze:

    mywebscript.get.desc.xml

    
    Simple form filling test
    Just a simple form filling test example
    /my/mywebscript
    argument
    user
    required
    
    

    mywebscript.get.html.ftl

    Logged in user: ${person.properties.userName}
    
    Name: Country: ${countryList}

    mywebscript.get.js

    var countryList = '';
    // here is the code to generate country list:
    countryList += '' + '\n';
    countryList += '' + '\n';
    // pass value to FTL
    model.countryList = '";