Mercurial > dive4elements > framework
view artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java @ 104:26bfff409dd3
Added interfaces and engines used in concrete artifact packages.
artifacts/trunk@1289 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 03 Feb 2011 18:00:41 +0000 |
parents | 933bbc9fc11f |
children | 82809c5992e1 |
line wrap: on
line source
/* * Copyright (c) 2010 by Intevation GmbH * * This program is free software under the LGPL (>=v2.1) * Read the file LGPL.txt coming with the software for details * or visit http://www.gnu.org/licenses/ if it does not exist. */ package de.intevation.artifactdatabase.rest; import de.intevation.artifacts.ArtifactDatabase; import java.util.concurrent.ConcurrentMap; import org.restlet.Application; import org.restlet.Context; import org.restlet.Restlet; import org.restlet.routing.Router; /** * This is the core REST application that binds the serveral resources * used to manage the artifact database to the HTTP server provided * by the Restlet framework. * * @author <a href="mailto:sascha.teichmann@intevation.de">Sascha L. Teichmann</a> */ public class RestApp extends Application { /** * The central artifact database instance to work with. */ protected ArtifactDatabase database; /** * Default constructor */ public RestApp() { } /** * Constructor to create REST appliction bound to a specific * artifact database. * * @param database The artifact database to be used. */ public RestApp(ArtifactDatabase database) { this.database = database; } /** * Overwrites the createRoot() method of Application to * build the resource tree to form the exposed server URLs. * * @return The root of the URL tree exposed by the HTTP server. */ @Override public Restlet createRoot() { Context context = getContext(); ConcurrentMap map = context.getAttributes(); map.put("database", database); Router router = new Router(context); router.attach(ServicesResource.PATH, ServicesResource.class); router.attach(ServiceResource.PATH, ServiceResource.class); router.attach(FactoriesResource.PATH, FactoriesResource.class); router.attach(CreateResource.PATH, CreateResource.class); router.attach(ArtifactResource.PATH, ArtifactResource.class); router.attach(ArtifactOutResource.PATH, ArtifactOutResource.class); router.attach(ExportResource.PATH, ExportResource.class); router.attach(ImportResource.PATH, ImportResource.class); return router; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :