Re: Removing definitions

2008-04-18 Thread Simon Laws
On Mon, Mar 31, 2008 at 1:13 PM, Venkata Krishnan [EMAIL PROTECTED]
wrote:

 Hi Ramkumar,

 Welcome to Tuscany!  Yes, this is a good simple start.  Please go ahead
 and
 create a JIRA for this.  Also would like to see you discuss the
 alternatives
 you have in mind for this.

 Thanks

 - Venkat


 On Mon, Mar 31, 2008 at 3:58 PM, Ramkumar R [EMAIL PROTECTED] wrote:

  On 3/27/08, Greg Dritschler [EMAIL PROTECTED] wrote:
  
   
I'm not sure I'm getting the multi-threading thing, could you say a
  bit
more about it?
   
--
Jean-Sebastien
 [EMAIL PROTECTED]
   
  
   Thread 1 and thread 2 call ContributionService.contribute.  Each
   contribution contains a defintions.xml file so both threads try to add
   policy sets etc.  Since SCADefinitions uses unsynchronized ArrayLists
  this
   is exposed to failure.  SCADefinitionsUtil also has some code that
 isn't
   thread safe.
  
   Greg
  
 
  Hi, I am new to Tuscany Community and trying to catch up.  Right now
  am going through the code to get a feel of it and this threading issue
  seems
  to something simple that I can fix to try a hand with Tuscany.  Can I
  create
  a JIRA for the threading issue alone and attach a patch ?
 
  --
  Thanks  Regards,
  Ramkumar Ramalingam
 


