Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[corona-dev] Startup configuration of Corona client

 

From discussion about startup configuration of Corona client.

To follow the full discussion, read it from the bottom.

 

 


From: Kaczmarek, Pawel
Sent: Friday, March 02, 2007

The client behaves very strange during startup. Even if you run a JUnit test, the system tries to connect to server.

I though that the package o.e.c.container is responsible for basic operations on container, however, the Activator tries to establish remote connections.

 

 


From: O'Flynn, Dennis
Sent: Friday, March 02, 2007 2:21 PM

 

IMO: The issue about including the method startClientEnvironment() and class ProjectContainerProxy in both client/server distributions is not an issue.  We are only adding 20K to the server distribution.  The value of keeping code better organized by functionality is greater than the 20K overhead.

 

 


From: Kaczmarek, Pawel
Sent: Friday, March 02, 2007 4:50 AM

 

startClientEnvironment() is called from Activator of org.eclipse.corona.container, so the code goes also to the server part. The method uses Corona.getInstance().getSystemURL() and it gets localhost:3000 as connection destination.

I'm not sure, but the bug can be repaired if startClientEnvironmnet is changed without any large refactoring. The client always tries to connect to localhost, which is incorrect of course.

 

ProjectContainerProxy is in bundle org.eclipse.corona.container.project, so it is included in the server part.

 

In fact nearly all client specific code is in the plugin o.e.c.container.project.ui. It is a point of potential refactorization to divide the plugin into two. There are also relatively small and frozen plugins o.e.c.client.* that deal with event handling.

 

preferences.ini is used by the class Corona in bundle o.e.c, so it configures the behavior of the whole application.

 


From: O'Flynn, Dennis
Sent: Thursday, March 01, 2007 5:01 PM
I am beginning to wonder if some of our problem may be due to our “kick starting” bundles automatically.

 


From: Kaczmarek, Pawel
Sent: Thursday, March 01, 2007 9:00 AM

 

I think the client will always fail in this configuration.

It seems that a larger refactoring is necessary:

  • the method startClientEnvironment should be placed in client specific code and use preferences setting that were made in Corona preferences

[O'Flynn, Dennis] startClientEnvironment() is already in client specific code.  It is only called if corona.type=client

 

dialog (probably o.e.c.container.project.ui plugin)

    • if server URL is not set, no "fetch" is made.
  • other methods start(stop)ClientEnvironment should also be moved

[O'Flynn, Dennis] why?  The service reference to the container manager does need to be unregistered.

 

  • ProjectContainerProxy should be moved to a client plugin (the class does not fit to server (common) part. In fact the class is referenced mainly in UI plugin.

[O'Flynn, Dennis] Why?  It only is used IFF Corona is used in a client environment.  If it does get moved, where?  container.project.ui?

  • ? Do we need preferences.ini file?

[O'Flynn, Dennis] who uses it?

 

Pawel

 

 


From: O'Flynn, Dennis
Sent: Thursday, March 01, 2007 2:56 PM

 

The SystemContainer should be fetched as soon as possible once a valid SystemURL is available.

 

We do have several scenarios that must be handled:

  1. New client that has not yet been configured.
  2. Existing client that has been configured, but the SystemURL is not valid or server not available
  3. Existing client that has been configured and the SystemURL is valid and serer is available.

 

Any ideas?

 

BTW – we (Joel / Jim / Glenn / Dennis) are in a meeting from 9:00-10:00 AM EST.

 


From: O'Flynn, Dennis
Sent: Thursday, March 01, 2007 8:41 AM

 

I concur with Pawel’s find of org.eclipse.corona.container.Activator:startClientEnvironment()

* The intent of this code was to pre-fetch the SystemContainer

* However, if the client has not been properly configured, this will fail.

 


From: Kaczmarek, Pawel
Sent: Thursday, March 01, 2007 7:41 AM

 

  It is probable that the method startClientEnvironment in org.eclipse.corona.container.Activator is the reason of the problem during startup. It does not, however, explain why Corona also fails if server configuration is changed in Corona preferences dialog.

 

  The method is invoked when client starts and it does something like this:

...

String server = Corona.getInstance().getSystemURL();

ServiceConnectionParameters scp = new ServiceConnectionParameters(server,

...

  The "server" is set to: http://localhost:3000

  Then the method tries to connect to the server.

 

  Corona.getInstance().getSystemURL() returns systemURL that has been set in the constructor of Corona using plugin preferences.ini. In the file, in turn, system.url is set to localhost. systemURL can not be set to user-specific value, because ui plugins depend on corona plugin, so the later is unaware of any ui setting that have been made.

 


From: Kalka, Edyta
Sent: Thursday, March 01, 2007 1:23 PM
Subject: Test results
Importance: High

 

First tested configuration:

-        server running on Pawel’s machine, client running on my machine:

when trying to connect to server: project container explorer shows exception thrown from listContainerUris method; after detailed debugging such exception is found: org.apache.axis2.AxisFault: no protocol: /ContextContainer/services/ContextContainerManager; nested exception is:

    java.net.MalformedURLException: no protocol: /ContextContainer/services/ContextContainerManager; nested exception is:

    org.apache.axis2.AxisFault: no protocol: /ContextContainer/services/ContextContainerManager; nested exception is:

    java.net.MalformedURLException: no protocol: /ContextContainer/services/ContextContainerManager

 

-        small test configuration change: starting server also on my machine; again starting client and connecting to Pawel’s server:

project containers are listed, can be opened etc. – in other words looks like working (but why my server is needed when connecting to Pawel’s server ???)

 

Second tested configuration:

-        server is running on my machine, client running on Pawel’s machine (no server on Pawel’s machine):

situation the same as in first configuration meaning: project container explorer shows exception thrown from listContainerUris method

 

-        after starting server on Pawel’s machine:

his client can connect to my server, project container are listed – works (but question is similar as in first configuration)

 

Third “tested configuration”:

-        everything is set up the same as in first configuration but I commented (removed) inside preferences.ini (from org.eclipse.corona plugin) such line: system.url="">

now no matter if server is running on my machine or not running – project container explorer shows exception thrown from listContainerUris method when trying to connect to remote server

 

Fourth tested configuration:

-        server is running on my machine, client is running on Piotr’s machine (but with modified client launch configuration – Piotr added all corona plugins – both server and client plugins to client launch config):

client connects to remote server, project containers are listed etc. – works.

 

-        after changing Piotr’s client launch configuration to theoreticaly “valid” one (with only client plugins added - launch configurations tested: Corona WB Client, Corona WB Client User_A with Jackrabbit only):

don’t work - project container explorer shows exception thrown from listContainerUris method

 

Edyta


The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it.

Back to the top