Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 136985

Summary: Need external APIs for Caspian for execution internals
Product: z_Archived Reporter: Kevin Mooney <kmooney>
Component: TPTPAssignee: Samson Wai <samwai>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P1 CC: jkubasta, jptoomey, kdsiefke, nevicosi, paulslau
Version: unspecifiedKeywords: plan
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard: closed460
Attachments:
Description Flags
Patch #1
none
Patch #1 jar file none

Description Kevin Mooney CLA 2006-04-17 10:29:42 EDT
The following are used by a consuming product and need external equivalents:

   org.eclipse.hyades.internal.execution.local.common.BinaryCustomCommand
   org.eclipse.hyades.internal.execution.loca.control.InactiveAgentException
   org.eclipse.hyades.internal.execution.file.FileServiceConstants
   org.eclipse.hyades.internal.execution.local.ManageFileCommand
   org.eclipse.hyades.internal.execution.local.Message
   org.eclipse.hyades.internal.execution.local.AgentControllerUnavailableException
   org.eclipse.hyades.internal.execution.local.Connection
   org.eclipse.hyades.internal.execution.local.ConnectionImpl
   org.eclipse.hyades.internal.execution.local.NodeFactory

   org.eclipse.hyades.internal.execution.local.control.AgentListener

   org.eclipse.hyades.internal.execution.local.common.CommandElement
   org.eclipse.hyades.internal.execution.local.common.CustomCommand
   org.eclipse.hyades.internal.execution.local.control.Agent

   org.eclipse.hyades.internal.execution.local.control.InactiveProcessException
Comment 1 Kent D Siefkes CLA 2006-05-15 10:33:11 EDT
Assigning these to 4.3 as the appropriate release to deal with this API work.
Comment 2 Kent D Siefkes CLA 2006-11-06 09:37:23 EST
Deferring to 4.4, which is the next release the consuming product that needs these APIs will adopt.
Comment 3 Kent D Siefkes CLA 2007-01-16 12:13:17 EST
Reassigning to platform execution framework component for this work to be investigated for 4.4.
Comment 4 Kent D Siefkes CLA 2007-01-16 12:27:31 EST
I forgot to add the note that a P2 priority should be considered for 4.4 since requiring consumers to perpetually incur the risk of consuming internal TPTP api without reasonable alternatives isn't a good situation.
Comment 5 jkubasta CLA 2007-02-07 22:36:51 EST
changing to P1
Comment 6 Guru Nagarajan CLA 2007-02-12 15:34:16 EST
Joanna, the API's in context pertain to the old RAC Execution framework API's. I have no idea of that code base. Pls assign it to a member of your team. 
Comment 7 Joe Toomey CLA 2007-02-12 16:17:41 EST
Joanna,

I should be able to contain this in 4.4 i2.  Feel free to assign it to me.

Thanks,
--Joe
Comment 8 Samson Wai CLA 2007-02-13 10:06:48 EST
Sizing of 4PW is estimated as this is considered as new API.
Comment 9 Joe Toomey CLA 2007-02-13 11:40:57 EST
This is not new API.  It's existing, internal API that has existed for many releases (most since Hyades 1.0), and is required by our consuming products.  If our consumers follow the same rules we follow ourselves, then they should discontinue using TPTP features that require the use of internal API.  For the execution area, that is nearly all of TPTP.  This request is not for new design or new API.  It is to publically expose existing, hardened and tested API that has been unchanged at an API level for years.

I'd like to have a meeting to discuss the apparent reluctance on the part of TPTP to treat our own consumers the same way that we demand to be treated ourselves.  Joanna, can we please queue this up for next week's platform call?
Comment 10 Samson Wai CLA 2007-02-13 12:33:34 EST
Hi Joe. I think we have to keep those "internal" APIs around for backward compatibility purpose. What we can do is to deprecate and duplicate all the existing "internal" interfaces and classes and copy them to a "public" package. We "may" be able to delegate all the method implementations to the new "public" classes but I am not sure how to handle those products who are still implementing the old "internal" interfaces. This may or may not break their code.
Comment 11 Joe Toomey CLA 2007-02-13 12:38:45 EST
Hi Samson.

I completely agree.  I think the right way to expose these APIs is to mirror them in a public package.  We should then delegate the implementation of the internal classes back to the new public ones (so we don't duplicate the code) and mark the internal classes as deprecated but not remove them until TPTP 4.5.
Comment 12 Samson Wai CLA 2007-03-06 11:40:22 EST
Adjusted sizing.
Comment 13 Samson Wai CLA 2007-03-07 15:13:53 EST
Created attachment 60396 [details]
Patch #1
Comment 14 Samson Wai CLA 2007-03-07 15:14:23 EST
Created attachment 60397 [details]
Patch #1 jar file
Comment 15 Samson Wai CLA 2007-03-07 15:25:04 EST
I have ended up duplicating the classes instead of delegating them. The reason is that there are some internal interface methods which expect internal parameter classes as well as return internal class return codes.

One common example is the "addAgentListener()" method of the "Agent" interface. This expects the internal "AgentListener" interface. If our new public "AgentImpl" class were to implement this interface we have to grab in also the internal "AgentListener" interface - which is no good. Since we cannot break existing implementation of these interfaces we have no choice but duplicating these classes.

Hi Kevin, Joe. Do you guys have an even better way of fixing this? Otherwise, can you guys try out this Patch #1 jar to see if there are still missing classes/interfaces required? The classes are now located under the same package name without the "internal" part.
Comment 16 Samson Wai CLA 2007-04-09 10:04:05 EDT
Fixes checked into CVS 2007/04/09 10:03 EDT.
- new directory "src-local-public" with enclosing classes and interfaces
- updated file ".classpath"
- updated file "build.properties"
Comment 17 Samson Wai CLA 2007-06-11 10:25:05 EDT
*** Bug 121649 has been marked as a duplicate of this bug. ***
Comment 18 Paul Slauenwhite CLA 2009-06-30 12:06:15 EDT
As of TPTP 4.6.0, TPTP is in maintenance mode and focusing on improving quality by resolving relevant enhancements/defects and increasing test coverage through test creation, automation, Build Verification Tests (BVTs), and expanded run-time execution. As part of the TPTP Bugzilla housecleaning process (see http://wiki.eclipse.org/Bugzilla_Housecleaning_Processes), this enhancement/defect is verified/closed by the Project Lead since this enhancement/defect has been resolved and unverified for more than 1 year and considered to be fixed. If this enhancement/defect is still unresolved and reproducible in the latest TPTP release (http://www.eclipse.org/tptp/home/downloads/), please re-open.