I want to comment again on the original subject that started this thread and
which is recorded in the associated JIRA (
https://issues.apache.org/jira/browse/TUSCANY-2172), i.e. removing
definitions when contributions are removed. Two approaches for managing
contributions in a domain come to mind.

1. Keep a cache of contributions up to date w.r.t additions and deletions
and create a stream of events to modify the live runtimes as the cache
changes in terms of available composites, definitions etc.
2. Keep a cache of contributions up to date w.r.t additions and deletions
and restart the live runtimes when anything in the cache changes.
Calculating from scratch all the policies, reference/service relationships
etc.

While we did think about contribution removal operations in the old
domain/node implementation they didn't really get bottomed out as it started
to get complicated (approach 1) this was replaced with the workspace
(approach 2) so we aren't really dealing with the case where things get
removed. We simply treat the resulting domain as if it were a new domain and
recalculate everything.

Does this help at all?

Regards

Simon


Re: Removing definitions

2008-03-31 Thread Ramkumar R
On 3/27/08, Greg Dritschler [EMAIL PROTECTED] wrote:

 
  I'm not sure I'm getting the multi-threading thing, could you say a bit
  more about it?
 
  --
  Jean-Sebastien
   [EMAIL PROTECTED]
 

 Thread 1 and thread 2 call ContributionService.contribute.  Each
 contribution contains a defintions.xml file so both threads try to add
 policy sets etc.  Since SCADefinitions uses unsynchronized ArrayLists this
 is exposed to failure.  SCADefinitionsUtil also has some code that isn't
 thread safe.

 Greg


Hi, I am new to Tuscany Community and trying to catch up.  Right now
am going through the code to get a feel of it and this threading issue seems
to something simple that I can fix to try a hand with Tuscany.  Can I create
a JIRA for the threading issue alone and attach a patch ?

-- 
Thanks  Regards,
Ramkumar Ramalingam


Re: Removing definitions

2008-03-31 Thread Venkata Krishnan
Hi Ramkumar,

Welcome to Tuscany!  Yes, this is a good simple start.  Please go ahead and
create a JIRA for this.  Also would like to see you discuss the alternatives
you have in mind for this.

Thanks

- Venkat


On Mon, Mar 31, 2008 at 3:58 PM, Ramkumar R [EMAIL PROTECTED] wrote:

 On 3/27/08, Greg Dritschler [EMAIL PROTECTED] wrote:
 
  
   I'm not sure I'm getting the multi-threading thing, could you say a
 bit
   more about it?
  
   --
   Jean-Sebastien
[EMAIL PROTECTED]
  
 
  Thread 1 and thread 2 call ContributionService.contribute.  Each
  contribution contains a defintions.xml file so both threads try to add
  policy sets etc.  Since SCADefinitions uses unsynchronized ArrayLists
 this
  is exposed to failure.  SCADefinitionsUtil also has some code that isn't
  thread safe.
 
  Greg
 

 Hi, I am new to Tuscany Community and trying to catch up.  Right now
 am going through the code to get a feel of it and this threading issue
 seems
 to something simple that I can fix to try a hand with Tuscany.  Can I
 create
 a JIRA for the threading issue alone and attach a patch ?

 --
 Thanks  Regards,
 Ramkumar Ramalingam



Removing definitions

2008-03-18 Thread Greg Dritschler
Hi.  I have noticed that there doesn't seem to be a way to remove
definitions (policy sets etc) from the domain.  The specs don't explicitly
say how this would happen, but surely this can't be a one-way process (you
can add but can't delete).  I can only guess that if definitions are added
as part of a contribution, then those definitions should be removed when the
contribution is removed?  There are some interesting issues, like what if
there are other contributions using elements of those definitions.

As an aside, I've noticed that SCADefinitionsImpl doesn't synchronize the
lists of policy sets, intents, etc. that it keeps, so it is exposed to bad
things happening if multiple threads try to add definitions at the same
time.  SCADefinitionsUtil also does clear/addAll operations that need to be
made thread-safe.

Greg


Re: Removing definitions

2008-03-18 Thread Mike Edwards

Greg Dritschler wrote:

Hi.  I have noticed that there doesn't seem to be a way to remove
definitions (policy sets etc) from the domain.  The specs don't explicitly
say how this would happen, but surely this can't be a one-way process (you
can add but can't delete).  I can only guess that if definitions are added
as part of a contribution, then those definitions should be removed when the
contribution is removed?  There are some interesting issues, like what if
there are other contributions using elements of those definitions.

As an aside, I've noticed that SCADefinitionsImpl doesn't synchronize the
lists of policy sets, intents, etc. that it keeps, so it is exposed to bad
things happening if multiple threads try to add definitions at the same
time.  SCADefinitionsUtil also does clear/addAll operations that need to be
made thread-safe.

Greg



Greg,

Artifacts arrive in the domain through Contributions being added to the 
domain.  Those same contributions can be removed from the domain - and 
this causes the artifacts in the contribution to be removed from the domain.


This applies to definitions as much as it applies to composites or to 
Java class files.  It might be wise to keep some forms of definition 
separate from contributions containing executable code, so that Policy 
Sets can be changed without the need to redeploy all the contributions 
in the domain, for example.


That's how it looks from the SCA spec point of view.

You make a good point about the SCADefinitionsImpl - sounds like some 
changes are needed there to handle multi threading.



Yours,  Mike.

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



Re: Removing definitions

2008-03-18 Thread Jean-Sebastien Delfino

Mike Edwards wrote:

Greg Dritschler wrote:

Hi.  I have noticed that there doesn't seem to be a way to remove
definitions (policy sets etc) from the domain.  The specs don't 
explicitly
say how this would happen, but surely this can't be a one-way process 
(you
can add but can't delete).  I can only guess that if definitions are 
added
as part of a contribution, then those definitions should be removed 
when the

contribution is removed?  There are some interesting issues, like what if
there are other contributions using elements of those definitions.

As an aside, I've noticed that SCADefinitionsImpl doesn't synchronize the
lists of policy sets, intents, etc. that it keeps, so it is exposed to 
bad

things happening if multiple threads try to add definitions at the same
time.  SCADefinitionsUtil also does clear/addAll operations that need 
to be

made thread-safe.

Greg



Greg,

Artifacts arrive in the domain through Contributions being added to the 
domain.  Those same contributions can be removed from the domain - and 
this causes the artifacts in the contribution to be removed from the 
domain.


This applies to definitions as much as it applies to composites or to 
Java class files.  It might be wise to keep some forms of definition 
separate from contributions containing executable code, so that Policy 
Sets can be changed without the need to redeploy all the contributions 
in the domain, for example.


Or make deployment of contributions really seamless... For example a 
contribution can be a directory that the domain points to, that 
directory can contain a definitions.xml file, and we shouldn't require a 
special deployment step to tell the code that reads that definitions.xml 
   file that it has changed.


The good news is that it's how it works in Tuscany at the moment :)

The process for updating a policySet is as follows:

1. notepad c:/a-contribution/definitions.xml
2. make changes
3. save
4. restart the nodes
5. they'll get the new updated stuff


That's how it looks from the SCA spec point of view.

You make a good point about the SCADefinitionsImpl - sounds like some 
changes are needed there to handle multi threading.




I'm not sure I'm getting the multi-threading thing, could you say a bit 
more about it?


--
Jean-Sebastien

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