RE: RE: Grid

2002-01-18 Thread Aapo Laakkonen

> dbForms looks good...put have you tested it?
> or someone else? is it easy to use?

Yes it is very easy to use, but I don't like it, 'cause it does too much
and it is not very flexible. But for prototyping it's quite good and it
is pretty fast to built db frontends with it.

-- Aapo Laakkonen, +358 (50) 33 99 682, Giro Consulting Oy.


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>




Re: Usage of struts in financial institutions

2001-11-01 Thread Aapo Laakkonen

> Is struts framework used in any of the financial firms ?

Been there done that.



--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




Re: URL rewriting and cookies

2001-11-01 Thread Aapo Laakkonen

I still have not got any answers for the problem described below.

Is there some problems with struts custom img-tag?

Why it is generating tags like this?



Where does this ';' came from and why there it is not '?' instead?

Do I have to add ? on every picture if I like to use URL rewriting instead
of cookies?

> > Could you post an example of the type of URLs you're seeing?
>
> Here is the struts -tag:
>
>  height="7" border="0"/>
>
> And it generates output like this:
>
>  height="7" width="715" border="0">
>
> As you see ";jsessionid=0001CEAAQCTISJFXCZWNZLC2WNA" is absolutely crap
that
> I don't want to have in src-attribute. This occurs only when I enable
> URL-rewriting and disable cookies in my application server (WAS 3.5.4 on
> AIX). I have WAS modified struts package installed.
>
> My client likes to use URL-rewriting and disable cookies... I'm not sure
if
> this problem occurs even if both URL rewriting and Cookies are enabled.
But
> again my client wants to use only URL-rewriting, because they have quite
> strict deployment standards.
>
> Images are not served by WAS as my client uses separate Web Server for
> serving static content and they don't want to have any overhead that is
> generated by WAS layer if the files can be served directly by Apache or
some
> other Web Server as it is the case with images in this app.
>
> Can someone at least confirm me if the problem exists in struts framework
or
> somewhere else so I can point my finger to the source of the problem...
and
> leave you to think how you can improve this great framework.
>
> Have you heard anything about WebWare for Python? I think that Struts
> developers should look at the ideas implemented in WebWare... if you
already
> have not. It's really nice app server ... at least in developer's point of
> view, imho.
>
> Original message:
> -
> I have some small problems with struts on WebSphere 3.5.4 on AIX.
>
> Everything works fine, if I enable cookies and disable URL rewriting. But
> when I enable URL rewriting and disable cookies (or maybe I just need to
> enable URL rewriting) struts is generating (or is it because of
> struts)strange URL's. For example if I have used  srcKey="image.logo"... /> tag then struts generates the tag correctly but
> adds session id at the end of HTML's -tags source attribute. And then
> the image is not displayed to the user because the generated URL points to
> wrong place.
>
> How can I remove struts from adding session ids at the end of the src
> attribute?



--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




Re: Weird problem (WAS)

2001-10-25 Thread Aapo Laakkonen

> Seems like my struts installation doesn't work anymore as expected. All my
> forms do not have .do added to the end of action url anymore. It's
> interesting because html:links does work. What can cause this behavior? I
> did not do anything except updated my own jar-package.

The problem was not struts related, sorry. It was because WAS corrupted
itself somehow.




Weird problem (WAS)

2001-10-24 Thread Aapo Laakkonen

Seems like my struts installation doesn't work anymore as expected. All my
forms do not have .do added to the end of action url anymore. It's
interesting because html:links does work. What can cause this behavior? I
did not do anything except updated my own jar-package.




Re: A Few questions about struts and WebSphere

2001-08-03 Thread Aapo Laakkonen

> 1) You need to use flush="true" on your template:get tags in the template.

Thank you very much. Actually this did not solve my problem, because flush
is
only useful with get tags, but not with template:insert. I know that
jsp:include has
capability to flush, but I like using template tags. Is it possible to have
flush
attribute in template:insert tag in future?

> 2) Did you deploy your WAR correctly?

That do you mean about this? All the files are in correct places, but
WebSphere
always puts an extra folder in those redirects. I do not use  tag
because my jsp files are under WEB-INF/web directory, so it doens't work.

It seems that this problem occurs using forms: I have form like this:


...


update mapping is defined like this:






When I run this form I get this code:



When I submit or cancel this form the redirect is processed to:

http://localhost/app/app/list.do. I included the error message in this post.

> Check to make sure you don't have an extra folder app folder under app in
> default_host.

No I don't have extra app folder.

> 3) Haven't used Struts' DataSource functionality, I'm afraid I can't help
> you there - it doesn't look like it should be a problem, but I can't make
> any guarantees. :)

Then maybe you can tell me how do I get DataSource object from
WebSphere JNDI (Code would be great).

So how to replace this:

(InitialContext something, but not sure how).

>> DataSource ds = (DataSource)servlet.getServletContext()
>> .getAttribute(Action.DATA_SOURCE_KEY);

Kind Regards
Aapo Laakkonen


Error 400
An error has occured while processing request:http://localhost/app/app/list.do
Message: Invalid path /app/list was requested

Target Servlet: action
StackTrace: 

Root Error-1: Invalid path /app/list was requested

com.ibm.servlet.engine.webapp.WebAppErrorReport: Invalid path /app/list was requested
at javax.servlet.ServletException.(ServletException.java:107)
at 
com.ibm.websphere.servlet.error.ServletErrorReport.(ServletErrorReport.java:31)
at 
com.ibm.servlet.engine.webapp.WebAppErrorReport.(WebAppErrorReport.java:19)
at 
com.ibm.servlet.engine.webapp.WebAppDispatcherResponse.sendError(WebAppDispatcherResponse.java:100)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1556)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:491)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
at 
com.ibm.servlet.engine.webapp.StrictServletInstance.doService(ServletManager.java:626)
at 
com.ibm.servlet.engine.webapp.StrictLifecycleServlet._service(StrictLifecycleServlet.java:160)
at 
com.ibm.servlet.engine.webapp.IdleServletState.service(StrictLifecycleServlet.java:287)
at 
com.ibm.servlet.engine.webapp.StrictLifecycleServlet.service(StrictLifecycleServlet.java:105)
at 
com.ibm.servlet.engine.webapp.ServletInstance.service(ServletManager.java:360)
at 
com.ibm.servlet.engine.webapp.ValidServletReferenceState.dispatch(ServletManager.java:775)
at 
com.ibm.servlet.engine.webapp.ServletInstanceReference.dispatch(ServletManager.java:701)
at 
com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:478)
at 
com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:234)
at 
com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:138)
at 
com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:77)
at 
com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:67)
at 
com.ibm.servlet.engine.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:106)
at 
com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:160)
at 
com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(OSEListener.java:300)
at 
com.ibm.servlet.engine.oselistener.SQEventListenerImp$ServiceRunnable.run(SQEventListenerImp.java:230)
at 
com.ibm.servlet.engine.oselistener.SQEventListenerImp.notifySQEvent(SQEventListenerImp.java:104)
at 
com.ibm.servlet.engine.oselistener.serverqueue.SQEventSource.notifyEvent(SQEventSource.java:212)
at 
com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRunnable.notifyService(SQWrapperEventSource.java:353)
at 
com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRunnable.run(SQWrapperEventSource.java:220)
at 
com.ibm.servlet.engine.oselistener.outofproc.OutOfProcThread$CtlRunnable.run(OutOfProcThread.java:248)
at java.lang.Thread.run(Thread.java:481)


WebSphere 3.5.4

2001-08-03 Thread Aapo Laakkonen

What steps are required to install Struts application on WebSphere 3.5.4
Application server?

Is there something that need to be done? How did you deploy struts
application on WebShere 3.5.4?

Kind Regards
Aapo

-- Aapo Laakkonen, +358 (50) 33 99 682, ProjectCast Ltd, Helsinki, Finland.




Re: Wrong ordering of rendered html elements when using templates under WAS 3.5.x

