1 package fr.in2p3.jsaga.engine.factories;
2
3 import fr.in2p3.jsaga.adaptor.job.control.JobControlAdaptor;
4 import fr.in2p3.jsaga.adaptor.job.monitor.JobMonitorAdaptor;
5 import fr.in2p3.jsaga.adaptor.security.SecurityCredential;
6 import fr.in2p3.jsaga.impl.context.ContextImpl;
7 import org.ogf.saga.error.*;
8 import org.ogf.saga.url.URL;
9
10 import java.util.Map;
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public class JobMonitorAdaptorFactory extends ServiceAdaptorFactory {
25 public JobMonitorAdaptor getJobMonitorAdaptor(JobControlAdaptor controlAdaptor) {
26 return controlAdaptor.getDefaultJobMonitor();
27 }
28
29 public void connect(URL monitorURL, JobMonitorAdaptor monitorAdaptor, Map monitorAttributes, ContextImpl context) throws NotImplementedException, IncorrectURLException, AuthenticationFailedException, AuthorizationFailedException, BadParameterException, TimeoutException, NoSuccessException {
30
31 if (monitorURL==null || monitorURL.getScheme()==null) {
32 throw new IncorrectURLException("Invalid entry name: "+monitorURL);
33 }
34
35
36 this.checkAttributesValidity(monitorAttributes, monitorAdaptor.getUsage());
37
38
39 SecurityCredential credential = getCredential(monitorURL, context, monitorAdaptor);
40
41
42 connect(monitorAdaptor, credential, monitorURL, monitorAttributes);
43 }
44
45 public static void connect(JobMonitorAdaptor monitorAdaptor, SecurityCredential credential, URL url, Map attributes) throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, IncorrectURLException, BadParameterException, TimeoutException, NoSuccessException {
46 monitorAdaptor.setSecurityCredential(credential);
47 monitorAdaptor.connect(
48 url.getUserInfo(),
49 url.getHost(),
50 url.getPort()>0 ? url.getPort() : monitorAdaptor.getDefaultPort(),
51 url.getPath(),
52 attributes);
53 }
54 public static void disconnect(JobMonitorAdaptor monitorAdaptor) throws NoSuccessException {
55 monitorAdaptor.disconnect();
56 }
57 }