001package org.apache.archiva.rest.api.services;
002/*
003 * Licensed to the Apache Software Foundation (ASF) under one
004 * or more contributor license agreements.  See the NOTICE file
005 * distributed with this work for additional information
006 * regarding copyright ownership.  The ASF licenses this file
007 * to you under the Apache License, Version 2.0 (the
008 * "License"); you may not use this file except in compliance
009 * with the License.  You may obtain a copy of the License at
010 *
011 *   http://www.apache.org/licenses/LICENSE-2.0
012 *
013 * Unless required by applicable law or agreed to in writing,
014 * software distributed under the License is distributed on an
015 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
016 * KIND, either express or implied.  See the License for the
017 * specific language governing permissions and limitations
018 * under the License.
019 */
020
021import org.apache.archiva.redback.authorization.RedbackAuthorization;
022
023import javax.ws.rs.GET;
024import javax.ws.rs.Path;
025import javax.ws.rs.Produces;
026import javax.ws.rs.QueryParam;
027import javax.ws.rs.core.MediaType;
028
029/**
030 * contains some "free" services (i18n)
031 *
032 * @author Olivier Lamy
033 * @since 1.4-M3
034 */
035@Path( "/commonServices/" )
036public interface CommonServices
037{
038
039    /**
040     * will return properties available in org/apache/archiva/i18n/default.properties
041     * load default (en) then override with locale used so at least en are returned if no
042     * translation in the locale asked.
043     */
044    @Path( "getI18nResources" )
045    @GET
046    @Produces( { MediaType.TEXT_PLAIN } )
047    @RedbackAuthorization( noRestriction = true )
048    String getI18nResources( @QueryParam( "locale" ) String locale )
049        throws ArchivaRestServiceException;
050
051    /**
052     * will return properties available in org/apache/archiva/i18n/default.properties
053     * load default (en) then override with locale used so at least en are returned if no
054     * translation in the locale asked.
055     * This method will add redback resources too. note Archva wins
056     */
057    @Path( "getAllI18nResources" )
058    @GET
059    @Produces( { MediaType.TEXT_PLAIN } )
060    @RedbackAuthorization( noRestriction = true )
061    String getAllI18nResources( @QueryParam( "locale" ) String locale )
062        throws ArchivaRestServiceException;
063
064
065    @Path( "validateCronExpression" )
066    @GET
067    @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
068    @RedbackAuthorization( noRestriction = true )
069    Boolean validateCronExpression( @QueryParam( "cronExpression" ) String cronExpression )
070        throws ArchivaRestServiceException;
071
072}