2001-08-01 Thread Aapo Laakkonen
Title: FW: Wrong ordering of rendered html elements when using templates under WAS 3.5.x



I don't know if this helps, but I use something 
like this:
 

 
        
    
    
    

 
    

 
    
 

 

  - Original Message - 
  From: 
  Nik Malenovic 
  
  To: [EMAIL PROTECTED] 
  
  Sent: Thursday, August 02, 2001 1:11 
  AM
  Subject: FW: Wrong ordering of rendered 
  html elements when using templates under WAS 3.5.x
  
  Hello personable 
  people, 
  We've got a live 
  one over here - I've dug up an issue when using templates under WebSphere 
  3.5.4 (don't ask) with struts 1.0 (plus a fix or two that is required to get 
  struts functioning properly under WAS3.5.x). The issue is that my JSP produces 
  misordered html snippets.
  Here's what I 
  mean: 
  Actors: 
  --- Home.jsp Home_content.jsp Home_template.jsp 
  
  Home.jsp: 
  - [<%@ taglibs here %> ]   
    My 
  Title     
  
  Home_content.jsp: 
  -- [<%@ taglibs here %> ] 
   
         foo 
      
  Home_template.jsp 
  -- [<%@ taglibs here %> ] 
      
       
                     SOME MORE WILD TEXT HERE 
         
        
       
          
   
  Output of glorious 
  home.jsp hosted by WAS3.5.x (notice out of order rendering!): 
  - 
   
         foo 
   
          
    My Title     
                    SOME MORE WILD TEXT HERE 
         
        
               
   
  See the problem? 
  :-) I'd appreciate anyone with a clue to send me one. 
  Thanks, 
  
  Nik 
  -- 
  Nik 
  Malenovic  



Re: Pre-Populating ActionForm (again)

2001-07-26 Thread Aapo Laakkonen

>>> Here is the work flow:
>>>
>>> 1. select user from list
>>> - executes SelectUserAction that places UserBean in request scope.
>>> - forwards to edituser.jsp.
>>> 2. Populate form that is in edituser.jsp from UserBean
>>> - that form has action mapping to UpdateUserAction.
>>> 3. Submit form (Update)
>>> - UserForm gets populated and then it's validated by struts by
calling
>>>validate method.
>>> - If validation fails then  go back to edituser.jsp and the problem
>>>   arises: there is not anymore UserBean in request scope, because
>>>   SelectUserAction is responsible of that and it does not get
>>>   executed, so I get error: No xxx bean in scope null.
>>>
>>> So how do I write that form so I can populate it automatically? I mean
>>> that what code I should put in SelectUserAction so I can use tag like
>>> this:
>>
>> I got it to work. Thanks for everyone who replied to this issue!
>>
>
> Would you care to elaborate on your solution?
>

Ok here it goes. Instead of populating custom UserBean I populate
UserForm Bean in EditUserAction. The form is the same that is also
used in UpdateUserAction and InsertUserAction. I know that struts
guidelines say that reuse you action classes, but I like separating these
different actions in different action classes because I'm quite new to
this Java World and I'm not using EJBs. This works for me. If you
are planning bigger application then it is recommended to use EJBs,
but the timeframe in this project is so tight so I have no time to learn
all those fancy Java APIs and Patterns.

My Mappings looks like this:


























Pretty weird, huh!




Re: Cutom Tag request

2001-07-25 Thread Aapo Laakkonen

> It just prints string values like  tag but does not require
name
> attribute and cannot be used and associated with form.

Of course I meant:

It just prints string values like  tag but does not require name
attribute and can be used and associated with form.




Cutom Tag request

2001-07-25 Thread Aapo Laakkonen

 tag would be nice. What others think? Here is some uses:









It just prints string values like  tag but does not require name
attribute and cannot be used and associated with form. It also could have
 functionality. I know that this isn't a big issue, but
sometimes
you want to display something in form that is not editable (e.g. Primary
Key).
I know that I can use  for most cases, but
 tag could give you more flexibility.




Re: Pre-Populating ActionForm (again)

