Jato 1.1 to Jato 1.2
Hi,
we are doing a migration project that includes Jato 1.1 to
Jato 1.2. what are the issues and problems for doing this
conversion. And any one did it previously.
(copied from my Yahoo Group response)
The only thing I can give some info on is the JATO 1.2 to 2.0.
First, the JATO runtime has very few changes in it from 1.2 to 2.0. Your app will typically run as is under 2.0. All you really need to do is replace the JATO JAR file. There may be a few minor details, but should not be any show stoppers.
There are some new API's in 2.0, but the old stuff is just deprecated. There are some additionally API's to make JATO toolable, but have no affect on the runtime.
The Studio really reduces the effort it takes to create JATO components. Lots of code gen that is easily manipulated via visual property editor. However, you still have the flexibility to hand code what you want.
The way to bring your 1.2 app into a JATO 2.0 app is as follows:
- use the Studio to create a new application with the same package structure as your current app
- copy your view beans, tiled views, models and custom classes into the new package structure.
Now this allows you to build new objects using 2.0 techniques (visual point/click creation) and the new components will run along side your old components. The old components will not show up in the Studio tool like the new components will. In other words, a newly created view bean is recognized as a "JATO ViewBean" because it has an extra design time meta data file that desribes it. Your older ViewBeans will not have this file and therefore, will only be recognized as a regular Java class.
Creating this meta data file is not really something that can be reasonably done by hand, unfortunately.
If your app will not grow, then go ahead and start using JATO 2.0 runtime, but don't worry about the Studio aspect. But if you plan to expand the app, it would be beneficial to continue with the Studio tools.
Does anyone have some "real" world experience they can lend to the forum.
craig
Similar Messages
-
Re: [iPlanet-JATO] from a non jato application to jato application
Without getting into the details, the session id is passed around in a
cookie, but once you leave your JATO app "sandbox", you no longer have
access to the same session. This is not a JATO limitation, but a J2EE
spec constraint. The war file creates a Servlet Context. Other servlet
contexts have separate session sandboxes. If you deployed all your apps
within the same war file, your sessions would be mutually accessible.
or
You could do something like use a Session EJB and pass its reference
between apps I suppose.
Also, see JATO Tip #0011 for forwarding to a "non-JATO" target.
Hopefully, my reply will open up a conversation for more solutions,
ideas, if what I have proposed is insufficient.
craig
raju_jato wrote:
how can we forward a request from a non jato application(build using
jsp and servlet) to a jato application and back and have only one
session for both the applications.
thanks
For more information about JATO, including download information, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jspWithout getting into the details, the session id is passed around in a
cookie, but once you leave your JATO app "sandbox", you no longer have
access to the same session. This is not a JATO limitation, but a J2EE
spec constraint. The war file creates a Servlet Context. Other servlet
contexts have separate session sandboxes. If you deployed all your apps
within the same war file, your sessions would be mutually accessible.
or
You could do something like use a Session EJB and pass its reference
between apps I suppose.
Also, see JATO Tip #0011 for forwarding to a "non-JATO" target.
Hopefully, my reply will open up a conversation for more solutions,
ideas, if what I have proposed is insufficient.
craig
raju_jato wrote:
how can we forward a request from a non jato application(build using
jsp and servlet) to a jato application and back and have only one
session for both the applications.
thanks
For more information about JATO, including download information, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp -
Note - The file upload notification refers to Jato 1.1 not Jato 1.2 UML
I uploaded some Jato 1.1 UML diagrams at the request of one of the group
participants. Unfortunately, these diagrams are slightly out of sync with Jato
1.2 and therefore have not been included in the Jato 1.2 documentation.
However, the diagrams may provide some assistance to those attempting to come
up to speed on the Jato framework. Just bear in mind that the details for Jato
1.2 are slightly different.
[Non-text portions of this message have been removed]I found a working solution, but better solution are also welcome
I had to have fr_CA not only in utf8 but also in iso88591. I had to modify the /etc/rc.conf this way :
LOCALE="fr_CA" <<<<<<<<<<<<<<
HARDWARECLOCK=""
TIMEZONE="America/Montreal"
KEYMAP="us"
CONSOLEFONT=
CONSOLEMAP=
USECOLOR="yes"
To preserve the english US language system wide, I had to add the following line in the /etc/profile :
# Allow french special character while in en_US
export LANG=en_US
The character misinterpreted by a "?" is now seen :
as a "รจ" in dolphin
as a "?" in the console
It is now possible to access the folders. -
RE: [iPlanet-JATO] Href click & tiled view display
Srinivas,
I hope that I am not oversimplifying your first question; repost if I do not
answer your question. Independent of JATO, HTML Form button sumbits will
include the scraping of data off the form input fields; the data will passed
as part of the body of the HTTP request. Therefore, you would expect to
receive all your inputs during the Button submit. In the case of a button,
a HTTP POST request is invoked. Href clicks, only submit the NVPs which are
encoded on the HREF URL. Therefore, it is impossible (under normal
circumstances) to retrieve the inputs from the FORM during the Href click.
In the case of a Href, a HTTP GET request is invoked. Some customers have
used a pattern in which Javascript is used to capture the Href onClick()
event to perform some runtime modifications to the HREF URL before the HTTP
GET request is submitted. I recommend to always have the LogProxy2 utility
running during development so that the HTTP requests and repsonses can be
debugged. If you setup the LogProxy2 (downloadable from this Group's Files
repository) then you would see the HTTP requests in the LogProxy2's console
window.
TiledView question: Remember, each TiledView requires a "primary
DatasetModel" which it uses for iteration of the tiles. It can be
confusing, but the API call of
<ContainerView>.getDefaultModel()
has no relation to the implementation class called DefaultModel. See the
Javadoc (excerp below)
/migtoolbox-1.1.1/doc/jato/api/com/iplanet/jato/view/ContainerView.html#getD
efaultModel()
"Returns this view's default model. The default model is typically used by
DisplayField children for default value storage (if they are not bound to
any other model). This method should always return a valid model instance.
Note that the default model need not be an actual instance of DefaultModel,
although this is usually the case."
Both of your TiledView's (inner and outer) are ContainerViews, each having
their own property for [get/set]DefaultModel(). Likewise, the ViewBean
parent of the outer TiledView is a ContainerView as well. With these facts
in mind, consider the behavior of the ModelManager. The ModelManager will
ensure that only once instance of specifically named model will be provided
during a request scope. Therefore, everytime that you make a call to
<ModelManager>.getModel(SomeModel.class)
no matter how many times you make this call during a request, the
ModelManager will ensure that you get the same object reference back.
Implicitly, you are asking for a Model with the exclusive name of
<ModelManager>.getDefaultModelInstanceName(SomeModel.class)
I believe that your problem is that you have the Primary Model of both the
inner and outer TiledView's set to the same instance of the DefaultModel
class. Therefore, the TiledViews are tripping over each other because they
are using the same Primary model. What I would do is change the constructor
of each TiledView to set an exclusive Primary model
// add to constructor of outer TileView
setPrimaryModel(getModelI(DefaultModel.class,"outer")
// add to constructor of inner TileView
setPrimaryModel(getModelI(DefaultModel.class,"inner")
remember to set the "size" of the Primary Model appropriately in the
beginDisplay() event of each TiledView before calling super.beginDisplay()
matt
-----Original Message-----
From: Srinivas Chikkam [mailto:<a href="/group/SunONE-JATO/post?protectID=061212020185082096169232190043244089032032196034013195172049230091142254099102">srinivas.chikkam@w...</a>]
Sent: Tuesday, July 17, 2001 7:36 AM
Subject: [iPlanet-JATO] Href click & tiled view display
Hi,
I'm facing the following two problems in JATO. Your help will be
appreciated.
1) Clicking a HREF.
I have a button and a href in a page. When I submit the page by
clicking the button, I'm able to
get all the user entered data (form elements) in handler method.
However, when I click
the href and I try to retrieve the data entered by the user in my
corresponding handler method, I'm
getting blank values.
How would I be able to get the user entered data upon clicking of a href
? I'm copying the sample
code for your reference.
// This returns me 5 values entered in the 5 tiles by the user.
public void handleBButtonRequest(RequestContext req)
throws ServletException, IOException
try
System.out.println("button clicked..");
pgSampleTiledView tiledView = getSampleTile();
System.out.println("\n\n\n\n@@@@@@@@@@@ No of tiles >>>
"+tiledView.getNumTiles());
int n = tiledView.getNumTiles();
for (int i=0; i<n; i++)
tiledView.setTileIndex(i);
System.out.println(i+".
"+tiledView.getTbValue().getValue().toString());
this.forwardTo(req);
catch (Exception ex)
ex.printStackTrace();
// This returns me 0 tiles and doesn't get into for loop
public void handleLinkModifyDistributionRequest(RequestContext req )
throws ServletException, IOException
try
System.out.println("href clicked..");
pgSampleTiledView tiledView = getSampleTile();
System.out.println("\n\n\n\n@@@@@@@@@@@ No of tiles >>>
"+tiledView.getNumTiles());
int n = tiledView.getNumTiles();
for (int i=0; i<n; i++)
tiledView.setTileIndex(i);
System.out.println(i+".
"+tiledView.getTbValue().getValue().toString());
this.forwardTo(req);
catch (Exception ex)
ex.printStackTrace();
2) Tiled view display
I have tiled view inside another tiled view. Based upon the data
retrieved from the database, lets say, the outer tile needs to be
displayed twice and the inner tile 3 times and 1 time.
For Ex: Lets say, the desired output from these tiled views is as
follows
STOCK INVESTMENT
stock name1
stock name2
stock name3
OTHER INVESTMENT
other investment1
The outer tiled view displays the investment type headings (STOCK
INVESTMENT or OTHER INVESTMENT) and inner tile
displays the actual stock names or the other investment names. Both
the tile views are bound to a default model. In the begin display
of these tiled view I'm setting the size of the model as
getPrimaryModel.setSize(requiredsize).
If i display 3 records in the inner tiled view in the first iteration
and i try to display 1 record in the second iteration, it displays 3
records
properly the first time but it doesn't display any records second
time. super.nextTile() returns false right away second time.
But If I try to display 1 record in the first iteration and 3 records in
the second iteration as below, it works fine.
STOCK INVESTMENT
stock name1
OTHER INVESTMENT
other investment1
other investment2
other investment3
Please let me know what could be the problem.
Thanks
~ Srinivas
The Information contained and transmitted by this E-MAIL is
proprietary to
Wipro Limited and is intended for use only by the individual or
entity to which
it is addressed, and may contain information that is privileged,
confidential or
exempt from disclosure under applicable law. If this is a
forwarded message,
the content of this E-MAIL may not have been sent with the
authority of the
Company. If you are not the intended recipient, an agent of the intended
recipient or a person responsible for delivering the information
to the named
recipient, you are notified that any use, distribution,
transmission, printing,
copying or dissemination of this information in any way or in any
manner is
strictly prohibited. If you have received this communication in
error, please
delete this mail & notify us immediately at mailadmin@w...
[Non-text portions of this message have been removed]
[email protected]should read
// add to constructor of outer TileView
setPrimaryModel(getModel(DefaultModel.class,"outer");
// add to constructor of inner TileView
setPrimaryModel(getModel(DefaultModel.class,"inner");
matt
-----Original Message-----
From: Matthew Stevens [mailto:<a href="/group/SunONE-JATO/post?protectID=029166114165042198028082000056130080177026031196061123241150194211220076086020224">matthew.stevens@e...</a>]
Sent: Tuesday, July 17, 2001 9:25 AM
Subject: RE: [iPlanet-JATO] Href click & tiled view display
Srinivas,
I hope that I am not oversimplifying your first question; repost
if I do not
answer your question. Independent of JATO, HTML Form button sumbits will
include the scraping of data off the form input fields; the data
will passed
as part of the body of the HTTP request. Therefore, you would expect to
receive all your inputs during the Button submit. In the case of
a button,
a HTTP POST request is invoked. Href clicks, only submit the
NVPs which are
encoded on the HREF URL. Therefore, it is impossible (under normal
circumstances) to retrieve the inputs from the FORM during the Href click.
In the case of a Href, a HTTP GET request is invoked. Some customers have
used a pattern in which Javascript is used to capture the Href onClick()
event to perform some runtime modifications to the HREF URL
before the HTTP
GET request is submitted. I recommend to always have the
LogProxy2 utility
running during development so that the HTTP requests and repsonses can be
debugged. If you setup the LogProxy2 (downloadable from this
Group's Files
repository) then you would see the HTTP requests in the
LogProxy2's console
window.
TiledView question: Remember, each TiledView requires a "primary
DatasetModel" which it uses for iteration of the tiles. It can be
confusing, but the API call of
<ContainerView>.getDefaultModel()
has no relation to the implementation class called DefaultModel. See the
Javadoc (excerp below)
/migtoolbox-1.1.1/doc/jato/api/com/iplanet/jato/view/ContainerView
.html#getD
efaultModel()
"Returns this view's default model. The default model is typically used by
DisplayField children for default value storage (if they are not bound to
any other model). This method should always return a valid model instance.
Note that the default model need not be an actual instance of
DefaultModel,
although this is usually the case."
Both of your TiledView's (inner and outer) are ContainerViews, each having
their own property for [get/set]DefaultModel(). Likewise, the ViewBean
parent of the outer TiledView is a ContainerView as well. With
these facts
in mind, consider the behavior of the ModelManager. The ModelManager will
ensure that only once instance of specifically named model will
be provided
during a request scope. Therefore, everytime that you make a call to
<ModelManager>.getModel(SomeModel.class)
no matter how many times you make this call during a request, the
ModelManager will ensure that you get the same object reference back.
Implicitly, you are asking for a Model with the exclusive name of
<ModelManager>.getDefaultModelInstanceName(SomeModel.class)
I believe that your problem is that you have the Primary Model of both the
inner and outer TiledView's set to the same instance of the DefaultModel
class. Therefore, the TiledViews are tripping over each other
because they
are using the same Primary model. What I would do is change the
constructor
of each TiledView to set an exclusive Primary model
// add to constructor of outer TileView
setPrimaryModel(getModelI(DefaultModel.class,"outer")
// add to constructor of inner TileView
setPrimaryModel(getModelI(DefaultModel.class,"inner")
remember to set the "size" of the Primary Model appropriately in the
beginDisplay() event of each TiledView before calling super.beginDisplay()
matt
-----Original Message-----
From: Srinivas Chikkam [mailto:<a href="/group/SunONE-JATO/post?protectID=061212020185082096169232190043244089032032196034013195172049230091142254099102">srinivas.chikkam@w...</a>]
Sent: Tuesday, July 17, 2001 7:36 AM
Subject: [iPlanet-JATO] Href click & tiled view display
Hi,
I'm facing the following two problems in JATO. Your help will be
appreciated.
1) Clicking a HREF.
I have a button and a href in a page. When I submit the page by
clicking the button, I'm able to
get all the user entered data (form elements) in handler method.
However, when I click
the href and I try to retrieve the data entered by the user in my
corresponding handler method, I'm
getting blank values.
How would I be able to get the user entered data upon clicking of a href
? I'm copying the sample
code for your reference.
// This returns me 5 values entered in the 5 tiles by the user.
public void handleBButtonRequest(RequestContext req)
throws ServletException, IOException
try
System.out.println("button clicked..");
pgSampleTiledView tiledView = getSampleTile();
System.out.println("\n\n\n\n@@@@@@@@@@@ No of tiles >>>
"+tiledView.getNumTiles());
int n = tiledView.getNumTiles();
for (int i=0; i<n; i++)
tiledView.setTileIndex(i);
System.out.println(i+".
"+tiledView.getTbValue().getValue().toString());
this.forwardTo(req);
catch (Exception ex)
ex.printStackTrace();
// This returns me 0 tiles and doesn't get into for loop
public void handleLinkModifyDistributionRequest(RequestContext req )
throws ServletException, IOException
try
System.out.println("href clicked..");
pgSampleTiledView tiledView = getSampleTile();
System.out.println("\n\n\n\n@@@@@@@@@@@ No of tiles >>>
"+tiledView.getNumTiles());
int n = tiledView.getNumTiles();
for (int i=0; i<n; i++)
tiledView.setTileIndex(i);
System.out.println(i+".
"+tiledView.getTbValue().getValue().toString());
this.forwardTo(req);
catch (Exception ex)
ex.printStackTrace();
2) Tiled view display
I have tiled view inside another tiled view. Based upon the data
retrieved from the database, lets say, the outer tile needs to be
displayed twice and the inner tile 3 times and 1 time.
For Ex: Lets say, the desired output from these tiled views is as
follows
STOCK INVESTMENT
stock name1
stock name2
stock name3
OTHER INVESTMENT
other investment1
The outer tiled view displays the investment type headings (STOCK
INVESTMENT or OTHER INVESTMENT) and inner tile
displays the actual stock names or the other investment names. Both
the tile views are bound to a default model. In the begin display
of these tiled view I'm setting the size of the model as
getPrimaryModel.setSize(requiredsize).
If i display 3 records in the inner tiled view in the first iteration
and i try to display 1 record in the second iteration, it displays 3
records
properly the first time but it doesn't display any records second
time. super.nextTile() returns false right away second time.
But If I try to display 1 record in the first iteration and 3 records in
the second iteration as below, it works fine.
STOCK INVESTMENT
stock name1
OTHER INVESTMENT
other investment1
other investment2
other investment3
Please let me know what could be the problem.
Thanks
~ Srinivas
The Information contained and transmitted by this E-MAIL is
proprietary to
Wipro Limited and is intended for use only by the individual or
entity to which
it is addressed, and may contain information that is privileged,
confidential or
exempt from disclosure under applicable law. If this is a
forwarded message,
the content of this E-MAIL may not have been sent with the
authority of the
Company. If you are not the intended recipient, an agent of the intended
recipient or a person responsible for delivering the information
to the named
recipient, you are notified that any use, distribution,
transmission, printing,
copying or dissemination of this information in any way or in any
manner is
strictly prohibited. If you have received this communication in
error, please
delete this mail & notify us immediately at mailadmin@w...
[Non-text portions of this message have been removed]
[email protected]
[email protected] -
RE: [iPlanet-JATO] models
Belinda,
YES & YES
What you are asking to do is EXACTLY what one of the primary value
propositions of the JATO design. The JATO Overview 'whitepaper'
specifically points this out as a limitation of other MVC frameworks. The
constructors of the Views require the designation of a Model; this is where
you would hook your Views (DisplayFields) into various Models. Please note
that there is no coupling of the Views and Models so there is a many to many
relationship (of your choosing). Please note that the 'accessor' methods
(setters and getters) [other than the Model interface prescribed getValue()
setValue() getValues() setValues() methods] are no related to the
DisplayField design pattern per se. The DisplayFields will manage data on
the request and response cycles using the getValue()/setValue() methods.
This is what lets the model view relationship plugable. The accessors in
the Model are not required for the View pattern. The implementation of a
specific Model's getValue()/setValue() may be to utilize the special
accessors...but they are not used by the DisplayFields directly.
matt
-----Original Message-----
From: Belinda Garcia [mailto:<a href="/group/SunONE-JATO/post?protectID=014056235009078154169082148140172241239144044214017123152006048067">belinda.garcia@s...</a>]
Sent: Tuesday, December 04, 2001 5:29 PM
Subject: [iPlanet-JATO] models
1. Do all the member variables (those connected to setters and getters) of a
model have
to be bound to the display fields of a view that is using it? In other
words, say I
have a model with 10 member variables with 10 setters and getters for them
but I have a
view that's only using 5 of these member variables. I'm asking this because
maybe I
would like to have a model that represents more than one view, if this is
possible.
2. Can a view have more than one model for its display fields? I don't mean
an
executing, retrieving, etc. I mean the display fields themselves. Where the
data for
one field is retrieved from one model and the data for another field is
retrieved from
another model? Or say, I want to retrieve some static text fields from
property files
for localization but the other fields from a model?
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jspBelinda,
YES & YES
What you are asking to do is EXACTLY what one of the primary value
propositions of the JATO design. The JATO Overview 'whitepaper'
specifically points this out as a limitation of other MVC frameworks. The
constructors of the Views require the designation of a Model; this is where
you would hook your Views (DisplayFields) into various Models. Please note
that there is no coupling of the Views and Models so there is a many to many
relationship (of your choosing). Please note that the 'accessor' methods
(setters and getters) [other than the Model interface prescribed getValue()
setValue() getValues() setValues() methods] are no related to the
DisplayField design pattern per se. The DisplayFields will manage data on
the request and response cycles using the getValue()/setValue() methods.
This is what lets the model view relationship plugable. The accessors in
the Model are not required for the View pattern. The implementation of a
specific Model's getValue()/setValue() may be to utilize the special
accessors...but they are not used by the DisplayFields directly.
matt
-----Original Message-----
From: Belinda Garcia [mailto:<a href="/group/SunONE-JATO/post?protectID=014056235009078154169082148140172241239144044214017123152006048067">belinda.garcia@s...</a>]
Sent: Tuesday, December 04, 2001 5:29 PM
Subject: [iPlanet-JATO] models
1. Do all the member variables (those connected to setters and getters) of a
model have
to be bound to the display fields of a view that is using it? In other
words, say I
have a model with 10 member variables with 10 setters and getters for them
but I have a
view that's only using 5 of these member variables. I'm asking this because
maybe I
would like to have a model that represents more than one view, if this is
possible.
2. Can a view have more than one model for its display fields? I don't mean
an
executing, retrieving, etc. I mean the display fields themselves. Where the
data for
one field is retrieved from one model and the data for another field is
retrieved from
another model? Or say, I want to retrieve some static text fields from
property files
for localization but the other fields from a model?
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp -
Hi Shyam--
I'm not seeing this over here. So, we need to figure out why you're seeing
it--I need some more information.
First, what model are you using to back the tiled view? Second, can you
please forward the page and tiled view Java classes and JSPs to my work
address? At what point are you writing the getTileIndex() value out--during
display, business processing, what?
Also, try putting a stack trace in the nextTile() method of the tiled view
to see if its being incremented from somewhere you don't expect:
public boolean nextTile()
if (getTileIndex()==0)
new Exception().printStackTrace();
Todd
Todd Fast
Senior Engineer
Sun/Netscape Alliance
todd.fast@e...
----- Original Message -----
From: <shyam_gotur@p...>
Sent: Saturday, March 03, 2001 2:40 PM
Subject: [iPlanet-JATO] JATO 1.1 - First Tile is not displayed in TiledView.
Hi
We migrated our application from JATO 1.0 to JATO 1.1,
with 1.1 the nextTile() method is skipping the first tile in
tiledView.when printed the getTileIndex() to console , it is starting
with index 1 instead of 0.
Thanks
Shyam
[email protected]Hi Shyam--
I'm not seeing this over here. So, we need to figure out why you're seeing
it--I need some more information.
First, what model are you using to back the tiled view? Second, can you
please forward the page and tiled view Java classes and JSPs to my work
address? At what point are you writing the getTileIndex() value out--during
display, business processing, what?
Also, try putting a stack trace in the nextTile() method of the tiled view
to see if its being incremented from somewhere you don't expect:
public boolean nextTile()
if (getTileIndex()==0)
new Exception().printStackTrace();
Todd
Todd Fast
Senior Engineer
Sun/Netscape Alliance
todd.fast@e...
----- Original Message -----
From: <shyam_gotur@p...>
Sent: Saturday, March 03, 2001 2:40 PM
Subject: [iPlanet-JATO] JATO 1.1 - First Tile is not displayed in TiledView.
Hi
We migrated our application from JATO 1.0 to JATO 1.1,
with 1.1 the nextTile() method is skipping the first tile in
tiledView.when printed the getTileIndex() to console , it is starting
with index 1 instead of 0.
Thanks
Shyam
[email protected] -
Conversion of 1.2 JATO project (non-Forte IDE) to S1AF (JATO) 2.0
JATO Team,
First of all, thank you very much for the Studio integration. It
looks very promising in terms of development time consumption,
deployment to S1AS7, etc., etc. It is impossible to observe all
advantages for so short period of time.
The SOAF (JATO) 2.0 is installed on the top of the Sun ONE Studio 4,
update 1 (EE) with JDK 1.4 along with the Sun One Application Server
7 (W2000). Everything looks okay, at least all basic tasks listed in
the "Getting Started" manual (project/view/model creation, basic db
connection, running of a test application with the usage of the
Studio's default Tomcat container, etc.) work proper.
During the installation of S1AF module on the top of the Sun ONE
Studio 4, update 1 (EE) I've got an invitation to convert the
existing project to the new environment. As I realized the only JATO
project integrated/created with Forte IDE is applicable for this auto-
conversion (please correct me, if I am wrong. It could solve a lot of
my problems).
Since we are using JBuilder5 IDE and our JATO 1.2 project is
integrated with this IDE I manually re-created project in the Studio
with its file structure, adjusted the project web.xml file, etc. This
new project looks like a proper one (Studio recognize all methods,
fields, bean patterns, e.g.) except at least one "small" thing. All
java files (project viewBeans, Models, custom viewBeanHelpers a.k.a.
pure java) came up with the same wizard image:java class. Stutio with
the S1AF module reserves the special images (and appropriate studio
properties, of course!) for View and Model. Namely this allows to see
the following structure for a ViewBean, for example, in the Studio:
Modules
ProjectName.ModuleName
FooViewBean
JavaSource
JSPs
Non-Visual Components
View Components
On the other hand, I could add either new View or Model in my
manually converted project and add any View Component or bind the
Model fields, for example. Also, the ProjectModuleServlet has been
converted proper. I tried to convert each View/Model class inside the
Studio to its proper wizard image and failed. Addition of a View
Components (with an appropriate code fragments) via the Studio or
auto-binding of model fields is an essential part of 2.0 and should
drastically speed up the development process as it is designed.
Questions:
1. What I missed in my manual conversion of 1.2 JATO project to the
SOAF (JATO) 2.0 realm? What should I correct in my JATO 1.2
compatible classes (Views and Models) to be recognizable by Studio
wizard (JATO 2.0)?
To be more specific. Some deltas between JATO 1.2 and JATO 2.0 are as
follows (related to a ViewBean):
====++++++++++++++======
JATO 1.2 viewBean extension upon creation:
public class FooViewBeanViewBean extends ViewBeanBase
implements ViewBean
========================
JATO 2.0 (S1AF) version: viewBean extension upon creation:
public class FooViewBean extends BasicBeanBase
====++++++++++++++======
JATO 1.2 viewBean createChild(...) method for one static looks
like:
protected View createChild(String name)
if (name.equals(CHILD_STATICTEXT1))
StaticTextField child = new StaticTextField
(this,
getDefaultModel(),
CHILD_STATICTEXT1,
CHILD_STATICTEXT1,
CHILD_STATICTEXT1_RESET_VALUE,
null);
return child;
========================
JATO 2.0 (S1AF) version: viewBean createChild(...) is renamed (as
a least) to createChildReserved(...):
protected View createChildReserved(String name) {
if (name.equals(CHILD_STATICTEXT1)) {
com.iplanet.jato.view.BasicDisplayField child =
new com.iplanet.jato.view.BasicDisplayField(this,
STATICTEXT1);
return child;
====++++++++++++++======
JATO 1.2 viewBean registerChildren() method for the basic field
types looks like:
private void registerChildren() {
registerChild(CHILD_STATICTEXT1, StaticTextField.class);
registerChild(CHILD_TEXTFIELD1, TextField.class);
registerChild(CHILD_BUTTON1, Button.class);
========================
JATO 2.0 (S1AF) version: viewBean registerChildren() method:
private void registerChildren() {
registerChild(CHILD_STATICTEXT1,
com.iplanet.jato.view.BasicDisplayField.class);
registerChild(CHILD_TEXTFIELD1,
com.iplanet.jato.view.BasicDisplayField.class);
registerChild(CHILD_BUTTON1,
com.iplanet.jato.view.BasicCommandField.class);
Is it correct to say that all existing custom Views/Models
(compatible with JATO 1.2) should be converted to their JATO 2.0
variants to be visible by the Studio?
On the other hand, fast overview of 2.0 API shows that the JATO 1.2
is a sub-set of the 2.0 (BasicViewBean extends ViewBeanBase, for
example). What exactly (only deprecated methods?) should be adjusted
in the project code (1.2), if necessary, to be visible by Studio as a
View or Model component?
2. Where it is possible to find the list of deprecated methods (from
JATO 1.2 to JATO 2.0 versions). It is difficult sometimes to compare
two versions of API docs (1.2 and 2.0) or compare logs between
versions. Also, JATO 2.0 is significantly larger than 1.2 version. If
the later obviously inherits the ND conversion stage (via the
previous versions), the former obviously has additions incoming from
the integration with the Studio (a.k.a. Forte 4.0).
3. What is the current/future Sun/JATO Team policy with regards to
JATO source code access (version 2.0, at least)? The reason of this
question is as follows: in order to display dates formatted on the
screens we adjusted a couple of JATO 1.2 core classes, for example.
The only minimal, absolutely necessary changes in JATO 1.2 was made,
but anyway...
Sorry for so long multiple question. As Todd wrote in his
announcement mail: "We think you will be very pleased with the new
product...". This is exciting moment, I believe, for JATO Team as
well as for any team involved into the conversion of the full size
application/product from ND to J2EE realm with the JATO as
an application framework (1.0, 1.1.x, 1.2.X, and 2.0 finally). The
last step is left in this spiral process to enjoy the ND_Studio
attractive features in the open source environment.
Thank you very much in advance.
Vladimir IvanovI'll get some file templates ASAP and provide them to the group.
As for source code, I'm not sure what the policy is. JATO 1.2 is very
close to what JATO 2.0 is, so that should suffice for now.
The community will be informed when we know more about source availibility.
craig
vivanov4114 wrote:
Craig,
Thank you for the answer. To be honest with you I tried to do exactly
the same: I created the small test project and made an attempt to
adjust the existing *.xml files to the new ones. I got some results,
otherwise I couldn't even see my original 1.2 project in the Studio.
Since I am a newcomer in the Studio, I definitely missed something in
my adjustments. I'll try to observe my changes with the fresh head.
On the other hand, I am afraid that my samples are very pure. If you
could post or send me examples of jatoapp.xml and web.xml files (say
for any of you test project) or excerptions from them with the
appropriate patterns (ViewBean and Model peers, at least), I would be
very appreciated. My mail is: vivanov@b...
In the worst-case scenario I see the workaround: to re-create the
project for one of our releases with the Forte 4.1 IDE and auto-
convert it into the JATO 2.0/Studio world using the Studio
facilities. We must get the current project fully
integrated/converted with/to the Studio (at certain point) because,
first, we expect massive coding with the GUI components involved soon
and, secondly, we have around thousand classes related to JATO only
(and a lot of extras).
Coming back to the question #3 from this post. Now we have full
access to the version 1.2, not only to the JATO 1.2 jar file(I
explained some reasons below). Would we expect the same Sun/JATO Team
policy with JATO 2.0?
Thank you again,
Vlad
--- In SunONE-JATO@y..., "cvconover" <craig.conover@s...> wrote:
It doesn't appear that anyone has responded to this so I am goingto
give you the short answer:
The reason you don't see your ViewBeans and Models showing up with
there "wizard created" icons is because of just that. They weren't
created via the wizards. The wizards create xml formatted filesthat
contain metadata of how/what to generate for the ViewBeans and
Models.
ViewBeans will have a .viewbean fiel, Models will have a .sqlmodel
file (for SQL Models), etc. The content of these files describesthe
code that needs to be generated in the corresponding Java classfile.
So LoginViewBean.java will have a peer LoginViewBean.viewbean file.
The code that is generated is place in protected code blocks thatcan
not be modified in the Studio and should not be modified outsidethe
Studio because the code will likely be regenerated and custom mods
inside the protected blocks will be lost.
Now you can make a JATO 1.2 app appear in the Studio just like aJATO
2.0 app by adding a jatoapp.xml file with the proper content and
adjusting your web.xml properly, but it's much more work to getyour
v1.2 ViewBeans and Models to show up like wizard created versions.
Furthermore, even more work to get the display fields to show up
visually.
The good news is that v1.2 ViewBeans will work with newly wizard
created ViewBeans. And if you do go through the trouble of making
your ViewBeans Studio visible like your wizard created ViewBeans,
adding new display fields visually will work along side yourmanually
created fields.
Try creating a new JATO app using the Studio wizards and then go to
the Filesystems tab and look for the jatoapp.xml file and theweb.xml
file.
I am looking for an email that I have that explains how to do a
partial, manual upgrade.
Also, you will get rid of your JATO 1.2 jar and replace with theJATO
2.0 jar in your lib dir.
Hope this will suffice for now.
craig
--- In SunONE-JATO@y..., "vivanov4114" <vivanov@b...> wrote:
JATO Team,
First of all, thank you very much for the Studio integration. It
looks very promising in terms of development time consumption,
deployment to S1AS7, etc., etc. It is impossible to observe all
advantages for so short period of time.
The SOAF (JATO) 2.0 is installed on the top of the Sun ONE Studio4,
update 1 (EE) with JDK 1.4 along with the Sun One ApplicationServer
7 (W2000). Everything looks okay, at least all basic tasks listedin
the "Getting Started" manual (project/view/model creation, basic
db
connection, running of a test application with the usage of the
Studio's default Tomcat container, etc.) work proper.
During the installation of S1AF module on the top of the Sun ONE
Studio 4, update 1 (EE) I've got an invitation to convert the
existing project to the new environment. As I realized the onlyJATO
project integrated/created with Forte IDE is applicable for thisauto-
conversion (please correct me, if I am wrong. It could solve a
lot
of
my problems).
Since we are using JBuilder5 IDE and our JATO 1.2 project is
integrated with this IDE I manually re-created project in theStudio
with its file structure, adjusted the project web.xml file, etc.This
new project looks like a proper one (Studio recognize all
methods,
fields, bean patterns, e.g.) except at least one "small" thing.All
java files (project viewBeans, Models, custom viewBeanHelpersa.k.a.
pure java) came up with the same wizard image:java class. Stutiowith
the S1AF module reserves the special images (and appropriate
studio
properties, of course!) for View and Model. Namely this allows tosee
the following structure for a ViewBean, for example, in the
Studio:
Modules
ProjectName.ModuleName
FooViewBean
JavaSource
JSPs
Non-Visual Components
View Components
On the other hand, I could add either new View or Model in my
manually converted project and add any View Component or bind the
Model fields, for example. Also, the ProjectModuleServlet hasbeen
converted proper. I tried to convert each View/Model class insidethe
Studio to its proper wizard image and failed. Addition of a View
Components (with an appropriate code fragments) via the Studio or
auto-binding of model fields is an essential part of 2.0 and
should
drastically speed up the development process as it is designed.
Questions:
1. What I missed in my manual conversion of 1.2 JATO project tothe
SOAF (JATO) 2.0 realm? What should I correct in my JATO 1.2
compatible classes (Views and Models) to be recognizable byStudio
wizard (JATO 2.0)?
To be more specific. Some deltas between JATO 1.2 and JATO 2.0are
as
follows (related to a ViewBean):
====++++++++++++++======
JATO 1.2 viewBean extension upon creation:
public class FooViewBeanViewBean extends ViewBeanBase
implements ViewBean
========================
JATO 2.0 (S1AF) version: viewBean extension upon creation:
public class FooViewBean extends BasicBeanBase
====++++++++++++++======
JATO 1.2 viewBean createChild(...) method for one static looks
like:
protected View createChild(String name)
if (name.equals(CHILD_STATICTEXT1))
StaticTextField child = new StaticTextField
(this,
getDefaultModel(),
CHILD_STATICTEXT1,
CHILD_STATICTEXT1,
CHILD_STATICTEXT1_RESET_VALUE,
null);
return child;
========================
JATO 2.0 (S1AF) version: viewBean createChild(...) is renamed(as
a least) to createChildReserved(...):
protected View createChildReserved(String name) {
if (name.equals(CHILD_STATICTEXT1)) {
com.iplanet.jato.view.BasicDisplayField child =
new com.iplanet.jato.view.BasicDisplayField(this,
STATICTEXT1);
return child;
====++++++++++++++======
JATO 1.2 viewBean registerChildren() method for the basic field
types looks like:
private void registerChildren() {
registerChild(CHILD_STATICTEXT1,
StaticTextField.class);
registerChild(CHILD_TEXTFIELD1, TextField.class);
registerChild(CHILD_BUTTON1, Button.class);
========================
JATO 2.0 (S1AF) version: viewBean registerChildren() method:
private void registerChildren() {
registerChild(CHILD_STATICTEXT1,
com.iplanet.jato.view.BasicDisplayField.class);
registerChild(CHILD_TEXTFIELD1,
com.iplanet.jato.view.BasicDisplayField.class);
registerChild(CHILD_BUTTON1,
com.iplanet.jato.view.BasicCommandField.class);
Is it correct to say that all existing custom Views/Models
(compatible with JATO 1.2) should be converted to their JATO 2.0
variants to be visible by the Studio?
On the other hand, fast overview of 2.0 API shows that the JATO1.2
is a sub-set of the 2.0 (BasicViewBean extends ViewBeanBase, for
example). What exactly (only deprecated methods?) should beadjusted
in the project code (1.2), if necessary, to be visible by Studio
as
a
View or Model component?
2. Where it is possible to find the list of deprecated methods(from
JATO 1.2 to JATO 2.0 versions). It is difficult sometimes tocompare
two versions of API docs (1.2 and 2.0) or compare logs between
versions. Also, JATO 2.0 is significantly larger than 1.2
version.
If
the later obviously inherits the ND conversion stage (via the
previous versions), the former obviously has additions incomingfrom
the integration with the Studio (a.k.a. Forte 4.0).
3. What is the current/future Sun/JATO Team policy with regards
to
JATO source code access (version 2.0, at least)? The reason ofthis
question is as follows: in order to display dates formatted onthe
screens we adjusted a couple of JATO 1.2 core classes, forexample.
The only minimal, absolutely necessary changes in JATO 1.2 wasmade,
but anyway...
Sorry for so long multiple question. As Todd wrote in his
announcement mail: "We think you will be very pleased with the
new
product...". This is exciting moment, I believe, for JATO Team as
well as for any team involved into the conversion of the fullsize
application/product from ND to J2EE realm with the JATO as
an application framework (1.0, 1.1.x, 1.2.X, and 2.0 finally).The
last step is left in this spiral process to enjoy the ND_Studio
attractive features in the open source environment.
Thank you very much in advance.
Vladimir IvanovTo download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp
[Non-text portions of this message have been removed] -
hi ...
i have just about started using jato in conjunction with S1Studio
and find it a real great asset ...
we are trying to build custom jato components which can be packaged
into a jar file and used like any other standard jato component ...
e.g. i have developed this date component which is basically a
composition of 3 comboboxes - one each for m/d/y ...
to render these 3 comboboxes i have a "date" tag (DateTag.java)
which basically includes a file Date.jsp in the parent jsp - the
contents of Date.jsp:
<jato:pagelet>
<jato:combobox name="month"/>
<jato:combobox name="day"/>
<jato:combobox name="year"/>
</jato:pagelet>
The problem with this approach is that I can't package a JSP in a
jar since the web server would not be able to determine the path to
the jsp ...
Can any of u direct me here? ... Also, if u have an example of a
similar packaged custom jato component - that'd be of great help!
thanks much,
keyurThanks Craig ... but Somehow this didnt work - maybe I didnt follow
the steps correctly ... here is what i did:
the jar file -> date.jar
date.jar has .class files arranged according to their package
names ..
there's also the "COMP-INF" directory ...
in addition to these - i added another folder called "webapp" ...
and within "webapp" i housed the JSPs ...
i then copied date.jar to <context root>/WEB-INF/lib folder and
started the server ...
however, the web server didn't extract out the JSPs ... did i go
wrong somewhere? .... am i to do something other than this - like
create the jar with some special parameter or change some
configuration in the server?
thanks!
keyur
--- In SunONE-JATO@y..., "Craig V. Conover" <craig.conover@s...>
wrote:
Keyur,
You are in luck. There is a way to bundle the JSPs (or any web resources
like images and other jar's) in the component jar file so that the tool
will expand them properly into your web application's doc root.
It's not officially documented yet, as is the case with creating
components in general, but here's what you do:
You have the ability to extract arbitrary files from a component library jar file into the web app's file system. This allows
libraries to automatically unpack files like additional jars,
images, pagelets, etc. All that's needed to take advantage of this
new feature is to create a hierarchy of files in the complib under
a "webapp" directory (off the root). The files under that directory
will then be automatically extracted into the web context's
filesystem.
>
For example:
/webapp/test/foo.html
will extract to
<context root>/test/foo.html
and the following
/webapp/WEB-INF/lib/foo.jar
will extract to
<context root>/WEB-INF/lib/foo.jar
Anything not under the "webapp" dir in the component jar file will stay packaged in the jar file.
>
Does that make sense?
craig
Keyur Shah wrote:
hi ...
i have just about started using jato in conjunction with S1Studio
and find it a real great asset ...
we are trying to build custom jato components which can be
packaged
into a jar file and used like any other standard jato component ...
>>
e.g. i have developed this date component which is basically a
composition of 3 comboboxes - one each for m/d/y ...
to render these 3 comboboxes i have a "date" tag (DateTag.java)
which basically includes a file Date.jsp in the parent jsp - the
contents of Date.jsp:
<jato:pagelet>
<jato:combobox name="month"/>
<jato:combobox name="day"/>
<jato:combobox name="year"/>
</jato:pagelet>
The problem with this approach is that I can't package a JSP in a
jar since the web server would not be able to determine the path to
the jsp ...
Can any of u direct me here? ... Also, if u have an example of a
similar packaged custom jato component - that'd be of great help!
thanks much,
keyur
To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp
Service -
I need probably to reorder Parent-Child relationships,
I have now
- ViewBean
---MenuItemsTiledView.class
---OrderCacheTiledView.class
---Button.class (append)
I will try to have
- ViewBean
---MenuItemsTiledView.class
------OrderCacheTiledView.class
---------Button.class (append)
And I will have to change:
<jato:tiledView name="MenuItems"
<jato:tiledView name="OrderCache"
<go method="post" href="<%=response.encodeURL
("../member/MenuItems") %>">
<postfield name="MenuItems.append" value=""/>
<postfield name="MenuItems.menuItemId"
value="<jato:getDisplayFieldValue
name='MenuItemId'/>" />
</go>
I think it is strict rule to have the same parent-child relationships in
JSP like as in classes
May I have more freedom like as with <jato:text name="...">, where name
could be relative (to parent, to container), absolute?
Fuad
-----Original Message-----
From: Fuad Efendi [mailto:<a href="/group/SunONE-JATO/post?protectID=230075113150035198105038066208231165163158211254234113172006048205015246">fuad.efendi@s...</a>]
Sent: Friday, May 17, 2002 12:02 PM
Subject: [SunONE-JATO] handle...Request() - in different TiledView?
Hello,
I use ViewBean, and two child TiledViews (WML sample).
<jato:tiledView name="TiledView1"
type="mobiledb.member.MenuItemsTiledView">
<go method="post" href="<%=
response.encodeURL("../member/MenuItems") %>">
<postfield name="MenuItems.append" value=""/>
<postfield name="MenuItems.menuItemId"
value="<jato:getDisplayFieldValue name='MenuItemId'/>" />
</go>
I think, "handleAppendRequest()" will work within TiledView1 (I didn't
try yet, I have this handler in ViewBean).
But, logically, better place for it is TiledView2 which contains cached
appended records...
I can have handler in ViewBean redirecting into TiledView2 of course,
What is the best way?
Thanks,
Fuad
To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp
[Non-text portions of this message have been removed]Sorry for mistake with index,
<postfield name="MyJspPage.MyTiledView[2].Append" value=""/>
-----Original Message-----
From: Fuad Efendi [mailto:<a href="/group/SunONE-JATO/post?protectID=230075113150035198105038066208231165163158211254234113172006048205015246">fuad.efendi@s...</a>]
Sent: Saturday, May 18, 2002 12:42 PM
Subject: RE: [SunONE-JATO] handle...Request() - in different TiledView?
OK, I solved it (for WML),
If I use "virtual buttons" on JSP page (within <jato:tiledView.../>
tag), and this buttons are child of MyTiledView class (which is child of
MyViewBean), I can use
<postfield name="MyJspPage.MyTiledView.Append[2]" value=""/>
for emulation of button.
I don't use MyViewBean.MyTiledView.Append[2]!
Next step: I have to understand what to do with index in
MyTiledView.handleAppendRequest... Code seems harder than putting Button
and Handler in main MyViewBean...
[Non-text portions of this message have been removed] -
Re: [iPlanet-JATO] Re: Retrieving all Values from a Tiled View
Todd,
Let me try to explain you this time. I have a text field in a TiledViewBean.
When I display the page, the text field
html tag is created with the name="PageDetail.rDetail[0].tbFieldName" say
five times/rows with same name.
The html tags look like this.
<input type=text name="PageDetail.rDetail[0].tbFieldName" value=""
maxlength=9 size=13>
<input type=text name="PageDetail.rDetail[0].tbFieldName" value=""
maxlength=9 size=13>
<input type=text name="PageDetail.rDetail[0].tbFieldName" value=""
maxlength=9 size=13>
When the form is submitted, I want to get the text field values using the
method getTbFieldName().getValues() which
returns an array object[]. This is in case where my TiledViewBean is not
bound and it is working fine.
Now in case when my TiledView is bound to a model, it creates the html tags
as follows.
<input type=text name="PageDetail.rDetail[0].tbFieldName" value=""
maxlength=9 size=13>
<input type=text name="PageDetail.rDetail[1].tbFieldName" value=""
maxlength=9 size=13>
<input type=text name="PageDetail.rDetail[2].tbFieldName" value=""
maxlength=9 size=13>
Now when I say getTbFieldName().getValues() it returns only the first
element values in the object[] and the rest of the
values are null.
May be we need to create a utility method do get these values from
requestContext.
raju.
----- Original Message -----
From: Todd Fast <toddwork@c...>
Sent: Saturday, July 07, 2001 3:52 AM
Subject: Re: [iPlanet-JATO] Re: Retrieving all Values from a Tiled View
Raju.--
I wanted to know how the getValues() method works the reason being,
when the tiled view is NOT bound to a model, it populates all the
fields with the same name as some thing likeI'm afraid I don't understand your point--can you please clarify? Do you
mean "value" instead of "name"?
What are you trying to do? What behavior are you expecting but notseeing?
>
Without further clarification, I can say that the setValues() methodsNEVER
populates data on multiple rows of a (dataset) model, nor does it affect
multiple fields on the same row. Perhaps what you are seeing is theeffect
of default values. Model that derive from DefaulModel have the ability to
carry forward the values set on the first row to other rows in lieu ofdata
in those other rows. This behavior is for pure convenience and can be
turned off, and it is turned off for the SQL-based models.
Todd
[email protected]Hi,
I wanted to know how the getValues() method works the reason being,
when the tiled view is NOT bound to a model, it populates all the
fields with the same name as some thing like
PageDetail.rDetail[0].tbFieldValue
PageDetail.rDetail[0].tbFieldValue
in which case, the getValues() method works fine.
But in case where the tiled view is bound to a model, it populates
with different field names such as,
PageDetail.rDetail[0].tbFieldValue
PageDetail.rDetail[1].tbFieldValue
in this case, the getValues() doesn't work. Any soultion to this?
We are using Moko 1.1.1.
thanks in advance,
raju.
--- In iPlanet-JATO@y..., "Todd Fast" <toddwork@c...> wrote:
Does anyone know of is there a single method to get all values of a
display
field in a tiled view without having to iterate through all the
values ie
resetTileIndex() / nextTile() approach.
ie Something that returns an Object[] or Vector just like ND returned a
CspVector. I tried using the getValues() methods but that allways returns
a
single element array containing the first element.
(I think now, that method is used for multi selecteable ListBoxes)Actually, no. We can add this in the next patch, but for now, I'd recommend
creating a simple utility method to do the iteration on an arbitrary model
and build the list for you.
Todd -
Re: [iPlanet-JATO] Retrieving all Values from a Tiled View
Does anyone know of is there a single method to get all values of adisplay
field in a tiled view without having to iterate through all the values ie
resetTileIndex() / nextTile() approach.
ie Something that returns an Object[] or Vector just like ND returned a
CspVector. I tried using the getValues() methods but that allways returnsa
single element array containing the first element.
(I think now, that method is used for multi selecteable ListBoxes)Actually, no. We can add this in the next patch, but for now, I'd recommend
creating a simple utility method to do the iteration on an arbitrary model
and build the list for you.
ToddHi,
I wanted to know how the getValues() method works the reason being,
when the tiled view is NOT bound to a model, it populates all the
fields with the same name as some thing like
PageDetail.rDetail[0].tbFieldValue
PageDetail.rDetail[0].tbFieldValue
in which case, the getValues() method works fine.
But in case where the tiled view is bound to a model, it populates
with different field names such as,
PageDetail.rDetail[0].tbFieldValue
PageDetail.rDetail[1].tbFieldValue
in this case, the getValues() doesn't work. Any soultion to this?
We are using Moko 1.1.1.
thanks in advance,
raju.
--- In iPlanet-JATO@y..., "Todd Fast" <toddwork@c...> wrote:
Does anyone know of is there a single method to get all values of a
display
field in a tiled view without having to iterate through all the
values ie
resetTileIndex() / nextTile() approach.
ie Something that returns an Object[] or Vector just like ND returned a
CspVector. I tried using the getValues() methods but that allways returns
a
single element array containing the first element.
(I think now, that method is used for multi selecteable ListBoxes)Actually, no. We can add this in the next patch, but for now, I'd recommend
creating a simple utility method to do the iteration on an arbitrary model
and build the list for you.
Todd -
OK, fair enough.
Look at the ServletConfig class.
c
Purvashada wrote:
>
We had that option. We decided against the
property files as we can get this dynamically.
There has been problems when this property
was set incorrectly at the time of installation.
Are there any api's to get the servername and
port number other than through request object..
--- "Craig V. Conover" <craig.conover@s...> wrote:
So I guess my question is, why do you need a user
request to get this
information?
You should be able to get this info when the
application is started up,
from a props file.
Does this info change from day to day? If not, why
not create a props
file on the machine that the app is running that has
this info?
Then in the servlet's init method, read this prop
file.
Does that work for you? Not sure how a user request
is needed to
determine this? If it is, please explain.
I have used this same technique for database
properties (servername,
instance name, uid, pwd, etc).
On the QA machine was the properties that pointed to
the QA database,
and on the Production machine, the property file
with the same name had
props that pointed to the Production database.
craig
Purvashada wrote:
It is a static data that is same for all theusers.
It is application level data but generateddynamically
to get the server name and the port number the appis
running on..
Thanks
--- "Craig V. Conover" <craig.conover@s...>wrote:
OK, so how does doing this only once help you.
Wouldn't you need to do
this for each individual end user?
I'm not suggesting that this is request scoped,but
maybe session scoped.
If so, then do this in the module servlet's
onNewSession event.
If this is per user, then storing it staticallyis
problematic because
all users will be using the same data which Idon't
think you want.
Let me know if my assumptions are correct.
craig
Purvashada wrote:
Basically, I need to pass the host url/request
url
to
another server which then posts the results
back to this server.
I need to get the host url dynamically.
This is what I am doing in my code to
get the host url..
URL =req.getScheme() + "://" +
req.getServerName()
+
":" + req.getServerPort();
Thanks
--- "Craig V. Conover" <craig.conover@s...>wrote:
Correct, that is a per request event.
Sounds like we need to figure out a newapproach.
Please elaborate on your requirements for
doing
whatever it is you require.
Maybe we can suggest an alternative, orperhaps
reveal that it may not
be necessary after all.
craig
Purvashada wrote:
I had added this code in the
initializeRequestContext(..)
Hoping it would be called once.
It looks like it is called for every
request.
HttpServletRequest req =requestContext.getRequest();
setActionURL(req);
If I add the code in the init() method
how can I get the HttpServletRequest
getRequest()
Thanks
--- "Craig V. Conover"
<craig.conover@s...>
wrote:
cool.
Be careful about how you update this URL
when
you
use setURL method.
The servlets in JATO are the only shared
(Application scope rather than
Request scope like ViewBeans and
Models),
and
that
you could potentially
have sync/multithread issues. You said
you
were
only
updating once at
the start of the App, so you should be
fine.
I
assume you are doing this
from an init method or init event in theservlet
class? If so, no worries.
Also, just to be sure everyone follows,
I am
not
suggesting that you
write syncronize code in the servlets asthis
will
be a potential bottle
neck in your app's scalibility. This is
not
a
JATO
shortcoming as there
are alternatives to do this sort of
coding.
craig
Purvashada wrote:
I made the method static and is
accessible..
--- "Craig V. Conover"<craig.conover@s...>
wrote:
I would assume it is a static
method, so
just
do:
MainAppServletBase.getURL()
right?
If not static, it probably should
be. If
you
feel it
should not be
static, let us know why/what your
requirements
are.
>
=== message truncated ===
To download the latest version of S1AF (JATO), please visit one of the
following locations:
Framework + IDE plugin for Sun ONE Studio 4 Update 1, Community Edition:
http://wwws.sun.com/software/download/products/Appl_Frmwk_2.0_CE.html
Framework + IDE pluign for Sun ONE Studio 4 Update 1, Enterprise Edition:
http://wwws.sun.com/software/download/products/Appl_Frmwk_2.0_EE.html
Previous versions of JATO:
http://www.sun.com/software/download/developer/5102.htmlOK, fair enough.
Look at the ServletConfig class.
c
Purvashada wrote:
>
We had that option. We decided against the
property files as we can get this dynamically.
There has been problems when this property
was set incorrectly at the time of installation.
Are there any api's to get the servername and
port number other than through request object..
--- "Craig V. Conover" <craig.conover@s...> wrote:
So I guess my question is, why do you need a user
request to get this
information?
You should be able to get this info when the
application is started up,
from a props file.
Does this info change from day to day? If not, why
not create a props
file on the machine that the app is running that has
this info?
Then in the servlet's init method, read this prop
file.
Does that work for you? Not sure how a user request
is needed to
determine this? If it is, please explain.
I have used this same technique for database
properties (servername,
instance name, uid, pwd, etc).
On the QA machine was the properties that pointed to
the QA database,
and on the Production machine, the property file
with the same name had
props that pointed to the Production database.
craig
Purvashada wrote:
It is a static data that is same for all theusers.
It is application level data but generateddynamically
to get the server name and the port number the appis
running on..
Thanks
--- "Craig V. Conover" <craig.conover@s...>wrote:
OK, so how does doing this only once help you.
Wouldn't you need to do
this for each individual end user?
I'm not suggesting that this is request scoped,but
maybe session scoped.
If so, then do this in the module servlet's
onNewSession event.
If this is per user, then storing it staticallyis
problematic because
all users will be using the same data which Idon't
think you want.
Let me know if my assumptions are correct.
craig
Purvashada wrote:
Basically, I need to pass the host url/request
url
to
another server which then posts the results
back to this server.
I need to get the host url dynamically.
This is what I am doing in my code to
get the host url..
URL =req.getScheme() + "://" +
req.getServerName()
+
":" + req.getServerPort();
Thanks
--- "Craig V. Conover" <craig.conover@s...>wrote:
Correct, that is a per request event.
Sounds like we need to figure out a newapproach.
Please elaborate on your requirements for
doing
whatever it is you require.
Maybe we can suggest an alternative, orperhaps
reveal that it may not
be necessary after all.
craig
Purvashada wrote:
I had added this code in the
initializeRequestContext(..)
Hoping it would be called once.
It looks like it is called for every
request.
HttpServletRequest req =requestContext.getRequest();
setActionURL(req);
If I add the code in the init() method
how can I get the HttpServletRequest
getRequest()
Thanks
--- "Craig V. Conover"
<craig.conover@s...>
wrote:
cool.
Be careful about how you update this URL
when
you
use setURL method.
The servlets in JATO are the only shared
(Application scope rather than
Request scope like ViewBeans and
Models),
and
that
you could potentially
have sync/multithread issues. You said
you
were
only
updating once at
the start of the App, so you should be
fine.
I
assume you are doing this
from an init method or init event in theservlet
class? If so, no worries.
Also, just to be sure everyone follows,
I am
not
suggesting that you
write syncronize code in the servlets asthis
will
be a potential bottle
neck in your app's scalibility. This is
not
a
JATO
shortcoming as there
are alternatives to do this sort of
coding.
craig
Purvashada wrote:
I made the method static and is
accessible..
--- "Craig V. Conover"<craig.conover@s...>
wrote:
I would assume it is a static
method, so
just
do:
MainAppServletBase.getURL()
right?
If not static, it probably should
be. If
you
feel it
should not be
static, let us know why/what your
requirements
are.
>
=== message truncated ===
To download the latest version of S1AF (JATO), please visit one of the
following locations:
Framework + IDE plugin for Sun ONE Studio 4 Update 1, Community Edition:
http://wwws.sun.com/software/download/products/Appl_Frmwk_2.0_CE.html
Framework + IDE pluign for Sun ONE Studio 4 Update 1, Enterprise Edition:
http://wwws.sun.com/software/download/products/Appl_Frmwk_2.0_EE.html
Previous versions of JATO:
http://www.sun.com/software/download/developer/5102.html -
Re: [iPlanet-JATO] Sorting a resultset
Steve,
Todd will probably address this more, but to set the stage for the discussion,
I will chime in. As per your scenario "say a user wants to resort the results
by some other column" , I think there needs to be some clarification on the
life cycle of the model. You scenario implies that the user sees the data and
then submits a request to sort the data. This implies that the access to the
same data is spread across two HTTP requests.
Unless explicitly or implicitly stored in session, the Model is a per request
object. Therefore, under ordinary circumstances a new instance of Model is
constructed per request and populated as needed. This is done for scalability
reasons. Most applications would not scale properly if all model instances were
kept around in session per user. There is also the issue of data integrity, a
model stored in session may not reflect the current state of the RDBMS from
which the data was previously retrieved, perhaps minutes before. So, the
default action is to instantiate a new model and repopulate that model The
normal solution would be to apply the sort criteria to the data retrieval at
that point.
What I described above is the norm and the default.
If you have compelling reasons to prefer a single retrieval style, you have to
be prepared to store the Model data in session. There are several methods
within the ModelManager class which assist in this regard. You can see them
described in the java doc.
Also bear in mind that the SQLModelBase typically copies the data from the JDBC
result set into JATO specific local storage. This is done because the JDBC
result set is not as flexible as developer needs and requires the JDBC
connection to remain open while it is used.
I suspect that Todd will describe how you can manipulate the underlying JATO
specific local storage to change the order. I just wanted to make sure you
understood the life cycle issues involved and had justification for deviating
from the default.
Also, I'm still waiting for followup on the defaultCommandChild issue - we'd
like to fix it for JATO 1.2.1 if it is a problem and so far your case is the
only one we have heard of.
----- Original Message -----
From: stephen_winer
Sent: Wednesday, December 12, 2001 9:42 AM
Subject: [iPlanet-JATO] Sorting a resultset
If I want to sort a result set (Model) after the search has taken
place (say a user wants to resort the results by some other column),
can this be done without issuing another query? The reason I ask is
that the next() method in the ResultSetModelBase calls synchronizeRow
(), which resets the row, which sounds like a sort done outside of
the SQL would be reverted.
Steve
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp
[Non-text portions of this message have been removed]The hidden field was present in the page, but it looked like this:
<input type="hidden" name="jato.defaultCommand" value=""../search"">
Seems like there is a small bug in the code generating this tag.
FYI - I am using JATO1.2
What file displays this text? Maybe I can go in and fix it and rejar
it.
Steve
--- Mike Frisino wrote:
Steve,
Can you check the HTML source that shows up in the browser? Do you see an entry that looks like this at the bottom of the form in
question?
>
<input type="hidden" name="jato.defaultCommand" value="/search">
To answer your question - it should work as you described. Some of the JatoSample make use of the defaultCommandChild. Can you try
running the sample BasicSample->Field Types and let us know what you
see.
>
Failing this you can send me your jsp file , maybe there is some subtle issue there. michael.frisino@s...
>
>
----- Original Message -----
From: stephen_winer
Sent: Friday, December 07, 2001 8:05 AM
Subject: [iPlanet-JATO] Using the defaultCommandChild in a form
I am trying to set the defaultCommandChild in my jato:form tag to be
the searcg button. The search button definition is:
<jato:button name="search"/>.
The form tag definition is:
<jato:form name="PendingIA" defaultCommandChild="/search">
Clicking on the search button works fine, but hitting return in one
of the textFields (which submits the form) passes a value of "" to
the createChild method in my viewBean, which throws an error. Why
does this not just work as normal and trigger the handleSearchRequest
() method?
Steve
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp
Service.
>
>
>
[Non-text portions of this message have been removed] -
Re: [SunONE-JATO] How to use a tiled view without a model
John,
Check out the docs for DefaultModel. There is an appendRow() method.
So get your tiledview's primary model (the tiledview's primary model
should be set to use an instance of DefaultModel), model.appendRow(),
then model.setValue("fieldname", value) for each value.
Rinse, repeat as needed.
c
jhoskins wrote:
I would like to use a tiled view, but populate the fields manually.
Any pointers about where I can set the size of the tiled view? I tried
setMaxDisplayTiles() in the beginDisplay, but it won't get down and
generate the rows.
John Hoskins
To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jspCraig,
Thanks for the pointers. I ended up doing something else. I set the
models setSize() method to set the max size, and as the tiles fields
iterated, populated the value from some vectors I had the data in
already. Is this solution fraught with peril and will ultimately fail,
or should I try your way?
John
--- "Craig V. Conover" wrote:
John,
Check out the docs for DefaultModel. There is an appendRow() method.
So get your tiledview's primary model (the tiledview's primary model
should be set to use an instance of DefaultModel), model.appendRow(),
then model.setValue("fieldname", value) for each value.
Rinse, repeat as needed.
c
jhoskins wrote:
I would like to use a tiled view, but populate the fields manually.
Any pointers about where I can set the size of the tiled view? I tried
setMaxDisplayTiles() in the beginDisplay, but it won't get down and
generate the rows.
John Hoskins
To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp -
Re: [SunONE-JATO] Re: How to use a tiled view without a model
I'm not sure what is different for you now. You still parse the string
and put it into a data structure. Before the data structure was a
vector, in JATO its just a model with a "hidden" data structure (a hash
map).
MVC only really comes into play when you talk about where your write
this code, and where the data structure is being stored. So really, JATO
takes care of half of the MVC'ness of it all (where the data is store).
You just decide where to be the code to populate the model.
Make sense?
Is there something different required of you in JATO in this scenario
that I am not grasping?
c
Hoskins, John D. wrote:
Thanks for the feedback.
The problem I was solving involved a single string, which contained
delimited subsets of information.
The string looked like
this:"time|analyst|description|time|analyst|description|..."
In ND, I parsed it apart into it's components (time vector, analyst vector,
description vector), populated the repeated.
With JATO, how would I make a model for something that doesn't have a
database component like this?
I'm pretty new to this MVC thing, so bear with me.
John D. Hoskins
Telephone & Data Systems
Application Development & Support
Voice: 608.664.8263
Fax: 608.664.8288
Email: john.hoskins@t...
-----Original Message-----
From: Craig V. Conover [mailto:<a href="/group/SunONE-JATO/post?protectID=219212113009229091025149066024064239039098031198039130252055210">craig.conover@s...</a>]
Sent: 6/26/2002 3.22 PM
Subject: Re: [SunONE-JATO] Re: How to use a tiled view without a model
I guess the only thing "weird" (for lack of a better term) about what
you are doing is that your are populating the model on the "display
cycle". Typically, the cycle goes like this:
Request -> populate model -> update data store -> retrieve data to
populate model -> display data
some of the above steps are optional but hopefully you get the point I
am making.
So what you are doing is:
Request -> populate model/display data
If it works for you, then it's not necessarilly wrong. But I would
probably have my model populated before I forwarded to the target
(displaying view bean) or at a minimum, in the begin display event of
the view bean or the tiled view, but not during the iteration of the
tiled view.
c
jhoskins wrote:
Craig,
Thanks for the pointers. I ended up doing something else. I set the
models setSize() method to set the max size, and as the tiles fields
iterated, populated the value from some vectors I had the data in
already. Is this solution fraught with peril and will ultimately fail,
or should I try your way?
John
--- Craig V. Conover wrote:
John,
Check out the docs for DefaultModel. There is an appendRow() method.
So get your tiledview's primary model (the tiledview's primary model
should be set to use an instance of DefaultModel), model.appendRow(),
then model.setValue("fieldname", value) for each value.
Rinse, repeat as needed.
c
jhoskins wrote:
I would like to use a tiled view, but populate the fields manually.
Any pointers about where I can set the size of the tiled view? I tried
setMaxDisplayTiles() in the beginDisplay, but it won't get down and
generate the rows.
John Hoskins
To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp
To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp
To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp
To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jspCraig,
Thanks for the pointers. I ended up doing something else. I set the
models setSize() method to set the max size, and as the tiles fields
iterated, populated the value from some vectors I had the data in
already. Is this solution fraught with peril and will ultimately fail,
or should I try your way?
John
--- "Craig V. Conover" wrote:
John,
Check out the docs for DefaultModel. There is an appendRow() method.
So get your tiledview's primary model (the tiledview's primary model
should be set to use an instance of DefaultModel), model.appendRow(),
then model.setValue("fieldname", value) for each value.
Rinse, repeat as needed.
c
jhoskins wrote:
I would like to use a tiled view, but populate the fields manually.
Any pointers about where I can set the size of the tiled view? I tried
setMaxDisplayTiles() in the beginDisplay, but it won't get down and
generate the rows.
John Hoskins
To download the latest version of JATO, please visit:
http://www.sun.com/software/download/developer/5102.html
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jsp
Maybe you are looking for
-
Selling Exchange rate type is not picking while billing
Hi, We have maintained Exchange rate type B for selling and the same was assigned in customer master as well as the RV document type. While raising sale order system is picking the B rate from OB08 table, but at the time of billing system is taking t
-
Assumption of Liability Process
Just curious how this goes. Looking on ebay at plans and there are many claiming to do a AOL and keep unlimited data. I'm sure it can be done but verizon states it can make you change to the share plans when doing so. Anyone had problems keeping ther
-
XL Reporter working on W Vista OS
Hi, I am wondering if somebody was able to make XL Reporter work properly under Windows Vista OS (Personaly I have W Vista Ultimate 64x). I don't know when (if) SAP plans to make XL Reporter compatible with Vista and Office 2007. In my case, having S
-
Hi, I am a bit confused about cumulative and levels. When I backup using RMAN, and specify incremental cumulative with level = 2 every day, am I not backing everything that has changed since level 0 (or a full backup done over weekend) every day?. Wh
-
Access key error for ABAP user in Development
Hi, I am getting the following error while entering the development access key for Development client 103