Jump to: navigation, search

COSMOS API Cleanup

COSMOS API Cleanup - Housecleaning

This wiki page was constructed in response to https://bugs.eclipse.org/bugs/show_bug.cgi?id=218558. In preparation for releasing COSMOS 1.0, committers are required to ensure API guidelines are met. In COSMOS there are three types of APIs:

  1. Internal - Indicated by having a package name that contains the keyword 'internal' (e.g. org.eclipse.cosmos.dc.cmdbf.services.internal)
  2. Provisional - Indicated by having the annotation '@provisional' included in the class comment
  3. Public - Any API that does not fall under (1) or (2)



COSMOS 1.0 does not plan to release any public APIs. All classes are expected to fall under (1) or (2). Provisional classes MUST be thoroughly commented. A recent (April 4th, 2008) manual code scan revealed the following plug-ins to be in violation of the guideline. Package/classes expected to be provisional are indicated by orange and expected internal APIs are indicated by red. The final verdict of what should be internal or provisional is made by the component owner.



Data Collection

Violating Plug-ins Packages/Classes Assignee Complete

org.eclipse.cosmos.common

  • org.eclipse.cosmos.common
  • org.eclipse.cosmos.common.exceptions
Hubert Leung No

org.eclipse.cosmos.dc.birt.helper
This should reside under 'data-reporting' instead of 'data-collection'

  • org.eclipse.cosmos.dc.birt.helper
Sheldon Lee-Loy No
org.eclipse.cosmos.dc.broker
  • org.eclipse.cosmos.dc.broker
    • Broker.java
    • CustomSimpleServiceGroup.java
    • IBroker.java
Hubert Leung No

org.eclipse.cosmos.dc.broker.client

  • org.eclipse.cosmos.dc.broker.client
    • Activator.java
    • BrokerClient.java
    • IBrokerClient.java
Hubert Leung No

org.eclipse.cosmos.dc.common

  • org.eclipse.cosmos.dc.common
  • org.eclipse.cosmos.dc.common.api
  • org.eclipse.cosmos.dc.common.api.impl
  • org.eclipse.cosmos.dc.common.domain
  • org.eclipse.cosmos.dc.common.registry
  • org.eclipse.cosmos.dc.common.registry.impl
  • org.eclipse.cosmos.dc.common.registry.impl
  • org.eclipse.cosmos.dc.common.spi
  • org.eclipse.cosmos.dc.common.spi.descriptor
  • org.eclipse.cosmos.dc.common.spi.impl
  • org.eclipse.cosmos.dc.runtime
  • org.eclipse.cosmos.dc.runtime.osgi
Joel Hawkins No

org.eclipse.cosmos.dc.dataManager

  • org.eclipse.cosmos.dc.dataManager
  • org.eclipse.cosmos.dc.dataManager.impl
Hubert Leung No

org.eclipse.cosmos.dc.dataManager.client

  • org.eclipse.cosmos.dc.dataManager.client
    • Activator.java
    • DataManagerClient.java
Hubert Leung No

org.eclipse.cosmos.dc.dataManager.common

  • org.eclipse.cosmos.dc.dataManager.api
  • org.eclipse.cosmos.dc.dataManager.common
  • org.eclipse.cosmos.dc.dataManager.exception
Hubert Leung No

org.eclipse.cosmos.dc.local.domain

  • org.eclipse.cosmos.dc.local.domain
Joel Hawkins No

org.eclipse.cosmos.dc.local.registry

  • org.eclipse.cosmos.dc.local.registry
Joel Hawkins No

org.eclipse.cosmos.dc.logging.datamgr (Is this necessary?)

  • org.eclipse.cosmos.dc.logging.datamgr
Hubert Leung No

org.eclipse.cosmos.dc.logging.datamgr.client

  • org.eclipse.cosmos.dc.logging.datamgr.client
Hubert Leung No

org.eclipse.cosmos.dc.logging.datamgr.common

  • org.eclipse.cosmos.dc.logging.datamgr.api
  • org.eclipse.cosmos.dc.logging.datamgr.common
Hubert Leung No

org.eclipse.cosmos.dc.logging.datamgr.web

  • org.eclipse.cosmos.dc.logging.datamgr
Hubert Leung No

org.eclipse.cosmos.dc.management.domain

  • org.eclipse.cosmos.dc.management.domain
    • IManagementDomain.java
    • ManagementDomain.java
    • ManagementDomainRegistry.java
Hubert Leung No

org.eclipse.cosmos.dc.management.domain.client

  • org.eclipse.cosmos.dc.management.domain.client
    • Activator.java
    • IManagementDomainClient.java
    • ManagementDomainClient.java
Hubert Leung No

org.eclipse.cosmos.dc.mdr

  • org.eclipse.cosmos.dc.mdr
  • org.eclipse.cosmos.dc.mdr.impl
Hubert Leung No

org.eclipse.cosmos.dc.mdr.client

  • org.eclipse.cosmos.dc.mdr.client
    • Activator.java
    • MdrClient.java
Hubert Leung No

