]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.repo/src/org/eclipse/aether/RepositoryListener.java
Start working on migration to new format.
[gpl/argeo-slc.git] / org.argeo.slc.repo / src / org / eclipse / aether / RepositoryListener.java
1 /*******************************************************************************
2 * Copyright (c) 2010, 2014 Sonatype, Inc.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * Sonatype, Inc. - initial API and implementation
10 *******************************************************************************/
11 package org.eclipse.aether;
12
13 /**
14 * A listener being notified of events from the repository system. In general, the system sends events upon termination
15 * of an operation like {@link #artifactResolved(RepositoryEvent)} regardless whether it succeeded or failed so
16 * listeners need to inspect the event details carefully. Also, the listener may be called from an arbitrary thread.
17 * <em>Note:</em> Implementors are strongly advised to inherit from {@link AbstractRepositoryListener} instead of
18 * directly implementing this interface.
19 *
20 * @see org.eclipse.aether.RepositorySystemSession#getRepositoryListener()
21 * @see org.eclipse.aether.transfer.TransferListener
22 * @noimplement This interface is not intended to be implemented by clients.
23 * @noextend This interface is not intended to be extended by clients.
24 */
25 public interface RepositoryListener
26 {
27
28 /**
29 * Notifies the listener of a syntactically or semantically invalid artifact descriptor.
30 * {@link RepositoryEvent#getArtifact()} indicates the artifact whose descriptor is invalid and
31 * {@link RepositoryEvent#getExceptions()} carries the encountered errors. Depending on the session's
32 * {@link org.eclipse.aether.resolution.ArtifactDescriptorPolicy}, the underlying repository operation might abort
33 * with an exception or ignore the invalid descriptor.
34 *
35 * @param event The event details, must not be {@code null}.
36 */
37 void artifactDescriptorInvalid( RepositoryEvent event );
38
39 /**
40 * Notifies the listener of a missing artifact descriptor. {@link RepositoryEvent#getArtifact()} indicates the
41 * artifact whose descriptor is missing. Depending on the session's
42 * {@link org.eclipse.aether.resolution.ArtifactDescriptorPolicy}, the underlying repository operation might abort
43 * with an exception or ignore the missing descriptor.
44 *
45 * @param event The event details, must not be {@code null}.
46 */
47 void artifactDescriptorMissing( RepositoryEvent event );
48
49 /**
50 * Notifies the listener of syntactically or semantically invalid metadata. {@link RepositoryEvent#getMetadata()}
51 * indicates the invalid metadata and {@link RepositoryEvent#getExceptions()} carries the encountered errors. The
52 * underlying repository operation might still succeed, depending on whether the metadata in question is actually
53 * needed to carry out the resolution process.
54 *
55 * @param event The event details, must not be {@code null}.
56 */
57 void metadataInvalid( RepositoryEvent event );
58
59 /**
60 * Notifies the listener of an artifact that is about to be resolved. {@link RepositoryEvent#getArtifact()} denotes
61 * the artifact in question. Unlike the {@link #artifactDownloading(RepositoryEvent)} event, this event is fired
62 * regardless whether the artifact already exists locally or not.
63 *
64 * @param event The event details, must not be {@code null}.
65 */
66 void artifactResolving( RepositoryEvent event );
67
68 /**
69 * Notifies the listener of an artifact whose resolution has been completed, either successfully or not.
70 * {@link RepositoryEvent#getArtifact()} denotes the artifact in question and
71 * {@link RepositoryEvent#getExceptions()} indicates whether the resolution succeeded or failed. Unlike the
72 * {@link #artifactDownloaded(RepositoryEvent)} event, this event is fired regardless whether the artifact already
73 * exists locally or not.
74 *
75 * @param event The event details, must not be {@code null}.
76 */
77 void artifactResolved( RepositoryEvent event );
78
79 /**
80 * Notifies the listener of some metadata that is about to be resolved. {@link RepositoryEvent#getMetadata()}
81 * denotes the metadata in question. Unlike the {@link #metadataDownloading(RepositoryEvent)} event, this event is
82 * fired regardless whether the metadata already exists locally or not.
83 *
84 * @param event The event details, must not be {@code null}.
85 */
86 void metadataResolving( RepositoryEvent event );
87
88 /**
89 * Notifies the listener of some metadata whose resolution has been completed, either successfully or not.
90 * {@link RepositoryEvent#getMetadata()} denotes the metadata in question and
91 * {@link RepositoryEvent#getExceptions()} indicates whether the resolution succeeded or failed. Unlike the
92 * {@link #metadataDownloaded(RepositoryEvent)} event, this event is fired regardless whether the metadata already
93 * exists locally or not.
94 *
95 * @param event The event details, must not be {@code null}.
96 */
97 void metadataResolved( RepositoryEvent event );
98
99 /**
100 * Notifies the listener of an artifact that is about to be downloaded from a remote repository.
101 * {@link RepositoryEvent#getArtifact()} denotes the artifact in question and
102 * {@link RepositoryEvent#getRepository()} the source repository. Unlike the
103 * {@link #artifactResolving(RepositoryEvent)} event, this event is only fired when the artifact does not already
104 * exist locally.
105 *
106 * @param event The event details, must not be {@code null}.
107 */
108 void artifactDownloading( RepositoryEvent event );
109
110 /**
111 * Notifies the listener of an artifact whose download has been completed, either successfully or not.
112 * {@link RepositoryEvent#getArtifact()} denotes the artifact in question and
113 * {@link RepositoryEvent#getExceptions()} indicates whether the download succeeded or failed. Unlike the
114 * {@link #artifactResolved(RepositoryEvent)} event, this event is only fired when the artifact does not already
115 * exist locally.
116 *
117 * @param event The event details, must not be {@code null}.
118 */
119 void artifactDownloaded( RepositoryEvent event );
120
121 /**
122 * Notifies the listener of some metadata that is about to be downloaded from a remote repository.
123 * {@link RepositoryEvent#getMetadata()} denotes the metadata in question and
124 * {@link RepositoryEvent#getRepository()} the source repository. Unlike the
125 * {@link #metadataResolving(RepositoryEvent)} event, this event is only fired when the metadata does not already
126 * exist locally.
127 *
128 * @param event The event details, must not be {@code null}.
129 */
130 void metadataDownloading( RepositoryEvent event );
131
132 /**
133 * Notifies the listener of some metadata whose download has been completed, either successfully or not.
134 * {@link RepositoryEvent#getMetadata()} denotes the metadata in question and
135 * {@link RepositoryEvent#getExceptions()} indicates whether the download succeeded or failed. Unlike the
136 * {@link #metadataResolved(RepositoryEvent)} event, this event is only fired when the metadata does not already
137 * exist locally.
138 *
139 * @param event The event details, must not be {@code null}.
140 */
141 void metadataDownloaded( RepositoryEvent event );
142
143 /**
144 * Notifies the listener of an artifact that is about to be installed to the local repository.
145 * {@link RepositoryEvent#getArtifact()} denotes the artifact in question.
146 *
147 * @param event The event details, must not be {@code null}.
148 */
149 void artifactInstalling( RepositoryEvent event );
150
151 /**
152 * Notifies the listener of an artifact whose installation to the local repository has been completed, either
153 * successfully or not. {@link RepositoryEvent#getArtifact()} denotes the artifact in question and
154 * {@link RepositoryEvent#getExceptions()} indicates whether the installation succeeded or failed.
155 *
156 * @param event The event details, must not be {@code null}.
157 */
158 void artifactInstalled( RepositoryEvent event );
159
160 /**
161 * Notifies the listener of some metadata that is about to be installed to the local repository.
162 * {@link RepositoryEvent#getMetadata()} denotes the metadata in question.
163 *
164 * @param event The event details, must not be {@code null}.
165 */
166 void metadataInstalling( RepositoryEvent event );
167
168 /**
169 * Notifies the listener of some metadata whose installation to the local repository has been completed, either
170 * successfully or not. {@link RepositoryEvent#getMetadata()} denotes the metadata in question and
171 * {@link RepositoryEvent#getExceptions()} indicates whether the installation succeeded or failed.
172 *
173 * @param event The event details, must not be {@code null}.
174 */
175 void metadataInstalled( RepositoryEvent event );
176
177 /**
178 * Notifies the listener of an artifact that is about to be uploaded to a remote repository.
179 * {@link RepositoryEvent#getArtifact()} denotes the artifact in question and
180 * {@link RepositoryEvent#getRepository()} the destination repository.
181 *
182 * @param event The event details, must not be {@code null}.
183 */
184 void artifactDeploying( RepositoryEvent event );
185
186 /**
187 * Notifies the listener of an artifact whose upload to a remote repository has been completed, either successfully
188 * or not. {@link RepositoryEvent#getArtifact()} denotes the artifact in question and
189 * {@link RepositoryEvent#getExceptions()} indicates whether the upload succeeded or failed.
190 *
191 * @param event The event details, must not be {@code null}.
192 */
193 void artifactDeployed( RepositoryEvent event );
194
195 /**
196 * Notifies the listener of some metadata that is about to be uploaded to a remote repository.
197 * {@link RepositoryEvent#getMetadata()} denotes the metadata in question and
198 * {@link RepositoryEvent#getRepository()} the destination repository.
199 *
200 * @param event The event details, must not be {@code null}.
201 */
202 void metadataDeploying( RepositoryEvent event );
203
204 /**
205 * Notifies the listener of some metadata whose upload to a remote repository has been completed, either
206 * successfully or not. {@link RepositoryEvent#getMetadata()} denotes the metadata in question and
207 * {@link RepositoryEvent#getExceptions()} indicates whether the upload succeeded or failed.
208 *
209 * @param event The event details, must not be {@code null}.
210 */
211 void metadataDeployed( RepositoryEvent event );
212
213 }