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.MakeDirectoryService;
017import co.codewizards.cloudstore.rest.server.service.MakeSymlinkService;
018import co.codewizards.cloudstore.rest.server.service.MoveService;
019import co.codewizards.cloudstore.rest.server.service.PutParentConfigPropSetDtoService;
020import co.codewizards.cloudstore.rest.server.service.RepoFileDtoService;
021import co.codewizards.cloudstore.rest.server.service.RepositoryDtoService;
022import co.codewizards.cloudstore.rest.server.service.RequestRepoConnectionService;
023import co.codewizards.cloudstore.rest.server.service.TestService;
024import co.codewizards.cloudstore.rest.server.service.VersionInfoDtoService;
025import co.codewizards.cloudstore.rest.server.service.WebDavService;
026import co.codewizards.cloudstore.rest.shared.filter.GZIPContainerRequestFilter;
027import co.codewizards.cloudstore.rest.shared.interceptor.GZIPConditionalReaderInterceptor;
028import co.codewizards.cloudstore.rest.shared.interceptor.GZIPConditionalWriterInterceptor;
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                                PutParentConfigPropSetDtoService.class,
061                                RepositoryDtoService.class,
062                                RequestRepoConnectionService.class,
063                                TestService.class,
064                                VersionInfoDtoService.class,
065                                WebDavService.class,
066                                // END services
067
068                                // BEGIN providers
069                                // providers are not services (they are infrastructure), but they are registered the same way.
070                                GZIPConditionalReaderInterceptor.class,
071                                GZIPConditionalWriterInterceptor.class,
072                                GZIPContainerRequestFilter.class,
073                                CloudStoreJaxbContextResolver.class,
074                                DefaultExceptionMapper.class
075                                // END providers
076                                );
077
078                register(new CloudStoreBinder());
079        }
080}