001package co.codewizards.cloudstore.rest.server;
002
003import javax.ws.rs.ApplicationPath;
004
005import org.glassfish.jersey.server.ResourceConfig;
006import org.slf4j.Logger;
007import org.slf4j.LoggerFactory;
008
009import co.codewizards.cloudstore.rest.server.jersey.CloudStoreBinder;
010import co.codewizards.cloudstore.rest.server.jersey.CloudStoreJaxbContextResolver;
011import co.codewizards.cloudstore.rest.server.jersey.DefaultExceptionMapper;
012import co.codewizards.cloudstore.rest.server.service.BeginPutFileService;
013import co.codewizards.cloudstore.rest.server.service.ChangeSetDTOService;
014import co.codewizards.cloudstore.rest.server.service.CopyService;
015import co.codewizards.cloudstore.rest.server.service.EncryptedSignedAuthTokenService;
016import co.codewizards.cloudstore.rest.server.service.EndPutFileService;
017import co.codewizards.cloudstore.rest.server.service.EndSyncFromRepositoryService;
018import co.codewizards.cloudstore.rest.server.service.EndSyncToRepositoryService;
019import co.codewizards.cloudstore.rest.server.service.MakeDirectoryService;
020import co.codewizards.cloudstore.rest.server.service.MakeSymlinkService;
021import co.codewizards.cloudstore.rest.server.service.MoveService;
022import co.codewizards.cloudstore.rest.server.service.RepoFileDTOService;
023import co.codewizards.cloudstore.rest.server.service.RepositoryDTOService;
024import co.codewizards.cloudstore.rest.server.service.RequestRepoConnectionService;
025import co.codewizards.cloudstore.rest.server.service.TestService;
026import co.codewizards.cloudstore.rest.server.service.WebDavService;
027import co.codewizards.cloudstore.rest.shared.GZIPReaderInterceptor;
028import co.codewizards.cloudstore.rest.shared.GZIPWriterInterceptor;
029
030/**
031 * @author Marco หงุ่ยตระกูล-Schulze - marco at nightlabs dot de
032 */
033@ApplicationPath("CloudStoreREST")
034public class CloudStoreREST extends ResourceConfig {
035        private static final Logger logger = LoggerFactory.getLogger(CloudStoreREST.class);
036
037        static {
038                logger.debug("<static_init>: Class loaded.");
039        }
040
041    {
042                logger.debug("<init>: Instance created.");
043//              getProperties().put("com.sun.jersey.spi.container.ContainerRequestFilters", JDOTransactionRequestFilter.class.getName());
044//              getProperties().put("com.sun.jersey.spi.container.ContainerResponseFilters", JDOTransactionResponseFilter.class.getName());
045//              getProperties().put("com.sun.jersey.spi.container.ResourceFilters", value)
046
047                registerClasses(
048                                // BEGIN services
049                                BeginPutFileService.class,
050                                ChangeSetDTOService.class,
051                                CopyService.class,
052                                EncryptedSignedAuthTokenService.class,
053                                EndPutFileService.class,
054                                EndSyncFromRepositoryService.class,
055                                EndSyncToRepositoryService.class,
056                                RepoFileDTOService.class,
057                                MakeDirectoryService.class,
058                                MakeSymlinkService.class,
059                                MoveService.class,
060                                RepositoryDTOService.class,
061                                RequestRepoConnectionService.class,
062                                TestService.class,
063                                WebDavService.class,
064                                // END services
065
066                                // BEGIN providers
067                                // providers are not services (they are infrastructure), but they are registered the same way.
068                                GZIPReaderInterceptor.class,
069                                GZIPWriterInterceptor.class,
070                                CloudStoreJaxbContextResolver.class,
071                                DefaultExceptionMapper.class
072                                // END providers
073                                );
074
075                register(new CloudStoreBinder());
076        }
077}