2001-07-25 Thread Aapo Laakkonen

> I know this too... but it's not the problem what I'm having.
>
> Here is the work flow:
>
> 1. select user from list
> - executes SelectUserAction that places UserBean in request scope.
> - forwards to edituser.jsp.
> 2. Populate form that is in edituser.jsp from UserBean
> - that form has action mapping to UpdateUserAction.
> 3. Submit form (Update)
> - UserForm gets populated and then it's validated by struts by calling
>validate method.
> - If validation fails then  go back to edituser.jsp and the problem
> arises:
>   there is not anymore UserBean in request scope, because
>   SelectUserAction is responsible of that and it does not get
executed,
>   so I get error: No xxx bean in scope null.
>
> So how do I write that form so I can populate it automatically? I mean
> that what code I should put in SelectUserAction so I can use tag like
this:

I got it to work. Thanks for everyone who replied to this issue!




Re: Pre-Populating ActionForm (again)

2001-07-25 Thread Aapo Laakkonen

> if u have overridden validate method in the actionForm then ActionServlet
> automatically take u to the mapping.getInput() ( i.e  ur input jsp file )
> where u can show the errors using  tag . Basicallly
> ActionErrors are kept in the request scope which are retrieved in the
>  tag

I know that.

> Else if u want to do validation even in ur action class , then create a
> instance of ActionErrors in the action class and add errors to it . save
the
> errors using saveErrors(request , actionErrros) method available in the
> Struts- Action class . So errors will be kept in the request scope and
again
> use same  tag to display them

I know this too... but it's not the problem what I'm having.

Here is the work flow:

1. select user from list
- executes SelectUserAction that places UserBean in request scope.
- forwards to edituser.jsp.
2. Populate form that is in edituser.jsp from UserBean
- that form has action mapping to UpdateUserAction.
3. Submit form (Update)
- UserForm gets populated and then it's validated by struts by calling
   validate method.
- If validation fails then  go back to edituser.jsp and the problem
arises:
  there is not anymore UserBean in request scope, because
  SelectUserAction is responsible of that and it does not get executed,
  so I get error: No xxx bean in scope null.

So how do I write that form so I can populate it automatically? I mean
that what code I should put in SelectUserAction so I can use tag like this:



to automatically pre-populate that form, instead of writing code like this:

.

Is there some way to put pre-populated form in some scope so that struts
automatically finds it and populates the form (I bet there is, but don't
know
how to do it).

I also included my first mail in this so you can get more specific detail on
this problem.

> > I know that this have been asked several times, but I did
> > not find answer for this little problem.
> >
> > I have list of lets say users. Each user has a link that maps
> > to edituser action. That action then gets executed and it
> > places userbean to request scope. Then struts forwards
> > action to edituser.jsp. Edituser.jsp has form that has
> > action mapping set to updateuser. When user submits
> > that form which binds to userform action form the
> > validate method of that actionform gets executed. If
> > validation errors occurred then we get back to input
> > form (which is edituser.jsp or edituser.do <-- which
> > to use?). And this is the point when I do not really
> > understand what I should do, because when user gets
> > back to edituser.jsp or edituser.do then there is not
> > anymore that userbean is request scope. And because
> > edituser.do does not have any forms associated with
> > it then I should instead use edituser.jsp as input for
> > updateuser action. But how I then write that form
> > (jsp-page)?
> >
> > I have several options:
> >
> > 1. put userbean in session scope (might be problem in
> > multiserver environment also the modifications that user
> > entered are not visible).
> >
> > 2. Have another jsp-page that does not populate the form
> > from userbean. Not good option because almost the same
> > form needs to be written second time.
> >
> > 3. Use logic tags to check the existence of userbean and if
> > it does not exist then do not populate and let the form
> > populate itself from posted form. Same problems as in 2.
> >
> > 4. Somehow prepopulate the form with no manual
> > population, but automatically. So do I pre-populate the
> > form. What code I need to put in edituser action that
> > previously placed userbean in request scope. I want to
> > place the form object in that same scope, but don't
> > know how. This is the best option and has no problems
> > or at least I have not found a one.
> >
> > Thanks again!
> >
> > Aapo Laakkonen




