1 /** 2 * 3 * Copyright 2005 The Apache Software Foundation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.geronimo.system.plugin; 18 19 import org.apache.geronimo.kernel.repository.Artifact; 20 21 /** 22 * An interface for callers who want to monitor the progress of an installation. 23 * These are all callbacks sent by the server. 24 * 25 * @see PluginInstaller 26 * 27 * @version $Rev: 410741 $ $Date: 2006-05-31 21:35:48 -0700 (Wed, 31 May 2006) $ 28 */ 29 public interface DownloadPoller { 30 /** 31 * Notes a configuration that was removed because it was obsoleted by a 32 * newly-installed configuration. 33 */ 34 void addRemovedConfigID(Artifact obsolete); 35 36 /** 37 * Notes that a configuration passed as an argument to the install 38 * operation was successfully installed. This will only be called on 39 * the original arguments to the install command, not on anything 40 * installed because it was a dependency. 41 */ 42 void addInstalledConfigID(Artifact target); 43 44 /** 45 * Notes that a configuration was restarted as a result of the 46 * current operation. This usually means that it depended on a 47 * configuration that was obsoleted (removed), so it shut down when 48 * the remove happened, and was started up again after the replacement 49 * was installed. 50 */ 51 void addRestartedConfigID(Artifact target); 52 53 /** 54 * Notes that the current install operation found a dependency, and that 55 * dependency was satisfied by an artifact already available in the 56 * current server environment. 57 */ 58 void addDependencyPresent(Artifact dep); 59 60 /** 61 * Notes that the current install operation found a dependency, and that 62 * dependency was downloaded from a remote repository and installed into 63 * the local server environment. 64 */ 65 void addDependencyInstalled(Artifact dep); 66 67 /** 68 * Indicates which file the configuration installer is working on at the 69 * moment. Mainly for purposes of user feedback during asynchronous 70 * requests. 71 */ 72 void setCurrentFile(String currentFile); 73 74 /** 75 * Describes the current operation status as a text message. Mainly for 76 * purposes of user feedback during asynchronous requests. 77 */ 78 void setCurrentMessage(String currentMessage); 79 80 /** 81 * Gives the percent complete for a file currently being downloaded. 82 * Mainly for purposes of user feedback during asynchronous requests. 83 * This may be -1 if the download server does not supply the file size in 84 * advance. 85 */ 86 void setCurrentFilePercent(int currentFileProgress); 87 88 /** 89 * Called at the end of a file download with the number of bytes downloaded 90 * in the current operation. This can be used to calculate a rough 91 * transfer rate (the time between setCurrentFile and setDownloadBytes) as 92 * well as if the caller wants to total the size of all downloads for the 93 * current installation. 94 */ 95 void addDownloadBytes(long bytes); 96 97 /** 98 * Indicates that a failure was encountered during the installation 99 * operation. Any failure is currently treated as fatal -- the installer 100 * will not attempt to complete additional tasks after a failure. 101 */ 102 void setFailure(Exception failure); 103 104 /** 105 * Always called when the operation is complete, regardless of whether 106 * there was a failure or not. 107 */ 108 void setFinished(); 109 }