org.eclipse.cosmos.dc.mdr.common

  • org.eclipse.cosmos.dc.mdr.api
  • org.eclipse.cosmos.dc.mdr.common
  • org.eclipse.cosmos.dc.mdr.exception
Hubert Leung No

org.eclipse.cosmos.dc.mgmt.common (Is this necessary?)

  • org.eclipse.cosmos.dc.mgmt.annotations
  • org.eclipse.cosmos.dc.mgmt.api
  • org.eclipse.cosmos.dc.mgmt.binding
  • org.eclipse.cosmos.dc.mgmt.common
  • org.eclipse.cosmos.dc.mgmt.common.util
  • org.eclipse.cosmos.dc.mgmt.osgi
Joel Hawkins No

org.eclipse.cosmos.dc.mgmt.wsdm (Is this necessary?)

  • org.eclipse.cosmos.dc.mgmt.provisional.wsdm.capabilities
  • org.eclipse.cosmos.dc.mgmt.provisional.wsdm.impl
  • org.eclipse.cosmos.dc.mgmt.provisional.wsdm.impl.info
  • org.eclipse.cosmos.dc.mgmt.provisional.wsdm.persistence
  • org.eclipse.cosmos.dc.mgmt.provisional.wsdm.util
  • org.eclipse.cosmos.dc.mgmt.serializer
  • org.eclipse.cosmos.dc.mgmt.wsdm.osgi
Joel Hawkins No

org.eclipse.cosmos.dc.remote.wsdm (Is this necessary?)

  • org.eclipse.cosmos.dc.remote.wsdm
  • org.eclipse.cosmos.dc.remote.wsdm.api
  • org.eclipse.cosmos.dc.remote.wsdm.registry
  • org.eclipse.cosmos.dc.remote.wsdm.spec
  • org.eclipse.cosmos.dc.remote.wsdm.spi
Joel Hawkins No

org.eclipse.cosmos.dc.sample.components

  • org.eclipse.cosmos.dc.sample.components
  • org.eclipse.cosmos.dc.sample.components.filter
  • org.eclipse.cosmos.dc.sample.components.persistence.sql
  • org.eclipse.cosmos.dc.sample.components.query
  • org.eclipse.cosmos.dc.sample.components.sink
  • org.eclipse.cosmos.dc.sample.components.sink.cbe
  • org.eclipse.cosmos.dc.sample.components.sink.cbe.wrapper
  • org.eclipse.cosmos.dc.sample.components.source
  • org.eclipse.cosmos.dc.sample.persistence.impl
  • org.eclipse.cosmos.dc.sample.types
Joel Hawkins No

org.eclipse.cosmos.dc.sample.configurations (Is this necessary?)

  • org.eclipse.cosmos.dc.sample.configurations
Joel Hawkins No

org.eclipse.cosmos.dc.sample.jpa (Is this necessary?)

  • org.eclipse.cosmos.dc.sample.jpa
  • org.eclipse.cosmos.dc.sample.jpa.cbe.entity
  • org.eclipse.cosmos.dc.sample.jpa.query
  • org.eclipse.cosmos.dc.sample.jpa.sink
  • org.eclipse.cosmos.dc.sample.jpa.stat.entity
  • org.eclipse.cosmos.dc.sample.jpa.wef.entity
Joel Hawkins No

org.eclipse.cosmos.dc.spec

  • org.eclipse.cosmos.dc.spec
  • org.eclipse.cosmos.dc.spec.capabilitiy
  • org.eclipse.cosmos.dc.spec.types
Joel Hawkins No

org.eclipse.cosmos.dc.stat.datamgr (Is this necessary?)

  • org.eclipse.cosmos.dc.stat.datamgr
Hubert Leung No

org.eclipse.cosmos.dc.stat.datamgr.client

  • org.eclipse.cosmos.dc.stat.datamgr.client
Hubert Leung No

org.eclipse.cosmos.dc.stat.datamgr.common

  • org.eclipse.cosmos.dc.stat.datamgr.api
  • org.eclipse.cosmos.dc.stat.datamgr.common
Hubert Leung No

org.eclipse.cosmos.dc.stat.datamgr.web

  • org.eclipse.cosmos.dc.stat.datamgr
Hubert Leung No

org.eclipse.cosmos.dc.tptp.agentcontroller

  • org.eclipse.cosmos.dc.tptp.agent
  • org.eclipse.cosmos.dc.tptp.agent.component
  • org.eclipse.cosmos.dc.tptp.agentcontroller
  • org.eclipse.cosmos.dc.tptp.agentcontroller.internal
  • org.eclipse.cosmos.dc.tptp.console
Hubert Leung No

org.eclipse.cosmos.dc.tptp.gla.components

  • org.eclipse.cosmos.dc.tptp.gla.components
  • org.eclipse.cosmos.dc.tptp.gla.components.source
  • org.eclipse.cosmos.dc.tptp.gla.components.transform
Hubert Leung No

org.eclipse.cosmos.example.mdr.web
This should reside in the 'Example' module instead of 'data-collection'

  • org.eclipse.cosmos.example.mdr.web
Hubert Leung No

Note: Remove any bundles and code related to:

  • DC assemblies
  • The old annotations

Data Visualization

