I have done a decent amount of JSF coding (Apache MyFaces). My favorite
feature is the tying of events to methods and getters/setters to screen
controls/fields/lists/etc. With that said, JSF can get very annoying
because there are a fair amount of details needing to be maintained (i.e.
Faces-config.xml).
I am hoping EGL fixes all the complexities of JSF (EGL sits on top of JSF).
I think IBM recognized two things: 1) J2EE development has too many
complexities/flexibilities to become efficient in a short timeframe, and 2)
IBM has knowledge of what a good business language should behave like (i.e.
RPG). It appears as they are taking those two points and apply some KISS
priciples to make people productive vs. having to be technical-weenies just
to get a Java app on the web.
I have been going through tutorials of EGL in RBDe and am liking some of the
things I am seeing. I haven't been able to do a full review yet, as
everything I have worked with is fairly canned and tutorial minded.
My main concern is that IBM owns EGL right now. As I understand it, EGL is
not an open standard that will allow for continued development if IBM chose
to drop it (like they did with other ui modernization technologies). All we
can do is hope history doesn't repeat itself, though I would say this
appears to be their most promising effort to date. On this same note, I
wouldn't be surprised if IBM made an "EGL specification" and made their
software compelling based on the IDE and extensions vs. the base language.
Here's a couple threads I have found out there as it relates to EGL
alternative efforts (note the email dates are from 2005 - not real
promising):
http://dev.eclipse.org/mhonarc/lists/gmt-dev/msg00186.html
http://dev.eclipse.org/newslists/news.eclipse.technology.gmt/msg00065.html
HTH,
Aaron Bartell
http://mowyourlawn.com
-----Original Message-----
From: wdsci-l-bounces@xxxxxxxxxxxx [mailto:wdsci-l-bounces@xxxxxxxxxxxx] On
Behalf Of Luis Colorado
Sent: Tuesday, February 05, 2008 10:26 AM
To: Websphere Development Studio Client for iSeries
Subject: Re: [WDSCI-L] Converting STRUTS-based application to Java or EGL
Thorbjorn wrote:
Noted, good and cheap reference books are rare.
I find it somewhat a contradiction though - Struts is WAY over what
could reasonably expected from a Dummy :)
Definitely... this is not a book for Dummies :)
By the way, I started looking into JSF, and I was overwhelmed by the size of
it. Perhaps it was the way the author presented it, but it looked like it
would take awhile to get anything productive out of it.
I also have heard that some people is avoiding JSF because its complexity. I
also have heard that JSF is superior, but big organizations are already too
invested in Struts. What do you think?
---------------------------------------------------------------------------------------------------
RPG-XML Suite (RXS) v1.41
www.rpg-xml.com
product of Krengel Technology Inc.
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
Upgrade Instructions
---------------------------------------------------------------------------------------------------
1. Unzip the downloaded file to c:\temp (or the directory of your choice).
2. Issue the AS/400 command:
CRTSAVF FILE(QGPL/RXS14) AUT(*ALL)
3. FTP the file RXS from your PC to the AS/400 in BINARY mode
into the save file RXS in library QGPL.
3.01 - open a DOS prompt (Start -> Run -> enter 'cmd' and hit enter)
3.02 - type the following into the DOS prompt
3.03 - ftp 172.29.134.41 (replace the IP address with that of your iSeries)
3.04 - when prompted enter profile and password
3.05 - binary
3.06 - lcd c:\temp (where c:\temp is the location of the rxs.savf)
3.07 - quote site namefmt 0
3.08 - cd qgpl
3.09 - put rxs.savf rxs14.savf
3.10 - quit
4. Obtain the current version of RXS on your system.
CALL RXS/VERRXSBASE
Something similar to the following will be produced:
"RPG-XML Suite Base Version 1.2"
5. End the MYRXS Apache instance. Note this will mean your web services are NOT accessible!
ENDTCPSVR SERVER(*HTTP) HTTPSVR(MYRXS)
6. Rename the current RXS/MYRXS library to RXSxx/MYRXSxx where xx is the version obtained in
step 4 (i.e RXS12). This gives us the ability to "roll-back" if necessary based on conflicts
on your iSeries.
RNMOBJ OBJ(RXS) OBJTYPE(*LIB) NEWOBJ(RXSxx)
RNMOBJ OBJ(MYRXS) OBJTYPE(*LIB) NEWOBJ(MYRXSxx)
7. Create empty library RXS and restore the RXS library from save file RXS14.
CRTLIB LIB(RXS)
RSTOBJ OBJ(*ALL) SAVLIB(RXS) DEV(*SAVF) SAVF(QGPL/RXS14) RSTLIB(RXS)
8. Copy IBM service program necessary for offering web services into new RXS library.
CRTDUPOBJ OBJ(QZHBCGI) FROMLIB(QHTTPSVR) OBJTYPE(*SRVPGM) TOLIB(RXS)
9. Copy minimal objects (i.e. no example programs) back into the MYRXS library.
CRTLIB LIB(MYRXS)
CRTDUPOBJ OBJ(GETURIRG) FROMLIB(RXS) OBJTYPE(*PGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(BLDPRSR) FROMLIB(RXS) OBJTYPE(*PGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(BLDPRS) FROMLIB(RXS) OBJTYPE(*CMD) TOLIB(MYRXS)
CRTDUPOBJ OBJ(BLDTPLR) FROMLIB(RXS) OBJTYPE(*PGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(BLDTPL) FROMLIB(RXS) OBJTYPE(*CMD) TOLIB(MYRXS)
CRTDUPOBJ OBJ(GU001CL) FROMLIB(RXS) OBJTYPE(*PGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(GU001RG) FROMLIB(RXS) OBJTYPE(*PGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(ERRORSV) FROMLIB(RXS) OBJTYPE(*SRVPGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(QZHBCGI) FROMLIB(RXS) OBJTYPE(*SRVPGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(RXSSV) FROMLIB(RXS) OBJTYPE(*SRVPGM) TOLIB(MYRXS)
CRTDUPOBJ OBJ(RXSCFG) FROMLIB(RXS) OBJTYPE(*FILE) TOLIB(MYRXS)
CRTDUPOBJ OBJ(RXS) FROMLIB(RXS) OBJTYPE(*FILE) TOLIB(MYRXS) DATA(*YES)
CRTDUPOBJ OBJ(GETURI) FROMLIB(RXS) OBJTYPE(*CMD) TOLIB(MYRXS)
CRTDUPOBJ OBJ(GU001HP) FROMLIB(RXS) OBJTYPE(*PNLGRP) TOLIB(MYRXS)
CRTDUPOBJ OBJ(RXSBND) FROMLIB(RXS) OBJTYPE(*BNDDIR) TOLIB(MYRXS)
10. Copy the incrementer data area from the old library into the new where xx is the DUPOBJ
created in step 6. This is necessary so your use of RXS_nextUnqNbr and RXS_nextUnqChar don't
start back at 1 which could cause duplicate records or IFS files.
CRTDUPOBJ OBJ(RXSUNQ) FROMLIB(MYRXSxx) OBJTYPE(*DTAARA) TOLIB(MYRXS)
11. Execute the following to ensure you have the latest version of template files for the code
generators. This step is not required nor recommended if you have a significant amount of
code developed using the traditional SECBEG, VARBEG, and VAREND delimiters (see next question
for clarification).
CPYTOSTMF FROMMBR('/QSYS.LIB/RXS.LIB/QTXT.FILE/BLDTPL.MBR') TOSTMF('/www/MYRXS/templates/bldtpl.tpl') STMFCODPAG(819) STMFOPT(*REPLACE)
CPYTOSTMF FROMMBR('/QSYS.LIB/RXS.LIB/QTXT.FILE/BLDPRS.MBR') TOSTMF('/www/MYRXS/templates/bldprs.tpl') STMFCODPAG(819) STMFOPT(*REPLACE)
12. Using UPDDTA, add a single record to PF MYRXS/RXSCFG with the following values. If a single
record already exists simply update that record. Note that if you have a significant amount
of programs that use the original SECBEG=/$, VARBEG=/%, and VAREND=%/, then you will want to
use those values in the below field value mapping instead of supply new ones.
---FieldName=Value---
TPLDIR=/www/MYRXS/templates/
TRANSDIR=/www/MYRXS/TRANS/
DEBUG=F
MSNGDTA=***
SECBEG=::
SECEND=
VARBEG=.:
VAREND=:.
ELEMBEG=>
ELEMCNT=/
ELEMEND=/>
ELEMATTR=@
13. Start the HTTP server back up.
STRTCPSVR SERVER(*HTTP) HTTPSVR(MYRXS)
As an Amazon Associate we earn from qualifying purchases.