Pre-Populating ActionForm (again)

2001-07-25 Thread Aapo Laakkonen

I know that this have been asked several times, but I did
not find answer for this little problem.

I have list of lets say users. Each user has a link that maps
to edituser action. That action then gets executed and it
places userbean to request scope. Then struts forwards
action to edituser.jsp. Edituser.jsp has form that has
action mapping set to updateuser. When user submits
that form which binds to userform action form the
validate method of that actionform gets executed. If
validation errors occurred then we get back to input
form (which is edituser.jsp or edituser.do <-- which
to use?). And this is the point when I do not really
understand what I should do, because when user gets
back to edituser.jsp or edituser.do then there is not
anymore that userbean is request scope. And because
edituser.do does not have any forms associated with
it then I should instead use edituser.jsp as input for
updateuser action. But how I then write that form
(jsp-page)?

I have several options:

1. put userbean in session scope (might be problem in
multiserver environment also the modifications that user
entered are not visible).

2. Have another jsp-page that does not populate the form
from userbean. Not good option because almost the same
form needs to be written second time.

3. Use logic tags to check the existence of userbean and if
it does not exist then do not populate and let the form
populate itself from posted form. Same problems as in 2.

4. Somehow prepopulate the form with no manual
population, but automatically. So do I pre-populate the
form. What code I need to put in edituser action that
previously placed userbean in request scope. I want to
place the form object in that same scope, but don't
know how. This is the best option and has no problems
or at least I have not found a one.

Thanks again!

Aapo Laakkonen

-- Aapo Laakkonen, +358 (50) 33 99 682, ProjectCast Ltd, Helsinki, Finland.




Re: Mappings, bloody mappings

2001-07-24 Thread Aapo Laakkonen

> The one you have marked as "also tried" looks all right though.

:-) ... I must be doing something weird because I got it to work. Thanks
for reply. I you have not replied to this, then I could have spend many
more hours figuring out whats the problem.

> I may be a typo, but your message mentioned an "UpdateAction", but the
> type specified is "FundUpdateAction". 

Yep, it was.

I really like this struts framework.




Mappings, bloody mappings

2001-07-24 Thread Aapo Laakkonen

I have problem... It might be in my understanding, but here it goes...

I have these mappings:


























Then some explanation. I have fundlist action that displays all the funds,
ok. Then
when user selects one fund on the list struts executes editfund action and
gets all
needed information about that fund. Everything works correctly at this
point. Then
editfund.jsp has a form that has action mapped to updatefund action and also
has
an cancel button. If cancel button is pressed the updatefund action gets
executed,
am I right? Here is first two lines from UpdateAction class:

 if (isCancelled(request))
return (mapping.findForward("cancel"));

Then it should go back to fundlist.do action, but all what I get is HTTP 400
Bad Request error. What I am doing wrong? Or should I do something
different to get the same results? And I'm running struts on Apache Test
Environment 3.2.1 for Visual Age 3.5.3.

Thanks,
Aapo Laakkonen

-- Aapo Laakkonen, +358 (50) 33 99 682, ProjectCast Ltd, Helsinki, Finland.




Re: URL mapping

2001-07-17 Thread Aapo Laakkonen

> Of course. But with this action-forward approach, you can forward only
*.do
> URLs. Please correct me, if I am wrong.

It depends on what you specify as an extension for struts controller in your
web.xml file.




Re: URL mapping

2001-07-17 Thread Aapo Laakkonen

> > I want to be able to map a URL to certain JSPs which may or may not have
> > an action involved with them e.g map /logon to logon.jsp which also has
as
> > action also called logon also /tour to tour.jsp which has no associated
action.
> >
> > How can I do this with struts?






Re: offtopic question

2001-07-11 Thread Aapo Laakkonen

> message: transaction isolation levels not supported.
>
> That let me suppose that both MS Access and MySql jdbc drivers do not
> support yet well the rowset package.

I think that access and mysql doesn't support transactions or they do not
support
the isolation level that was requested by your application. ANSI SQL defines
4
isolation levels and if application wants to have let's say committed read
isolation
level and db doesn't support it or doens't support higher isolation levels
(e.g.
repeatable read or serializable) then they need to abort the transaction.
Access is
kind of one man db and it doesn't support transactions I think, but I'm not
sure
about MySQL, but what I can remember is that it doesn't support
transactions.




Re: Has anyone used KONA? and how diffierent is it from struts?

2001-07-11 Thread Aapo Laakkonen

> take a look at www.dbforms.org
> 
> It is built on top of struts and has tons of database support.
> I know this doesn't answer your kona question, but it is something
> to think about for database access.

Thanks... quick question:

Is dbForms intended to use as a replacement for struts or is it designed
to use along with struts? Or something else?




Re: Has anyone used KONA? and how diffierent is it from struts?

2001-07-11 Thread Aapo Laakkonen

> I am sorry if I have confused everyone.  But this is the Kona that I am
talking
> about, http://www.aki.com/kona  I guess this is another MVC frameworks
> created by aki.

Seems interesting, at least for me. In my opinion the struts framework is
too
complicated and requires too many steps to code some simple things.
I have found myself writing JSP scriptlets too often. I know that struts
fits
best on larger projects where programmers have good knowledge of java
and J2EE technologies.

I would like to know if there is someone who has done some real work with
both struts and kona. How do they compare? I think that struts has better
support for localization, but doesn't give very many tools for example for
db
access (Bring Your Own Model or something). So what do you think?




Database Access

2001-07-04 Thread Aapo Laakkonen

I'm currently using Struts connection pooling facilities from Action
classes. Now I'm
going to implement data access logic in my data access components, but I'm
not sure
that how can I still use struts based connection pooling. Do I have to
transfer
DataSource object or servlet ocject from Action to data access component,
or can I get that directly from my data access component? I'm not using EJBs
right now, because I'm still learning the basics.

Can someone give me an example how to coordinate moving data from dao to
value objects. Some class examples would be great. Or how in general is the
best way to implement database interactions in struts (not using ejbs)? I
know
that it may depend on what you are doing, but is there some common pattern
that can be used?

-- Aapo Laakkonen, +358 (50) 33 99 682, ProjectCast Ltd, Helsinki, Finland.




RE: Custom tag question

2001-07-01 Thread Aapo Laakkonen

>>> Is it possible to have custom tags that can have both child elements and
>>> attributes? I mean that in some cases it would be more elegant to use
>>> elements instead of attributes:
>>
>> If your question is just - "Is it possible"?  Then the answer is Yes.
>> However, if you are asking for the current tags to implement
>> this, that is a totally separate question.  That would take some re-work.
>
> Hey, good idea: +1 :P But I imagine it'd have to me more like:
>
> 
>property="firstname"/>
>property="firstname"/>
> 

Is this necessary? I think that child elements should be able to adapt the
namespace from the mother element. Here is couple more examples, what I
meant
about this custom tag question:






or






or maybe even like this


firstname
lastname


or


un.firstname
un.lastname


or


firstname
lastname


I think that those who design custom tags for struts should consider
on how to make those custom tags most flexible and then implement them.
Everything as attributes on every custom tag is not always the best way
to do it. Reusable tags is also one thing to consider. ex. there might
be a need to define something like  tag that can be used with
several elements:


text.welcome



Logon


Kind Regards
Aapo Laakkonen





Custom tag question

2001-06-29 Thread Aapo Laakkonen

Is it possible to have custom tags that can have both child elements and
attributes? I mean that in some cases it would be more elegant to use
elements instead of attributes:






or:


text.welcome




instead of this:



Or it would be even more flexible if you could use both of them (at the same
time).
This was just an example and at least I have found many places where I'd
like to
use child elements instead of attributes.

Or is it just me who thinks that those runtime expressions are pretty ugly?

-- Aapo Laakkonen, +358 (50) 33 99 682, ProjectCast Ltd, Helsinki, Finland.