Hi All,

Last night, I finally got the Core and Engine working after the refactoring,
although a lot of work remain.

To support multiple thread processing, I did the following changes:

1) Remove all singleton instances except the TelluriumFramework class
2) Use an Assemble class to wire the framework together
3) Create a new session if no one exists
4) Store the session to a threadlocal variable so that each thread has its
own session
5) Session includes a RuntimeEnvironment for users to change the behavior of
the framework and a lookup service to get class instance, similar to a bean
factory in spring.
6) Create an interface DslContract to hold all Tellurium APIs
7) Create two implementations, one is the SeleniumWrapper class, which
dynamically creates runtime locators and call Selenium APIs
8) The other one is the TelluriumApi class, which use UID-based Engine APIs,
no runtime locators
9) The DslContext class will delegate the call to either TelluriumAPI or
SeleniumWrapper dependent on if you use Tellurium new Engine or not
1) The following call is used to switch between Tellurium new Engine and
Selenium Wrapper:

     useTelluriumEngine(boolean isUse)

In the DslContext class, you have two more handy methods:
    enableTelluriumEngine();
    disableTelluriumEngine();

>From a user's perspective, only couple cache related methods are removed
such as isUseCache() because the new Engine must uses the caching capability
and it should not be fine tuned. Others remain the same and thus almost no
impact to users.

I will continue working on the refactoring and merge back to trunk after all
are done.

Thanks,

Jian

-- 
You received this message because you are subscribed to the Google Groups 
"tellurium-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/tellurium-users?hl=en.

Reply via email to