= Project: Component Registry = The Component Registry stores CMDI metadata components and profiles and offers a service to list and retrieve them. The !BrowserGui is a web application displaying available components in the component registry in the correct context: application domain, creator, creation date, version, etc. The registry offers a hierarchical structure for browsing the components. The Component Registry has means to keep itself coherent and consistent: check all offered components and keep an administration of the added and removed components. All components get a unique identifier wherewith other applications can identify it to the registry. Components and profiles are specified and stored in a format specified by the [source:metadata/trunk/toolkit/general-component-schema.xsd general component schema]. The registry offers profile schema's in the XSD format, which get generated from the profile specifications on the fly using the [source:metadata/trunk/toolkit/xslt/comp2schema-v2/comp2schema.xsl comp2schema] XSLT. ---- == Subpages == * [[ComponentRegistryRest|REST service]] describes the Component Registry rest service * [[ComponentBrowserGui|BrowserGui]] describes the Component Registry Flex UI for browsing and editing * To get started working on the Flex code, please read [[ComponentBrowserGui#DevelopinginFlashBuilder|these instructions]]. * [[ComponentRegistryAndEditor/ManagingGroups|ManagingGroups]] describes how to manage user groups == Contents == [[PageOutline(1-3, , inline)]] ---- == People == * Project owner: Twan Goosen * Developer: George Georgovassilis * Developer: Olha Shkaravska People who have worked on the Component Registry and Editor in the past: * Patrick Duin (original developer) * Jean-Charles Ferrières ---- == Getting code == The source is available from the Clarin SVN repository ([source:/ComponentRegistry/trunk ComponentRegistry/trunk]). ---- == System Requirements == To serve: * Java 1.6 * Tomcat 6 * PostgreSQL server To run the Flex client: * Web browser * Adobe Flash Player To build: * Java 1.6 * Maven 2 * Flex SDK 3.6 ---- == Development process == * '''Feature implementations''' and '''fixes''' are assigned to [/roadmap milestones]; one milestone per minor version * '''Features''' are decided on by MPI-PL (primary contacts: Daan Broeder, Dieter van Uytvanck) in consultation with the taskforces (see [http://www.clarin.eu/sites/default/files/cmdi-governance-dvu.pdf this presentation]) and the CLARIN development community (mailing list: [mailto:dev@lists.clarin.eu]) * '''Issues''' get reported through [mailto:cmdi@clarin.eu] (as mentioned [http://www.clarin.eu/content/component-metadata here]) * Active '''development''' happens in [source:ComponentRegistry/trunk trunk] * As soon as the items on the version milestone have been reached, a '''branch''' is created (e.g. 1.15.0) and minor version number in trunk is bumped * The branched version gets deployed to a '''testing''' server (lux16) and is tested internally at MPI-PL (by Corpus Management) according to a test plan. For this, create a testing ticket on the MPI TRAC. * Once testing has completed successfully, the new version gets deployed to the '''production''' server (catalog.clarin.eu, see [[ServerConfig]] for info and contacts). For this, create a deployment ticket on the MPI TRAC. * The deployed version gets '''tagged''' * '''Development''' for the next minor version continues in the trunk * '''Maintenance''' releases may be done to the current production branch (leading to e.g. 1.15.1) ---- == Milestones and Planning == There are 3 milestones to go: * [[https://trac.clarin.eu/milestone/ComponentRegistry-1.14|ComponentRegistry-1.14]], due the end of July 2014. In this release the group management and concurrent-service issues must be fixed (see the [[https://trac.clarin.eu/query?status=assigned&status=new&status=accepted&status=reopened&group=status&milestone=ComponentRegistry-1.14|tickets]]). * [[https://trac.clarin.eu/milestone/ComponentRegistry-1.15|ComponentRegistry-1.15]], due the end of September 2014. In this release support of public visibility of development ('private') components must be fixed (see the [[https://trac.clarin.eu/query?status=assigned&status=new&status=accepted&status=reopened&group=status&milestone=ComponentRegistry-1.15|tickets]]). * [[https://trac.clarin.eu/milestone/ComponentRegistry-1.16|ComponentRegistry-1.16]], due the end of December 2014, depending on CMDI 1.2 readiness. On top of adjusting to CMDI 1.2, it consists of a number of [[https://trac.clarin.eu/query?status=assigned&status=new&status=accepted&status=reopened&group=status&milestone=ComponentRegistry-1.16|tickets]] to fix, under which the most critical are [[https://trac.clarin.eu/ticket/142|Component and profile versioning/deprecation]] and [[https://trac.clarin.eu/ticket/157|adding of persistent_id to authorization part of SHHAA configuration]]. ---- == Building and Deploying == For specific information about building and deploying the separate modules, see their respective pages: * [[ComponentRegistryRest#BuildingandDeploying|Building and deploying the REST service]] * [[ComponentBrowserGui#BuildingandDeploying|Building and deploying the Flex UI]] === Building === There is a modular Maven project ([source:ComponentRegistry/trunk/pom.xml pom]) that contains both the REST service and the Flex UI. === Deployment === To deploy the REST service including the Flex UI and its HTML wrapper, deploy the build output (WAR file) of the REST service to a Tomcat instance. For details, see [[ComponentRegistryRest#Deploying|deploying Component Registry REST service]]. ==== Currently Deployed Locations ==== * Production: [http://catalog.clarin.eu/ds/ComponentRegistry/rest/application.wadl http://catalog.clarin.eu/ds/ComponentRegistry/rest/] * Testing: [http://lux16.mpi.nl/ds/ComponentRegistry/rest/application.wadl http://lux16.mpi.nl/ds/ComponentRegistry/rest/] (MPI internal) === Dependencies === Internal dependency: the REST service depends on the Flex UI because it contains an html wrapper for the SWF. External dependencies: see [[ComponentRegistryRest#Dependencies|REST service dependencies]]. The Component Registry as a whole also depends on the [source:/metadata/trunk/toolkit metadata toolkit], specifically the [source:metadata/trunk/toolkit/general-component-schema.xsd general component schema] and the [source:metadata/trunk/toolkit/xslt/comp2schema-v2/comp2schema.xsl comp2schema] XSLT. == Management == === Administration interface === An administration interface that allows for inspection and modification of all public and private components is available at the path ''/admin''. E.g. for production: [http://catalog.clarin.eu/ds/ComponentRegistry/admin]]. Which accounts have administration rights is configured in the context parameter ''eu.clarin.cmdi.componentregistry.adminUsers''. === Managing user groups === As of version 1.14.0 of the Component Registry, group functionality is available. Groups can be managed through a JMX interface as described in [[ComponentRegistryAndEditor/ManagingGroups]]. ---- == Design == For design details of the modules of this project, see their respective pages: * [[ComponentRegistryRest#Design|REST service design]] * [[ComponentBrowserGui#Design|Flex UI design]] There is a description of the [[ComponentRegistryArchitecture|high level architecture]] (picture below). [[Image(wiki:ComponentRegistryArchitecture:ComponentRegistryHighLevel.png)]] ---- == Tickets == List of all '''open''' tickets for this project: [[TicketQuery(status=accepted|assigned|new|reopened), component=ComponentRegistry, order=priority, format=table, col=summary|priority|owner|milestone)]] ---- == History == The Component Registry has been developed as part of the CLARIN project. People who have worked on this project include (in chronological order) '''Patrick Duin''' (original author), '''Twan Goosen''', '''Jean-Charles Ferrières''', '''Olha Shkaravska''' and '''George Georgovassilis''' The original implementation of the backend (REST service) was using file system storage for the users and their registries. As of [source:ComponentRegistry/tags/ComponentRegistry-1.8 ComponentRegistry-1.8] this was replaced by a database based implementation. The code still reflects the original, more hierarchical storage model (e.g. a registry per user even though all components are stored in the same table). For a detailed '''version history''', see the [source:ComponentRegistry/trunk/CHANGES changelog]. === Historical pages === * [[http://trac.clarin.eu/wiki/ComponentRegistry| Some early designs]]