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.service.BeginPutFileService;
010import co.codewizards.cloudstore.rest.server.service.ChangeSetDtoService;
011import co.codewizards.cloudstore.rest.server.service.CopyService;
012import co.codewizards.cloudstore.rest.server.service.EncryptedSignedAuthTokenService;
013import co.codewizards.cloudstore.rest.server.service.EndPutFileService;
014import co.codewizards.cloudstore.rest.server.service.EndSyncFromRepositoryService;
015import co.codewizards.cloudstore.rest.server.service.EndSyncToRepositoryService;
016import co.codewizards.cloudstore.rest.server.service.GetClientRepositoryDtoService;
017import co.codewizards.cloudstore.rest.server.service.MakeDirectoryService;
018import co.codewizards.cloudstore.rest.server.service.MakeSymlinkService;
019import co.codewizards.cloudstore.rest.server.service.MoveService;
020import co.codewizards.cloudstore.rest.server.service.PutParentConfigPropSetDtoService;
021import co.codewizards.cloudstore.rest.server.service.RepoFileDtoService;
022import co.codewizards.cloudstore.rest.server.service.RepositoryDtoService;
023import co.codewizards.cloudstore.rest.server.service.RequestRepoConnectionService;
024import co.codewizards.cloudstore.rest.server.service.TestService;
025import co.codewizards.cloudstore.rest.server.service.VersionInfoDtoService;
026import co.codewizards.cloudstore.rest.server.service.WebDavService;
027import co.codewizards.cloudstore.rest.shared.filter.GZIPContainerRequestFilter;
028import co.codewizards.cloudstore.rest.shared.interceptor.GZIPConditionalReaderInterceptor;
029import co.codewizards.cloudstore.rest.shared.interceptor.GZIPConditionalWriterInterceptor;
030
031/**
032 * @author Marco หงุ่ยตระกูล-Schulze - marco at nightlabs dot de
033 */
034@ApplicationPath("CloudStoreRest")
035public class CloudStoreRest extends ResourceConfig {
036        private static final Logger logger = LoggerFactory.getLogger(CloudStoreRest.class);
037
038        static {
039                logger.debug("<static_init>: Class loaded.");
040        }
041
042    {
043                logger.debug("<init>: Instance created.");
044//              getProperties().put("com.sun.jersey.spi.container.ContainerRequestFilters", JDOTransactionRequestFilter.class.getName());
045//              getProperties().put("com.sun.jersey.spi.container.ContainerResponseFilters", JDOTransactionResponseFilter.class.getName());
046//              getProperties().put("com.sun.jersey.spi.container.ResourceFilters", value)
047
048                registerClasses(
049                                // BEGIN services
050                                BeginPutFileService.class,
051                                ChangeSetDtoService.class,
052                                CopyService.class,
053                                EncryptedSignedAuthTokenService.class,
054                                EndPutFileService.class,
055                                EndSyncFromRepositoryService.class,
056                                EndSyncToRepositoryService.class,
057                                GetClientRepositoryDtoService.class,
058                                RepoFileDtoService.class,
059                                MakeDirectoryService.class,
060                                MakeSymlinkService.class,
061                                MoveService.class,
062                                PutParentConfigPropSetDtoService.class,
063                                RepositoryDtoService.class,
064                                RequestRepoConnectionService.class,
065                                TestService.class,
066                                VersionInfoDtoService.class,
067                                WebDavService.class,
068                                // END services
069
070                                // BEGIN providers
071                                // providers are not services (they are infrastructure), but they are registered the same way.
072                                GZIPConditionalReaderInterceptor.class,
073                                GZIPConditionalWriterInterceptor.class,
074                                GZIPContainerRequestFilter.class,
075                                CloudStoreJaxbContextResolver.class,
076                                DefaultExceptionMapper.class
077                                // END providers
078                                );
079
080                register(new CloudStoreBinder());
081        }
082}