Violating Plug-ins Packages/Classes Assignee Complete

org.eclipse.cosmos.dr.drs.service.handler

  • org.eclipse.cosmos.provisional.dr.drs.service.handler.cmdbf
  • org.eclipse.cosmos.provisional.dr.drs.service.handler.common
Sheldon Lee-Loy No

org.eclipse.cosmos.dr.ps.common

  • org.eclipse.cosmos.provisional.dr.ps.common
Sheldon Lee-Loy No

Note: The DV bundles are split between the data reporting and the examples/end2end directories. We need to move all required COSMOS bundles from the 'examples' module to 'data-reporting'

Management Enablement

Violating Plug-ins Packages/Classes Assignee Complete

org.eclipse.cosmos.me.dmtoolkit.common

  • org.eclipse.cosmos.me.dmtoolkit.common
  • org.eclipse.jface.snippets.viewers (was this copied from JFace?)
David Whiteman No

org.eclipse.cosmos.me.dmtoolkit.j2ee

  • org.eclipse.cosmos.me.dmtoolkit.j2ee
  • org.eclipse.cosmos.me.dmtoolkit.j2ee.delegates
  • org.eclipse.cosmos.me.dmtoolkit.j2ee.factory
  • org.eclipse.cosmos.me.dmtoolkit.j2ee.ui
  • org.eclipse.cosmos.me.dmtoolkit.j2ee.util
David Whiteman No

org.eclipse.cosmos.me.management.common

  • org.eclipse.cosmos.me.management.annotations
  • org.eclipse.cosmos.me.management.api
  • org.eclipse.cosmos.me.management.binding
  • org.eclipse.cosmos.me.management.common
  • org.eclipse.cosmos.me.management.common.info
  • org.eclipse.cosmos.me.management.common.util
  • org.eclipse.cosmos.me.management.osgi
  • org.eclipse.cosmos.me.management.web
Joel Hawkins No

org.eclipse.cosmos.me.management.wsdm

  • org.eclipse.cosmos.me.management.provisional.wsdm
  • org.eclipse.cosmos.me.management.provisional.wsdm.annotations
  • org.eclipse.cosmos.me.management.provisional.wsdm.capabilities
  • org.eclipse.cosmos.me.management.provisional.wsdm.capabilities.impl
  • org.eclipse.cosmos.me.management.provisional.wsdm.faults
  • org.eclipse.cosmos.me.management.provisional.wsdm.impl
  • org.eclipse.cosmos.me.management.provisional.wsdm.impl.info
  • org.eclipse.cosmos.me.management.provisional.wsdm.persistence
  • org.eclipse.cosmos.me.management.provisional.wsdm.util
  • org.eclipse.cosmos.me.management.provisional.wsrf.capabilities
  • org.eclipse.cosmos.me.management.provisional.wsrf.capabilities.impl
  • org.eclipse.cosmos.me.management.provisional.wsrf.faults
  • org.eclipse.cosmos.me.management.wsdm.osgi
  • org.eclipse.cosmos.me.management.wsdm.web
Joel Hawkins No

Resource Modeling

Violating Plug-ins Packages/Classes Assignee Complete

org.eclipse.cosmos.rm.sml.mdr (Is this necessary?)

  • org.eclipse.cosmos.rm.sml.mdr
  • org.eclipse.cosmos.rm.sml.mdr.impl
Hubert Leung No

org.eclipse.cosmos.rm.sml.mdr.web

  • org.eclipse.cosmos.rm.sml.mdr
  • org.eclipse.cosmos.rm.sml.mdr.impl
Hubert Leung No

Open Questions/Concerns

Harm Sluiman:

It seems the package provisional idea is being skipped and that is the most common form of provisional in Eclipse. Note TPTP introduced the concept of javadoc provisional only as a transient state where api was stable but behavior was not and testing or documentation was not complete. If you only have one provisional state, I strongly suggest you use the package variant.

Will be discussed in the next architecture call

Ruth Lee

  1. Ali, can we look into Bill's bugzilla for this as well? He talks about deprecating any bundles and code that are no longer used, so we should identify those and delete them rather than comment them. 220776
  2. Question: Looks like COSMOS does not use experimental APIs in COSMOS. What are the COSMOS guidelines for using provisional vs experimental? Eclipse Quality Guidelines


Regarding bug 220776:
>1. Deprecate any bundles and code that are no longer used.
> a. DC assemblies
> b. the "old" annotations
Addressed

>2. Re-organize the directory structure to group logically related bundles together
> a. The Example MDR bundle for OSGI is in the Examples directory but the Example MDR for the web is in the DC directory. They should reside together.
Addressed

> b. All data managers should be grouped into a single directory.
Needs more discussion

> c. The BIRT helper bundle belongs in the data reporting (not in DC)
Addressed

> d. All the CMDBf components (CMDBf services, tooling, registration example, and the MDRs) belong in the same directory
Needs more discussion

> e. The DV bundles are split between the data reporting and the examples/end2end directories
Addressed

> f. We have a common tests directory with subdirectories for each subproject. Should we move each of these subdirectories into a tests directory under their respective subprojects?
Needs more discussion