Ticket #281 (closed Task: fixed)

Opened 8 years ago

Last modified 8 years ago

Remove internal methods from core service API

Reported by: jri Owned by:
Priority: Minor Milestone: Release 4.1
Component: DeepaMehta Standard Distribution Version: 4.0.11
Keywords: Cc: dgf
Complexity: 5 Area: Application Framework / API
Module: deepamehta-core

Description (last modified by jri) (diff)

These core service methods should not be exposed to the plugin developer:

registerPlugin()
unregisterPlugin()
getPlugin()
runPluginMigration()
checkAllPluginsReady()
triggerHook() -- obsolete anyway

addListener()
removeListener()
fireEvent()
deliverEvent()

setupDB()
shutdown()

This could be done by splitting the core.service.Plugin class into 2 parts:

  • one public part (core.service.Plugin) that acts as OSGi activator and OSGi event handler
  • one private part (core.impl.service.PluginImpl?) that has "friend" access to the core service implementation.

Change History

comment:1 Changed 8 years ago by jri

  • Description modified (diff)
  • Area set to Application Framework / API
  • Cc dgf added
  • Module set to deepamehta-core
  • Priority changed from Major to Minor
  • Complexity changed from 3 to 5
  • Milestone set to Release 4.1
  • Type changed from Defect to Task

comment:2 Changed 8 years ago by Jörg Richter

Core modularization and repackaging (#281).

Modularization:

  • move migration management functions to new class

core.impl.service.MigrationManager?

  • move plugin management functions to new class

core.impl.service.PluginManager?

Hide internals:

  • remove 5 methods from DeepaMehta core service API:

registerPlugin()
unregisterPlugin()
isPluginRegistered()
checkAllPluginsActive()
runPluginMigration()

  • move plugin internals to new class

core.impl.service.PluginImpl?

  • move 3 classes from core.service to core.impl.service:

WebPublishingService?
WebResources
RestResource?

Furthermore:

  • rename OSGi core activator from core.osgi.Activator to

core.osgi.CoreActivator?

  • rename and move plugin base class from core.service.Plugin to

core.osgi.PluginActivator?

IMPORTANT for developers: you must extend your plugin from this new base class.

Plugins not yet adapted.

See ticket 281.

comment:3 Changed 8 years ago by Jörg Richter

Core modularization: adapt plugins (#281).

7 plugin implementation methods are no longer public:

getUri()
getName()
getInfo()
getConfigProperty()
loadClass()
getMigrationClassName()
setMigrationNr()

This branch is fully functional.

Stripping down the public core service API is pending.

See ticket 281.

comment:4 Changed 8 years ago by Jörg Richter

  • Status changed from new to closed
  • Resolution set to fixed

Core: strip down public core service API (#281).

remove 5 internal methods from public DeepaMehta core service API

addListener()
removeListener()
deliverEvent()

setupDB()
shutdown()

This branch is fully functional.

Close ticket 281.

comment:5 Changed 8 years ago by Jörg Richter

Core modularization and repackaging (#281).

Modularization:

  • move migration management functions to new class

core.impl.service.MigrationManager?

  • move plugin management functions to new class

core.impl.service.PluginManager?

Hide internals:

  • remove 5 methods from DeepaMehta core service API:

registerPlugin()
unregisterPlugin()
isPluginRegistered()
checkAllPluginsActive()
runPluginMigration()

  • move plugin internals to new class

core.impl.service.PluginImpl?

  • move 3 classes from core.service to core.impl.service:

WebPublishingService?
WebResources
RestResource?

Furthermore:

  • rename OSGi core activator from core.osgi.Activator to

core.osgi.CoreActivator?

  • rename and move plugin base class from core.service.Plugin to

core.osgi.PluginActivator?

IMPORTANT for developers: you must extend your plugin from this new base class.

Plugins not yet adapted.

See ticket 281.

comment:6 Changed 8 years ago by Jörg Richter

Core modularization: adapt plugins (#281).

7 plugin implementation methods are no longer public:

getUri()
getName()
getInfo()
getConfigProperty()
loadClass()
getMigrationClassName()
setMigrationNr()

This branch is fully functional.

Stripping down the public core service API is pending.

See ticket 281.

comment:7 Changed 8 years ago by Jörg Richter

Core: strip down public core service API (#281).

remove 5 internal methods from public DeepaMehta core service API

addListener()
removeListener()
deliverEvent()

setupDB()
shutdown()

This branch is fully functional.

Close ticket 281.

comment:8 Changed 8 years ago by Jörg Richter

Core modularization and repackaging (#281).

Modularization:

  • move migration management functions to new class

core.impl.service.MigrationManager?

  • move plugin management functions to new class

core.impl.service.PluginManager?

Hide internals:

  • remove 5 methods from DeepaMehta core service API:

registerPlugin()
unregisterPlugin()
isPluginRegistered()
checkAllPluginsActive()
runPluginMigration()

  • move plugin internals to new class

core.impl.service.PluginImpl?

  • move 3 classes from core.service to core.impl.service:

WebPublishingService?
WebResources
RestResource?

Furthermore:

  • rename OSGi core activator from core.osgi.Activator to

core.osgi.CoreActivator?

  • rename and move plugin base class from core.service.Plugin to

core.osgi.PluginActivator?

IMPORTANT for developers: you must extend your plugin from this new base class.

Plugins not yet adapted.

See ticket 281.

comment:9 Changed 8 years ago by Jörg Richter

Core modularization: adapt plugins (#281).

7 plugin implementation methods are no longer public:

getUri()
getName()
getInfo()
getConfigProperty()
loadClass()
getMigrationClassName()
setMigrationNr()

This branch is fully functional.

Stripping down the public core service API is pending.

See ticket 281.

comment:10 Changed 8 years ago by Jörg Richter

Core: strip down public core service API (#281).

remove 5 internal methods from public DeepaMehta core service API

addListener()
removeListener()
deliverEvent()

setupDB()
shutdown()

This branch is fully functional.

Close ticket 281.

Note: See TracTickets for help on using tickets.