wiki:GROUP_RESOURCE_R0

Version 9 (modified by deyan, 16 years ago) (diff)

--

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=GROUP_RESOURCE_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|) failed
current transaction is aborted, commands ignored until end of transaction block

Analysis

(Give as much as possible of the needed information for designing and implementing the task in the following sections.)

Overview

Define a stable resource design. Explain and document what is achieved Resource is an object that can be persisted. Some of the resources can be used as frame content or a timeline. Resources can be nested in other resources (i.g. book can have nested another book (embedded book)).

Base resource model should have the following information

  • UUID
  • Target
    • Data
    • URL
  • MetaInfo
  • Comment

Resource Scope could be

  • Book
  • Local
  • Server

Types of resources (the target of the resource)

  • Text
    • Plain
    • RTF
    • HTML
  • Image
  • Audio
  • Movie
  • Book
  • Templates
  • User
  • Group

MetaInfo of the resource is:

  • The author of the resource
  • The date the resource was created
  • Version of the resource
  • The date the resource was last modified
  • Who was the last that modified the resource
  • The dimensions of the image (if the target of the resource is an image)
  • etc.

Operations over a resource:

  • The resource can be created.
  • The resource can be modified (in a separate window).
  • The resource can be deleted.
  • The resource can be persisted.
  • The resource can be imported(exported) to a server.
  • The resource can be previewed (in a separate window).

Resource Manager manages:

  • Resource Versioning
  • Resource Security
  • Resource save/load

Task requirements

  • Define a way to refer (access) resources
    • The resource reference should be like UID
    • The resource reference should allow finding the resource even if it is not loaded yet (location)
    • The reference mechanism should handle the case when the resource is not available (for example - server not available)
  • Define methods for
    • Checking if a resource is available (this should be different from get method)
      • This should update the status property
    • Getting resource location
    • Resource getting it's parent
    • Resource getting list of it's children
    • Attaching a resource
      • Ensure that this method loads only the resource, the children should be loaded by other method due to performance issues
      • Attaching a resource should be done as late as possible
    • Detaching a resource
      • Detaching the resource should be made as soon as possible (if it should not be cached for some reasons)
      • Detaching a resource should also detach attached children of this resource
    • Renaming a resource
    • Cloning a resource
  • Explain annotations
     * annotations related to Resources
      * explain ownership related with Resources and use of @Own
      * make a parallel with referencing Resources
    
  • Document the defined structure
  • Apply the defined structure for the existing resources (this may be postponed)

Task result

The result of this task is source code.

Implementation idea

The reference id can be combination of unique id and path like in operating system. Refering children and other resources will be easy (./ ../ etc)

(Add links to related tasks that could be useful or helpful.)

How to demo

(Provide instructions for demonstration of the task.)

Design

(Describe your design here.)

Implementation

(Describe and link the implementation results here (from the wiki or the repository).)

Testing

(Place the testing results here.)

Comments

(Write comments for this or later revisions here.)