Ticket #268 (closed Enhancement: fixed)

Opened 8 years ago

Last modified 8 years ago

Core: separate application layer from network layer

Reported by: jri Owned by: jri
Priority: Major 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)

Currently for every single topic and topic type accessed through the core application service the respective POST_FETCH hook is triggered. This results in a big number of unnecessary calls.

The semantic of the POST_FETCH hook should be changed to a PRE_TRANSMIT, that is the hook is triggered only when a topic (or type) actually leaves the core and is send to the client. This requires the separation of the application layer from the network layer.

Change History

comment:1 Changed 8 years ago by jri

  • Status changed from new to accepted

comment:2 Changed 8 years ago by jri

  • Description modified (diff)

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

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

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

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

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

Core: reshape POST_FETCH hooks to PRE_SEND (#268).

PRE_SEND is triggered before objects are actually send to the client (rather than each time they are accessed through the core service).

2 changed signatures:

old: void postFetchTopicHook(Topic topic, ClientState? clientState, Directives directives)
new: void preSendTopicHook(Topic topic, ClientState? clientState)

old: void postFetchTopicTypeHook(TopicType? topicType, ClientState? clientState, Directives directives)
new: void preSendTopicTypeHook(TopicType? topicType, ClientState? clientState)

Further changes:

  • triggerHook() is part of public core service API
  • Directives are iterable, its entries are public

See ticket 268.

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

Webclient: fix search (#268).

Trigger PRE_SEND_TOPIC also for the search topics.

Note: triggering PRE_SEND should not be up to the plugin developer.
Possibly a JAX-RS 2.0 entity interceptor could be used instead.

See ticket 268.

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

Core: reshape POST_FETCH hooks to PRE_SEND (#268).

PRE_SEND is triggered before objects are actually send to the client (rather than each time they are accessed through the core service).

2 changed signatures:

old: void postFetchTopicHook(Topic topic, ClientState? clientState, Directives directives)
new: void preSendTopicHook(Topic topic, ClientState? clientState)

old: void postFetchTopicTypeHook(TopicType? topicType, ClientState? clientState, Directives directives)
new: void preSendTopicTypeHook(TopicType? topicType, ClientState? clientState)

Further changes:

  • triggerHook() is part of public core service API
  • Directives are iterable, its entries are public

See ticket 268.

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

Webclient: fix search (#268).

Trigger PRE_SEND_TOPIC also for the search topics.

Note: triggering PRE_SEND should not be up to the plugin developer.
Possibly a JAX-RS 2.0 entity interceptor could be used instead.

See ticket 268.

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

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

Note: See TracTickets for help on using tickets.