Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[dsdp-tcf-dev] [Bug 273078] New: [tcf][api] Separate TCF Core from TCF Eclipse Integration

https://bugs.eclipse.org/bugs/show_bug.cgi?id=273078  
Product/Component: Target Management / TCF
           Summary: [tcf][api] Separate TCF Core from TCF Eclipse
                    Integration
           Product: Target Management
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P3
         Component: TCF
        AssignedTo: dsdp.tm.tcf-inbox@xxxxxxxxxxx
        ReportedBy: martin.oberhuber@xxxxxxxxxxxxx
         QAContact: martin.oberhuber@xxxxxxxxxxxxx


The core TCF Java API and Implementation is capable of running stand-alone
without Eclipse. On top of that core implementation, there is a thin layer for
adapting to Eclipse.

I'd like to propose separating the Eclipse adaption layer into a separate
bundle, and treating the core TCF bundle as a plain Java library (with OSGi
Manifest markup). We'd have two separate bundles:
   org.eclipse.tm.tcf          -- the core plain Java TCF implementation
   org.eclipse.tm.tcf.eclipse  -- the Eclipse adaption layer
I think this has several advantages:

1. By means of OSGi specification of execution environment and classpath
   setup, it becomes impossible to accidentally introduce Eclipse dependencies
   into what should be plain Java.

2. Using TCF-core in a plain Java App is much cleaner without Eclipse stuff.

3. In addition to an Eclipse adaption layer, there could also be a plain OSGi
   / Equinox adaption layer which uses declarative services instead of
   extension points.

4. Having a separate Eclipse adaption layer allows fully utilizing Eclipse 
   concepts such as e.g. a dedicated extension point for registering Java
   based services lazily -- without jeopardizing the plain Java implementation.

Doing the actual split seems like a fairly straightforward refactoring which we
are ready to make. The only API change would be that Eclpise clients should
"require-bundle" org.eclpise.tm.tcf.eclipse rather than tm.tcf.

What do others think about this approach?


-- 
Configure bugmail: https://bugs.eclipse.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.


Back to the top