1 /** 2 * Copyright 2005-2006 the original author or authors. 3 * 4 * Licensed under the Gnu General Pubic License, Version 2.0 (the 5 * "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/gpl-license.php 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13 * See the Gnu General Public License for more details. 14 */ 15 package org.figure8.join.services.remoting; 16 17 import org.figure8.join.core.DuplicateEntityException; 18 import org.figure8.join.core.InvalidParameterException; 19 import org.figure8.join.services.remoting.beans.RemoteQuartzCronInfo; 20 21 import java.rmi.RemoteException; 22 /** 23 * Remote service interface definition. This service allows to interact 24 * with server-side crons : retrieving them, saving them (thus 25 * activation / deactivation) and removing them. All this services require 26 * authentication through the usage of the <code>login()</code> method. 27 * The security token returned by this method should then be used as a 28 * parameter of every service call. 29 * 30 * @author <a href="mailto:jerome.evrard@gmail.com">Jerome Evrard</a> 31 * @version $Revision: 1.2 $ 32 */ 33 public interface CronService extends AuthenticatedService{ 34 35 /** 36 * Save a new cron on server-side. This is a crete or update method. 37 * @param token Authentication token provided earlier by login() method 38 * @param cron Informations about cron to save 39 * @throws InvalidSessionException if user has no valid session on server-side 40 * @throws InvalidParameterException if a property of RemoteQuartzCronInfo is not valid 41 * @throws DuplicateEntityException if a cron with same name already exists 42 * @throws RemoteException if an exception occurs during the remote conversation 43 */ 44 public void saveCron(String token, RemoteQuartzCronInfo cron) throws InvalidSessionException, 45 InvalidParameterException, DuplicateEntityException, RemoteException; 46 47 /** 48 * Remove an existing cron from cron table 49 * @param token Authentication token provided earlier by login() method 50 * @param cron Information about cron to remove 51 * @throws InvalidSessionException if user has no valid session on server-side 52 * @throws RemoteException if an exception occurs during the remote conversation 53 */ 54 public void removeCron(String token, RemoteQuartzCronInfo cron) throws InvalidSessionException, RemoteException; 55 56 /** 57 * Retrieve information onto a specified cron 58 * @param token Authentication token provided earlier by login() method 59 * @param name Name of cron to retrieve information for 60 * @throws InvalidSessionException if user has no valid session on server-side 61 * @throws RemoteException if an exception occurs during the remote conversation 62 * @return The bean representing information onto specified cron, or null if no one matches name 63 */ 64 public RemoteQuartzCronInfo getQuartzCronInfo(String token, String name) throws InvalidSessionException, RemoteException; 65 66 /** 67 * Retrieve the list of all existing cron on server-side 68 * @param token Authentication token provided earlier by login() method 69 * @throws InvalidSessionException if user has no valid session on server-side 70 * @throws RemoteException if an exception occurs during the remote conversation 71 * @return An array of beans representing information onto all existing cron 72 */ 73 public RemoteQuartzCronInfo[] getQuartzCronInfo(String token) throws InvalidSessionException, RemoteException; 74 }