Project

General

Profile

« Previous | Next » 

Revision a014602f

Added by Andreas Kohlbecker over 8 years ago

cration of a ClientManager to provide quasi singleton beans if client classes

View differences:

src/main/java/org/cybertaxonomy/utis/checklist/BgbmEditClient.java
61 61
        super(checklistInfoJson);
62 62
    }
63 63

  
64
    /**
65
     * {@inheritDoc}
66
     */
67
    @Override
68
    public boolean isStatelessClient() {
69
        // TODO move taxonIdQueryMap and taxonIdMatchStringMap into
70
        //      session state object to make this a stateless client
71
        return false;
72
    }
73

  
64 74
    @Override
65 75
    public void initQueryClient() {
66 76
        queryClient = new RestClient(HTTP_HOST);
src/main/java/org/cybertaxonomy/utis/checklist/EEA_BDC_Client.java
132 132
        super(checklistInfoJson);
133 133
    }
134 134

  
135
    /**
136
     * {@inheritDoc}
137
     */
138
    @Override
139
    public boolean isStatelessClient() {
140
        return true;
141
    }
142

  
135 143
    @Override
136 144
    public void initQueryClient() {
137 145

  
......
585 593
        return IdentifierUtils.checkURI(value);
586 594
    }
587 595

  
596

  
588 597
}
src/main/java/org/cybertaxonomy/utis/checklist/GBIFBackboneClient.java
58 58
        queryClient = new RestClient(HTTP_HOST);
59 59
    }
60 60

  
61
    /**
62
     * {@inheritDoc}
63
     */
64
    @Override
65
    public boolean isStatelessClient() {
66
        return true;
67
    }
61 68

  
62 69
    @Override
63 70
    public ServiceProviderInfo buildServiceProviderInfo() {
src/main/java/org/cybertaxonomy/utis/checklist/GBIFBetaBackboneClient.java
47 47
        super(checklistInfoJson);
48 48
    }
49 49

  
50
    /**
51
     * {@inheritDoc}
52
     */
53
    @Override
54
    public boolean isStatelessClient() {
55
        return true;
56
    }
57

  
50 58

  
51 59
    /**
52 60
     * {@inheritDoc}
src/main/java/org/cybertaxonomy/utis/checklist/PESIClient.java
92 92

  
93 93
    }
94 94

  
95
    /**
96
     * {@inheritDoc}
97
     */
98
    @Override
99
    public boolean isStatelessClient() {
100
        return true;
101
    }
102

  
95 103
    /**
96 104
     * {@inheritDoc}
97 105
     */
src/main/java/org/cybertaxonomy/utis/checklist/Species2000ColClient.java
58 58
        super();
59 59
    }
60 60

  
61
    /**
62
     * {@inheritDoc}
63
     */
64
    @Override
65
    public boolean isStatelessClient() {
66
        return true;
67
    }
68

  
61 69
    /**
62 70
     * {@inheritDoc}
63 71
     */
src/main/java/org/cybertaxonomy/utis/checklist/WoRMSClient.java
56 56

  
57 57
    }
58 58

  
59
    /**
60
     * {@inheritDoc}
61
     */
62
    @Override
63
    public boolean isStatelessClient() {
64
        return true;
65
    }
66

  
59 67
    /**
60 68
     * {@inheritDoc}
61 69
     */
src/main/java/org/cybertaxonomy/utis/client/AbstractClient.java
51 51
        this.spInfo = checklistInfo;
52 52
    }
53 53

  
54
    /**
55
     * Client implementations which retain any state information during
56
     * request processing in the client bean instance itself should return false.
57
     * Client bean which are not stateless must not be reused between multiple
58
     * requests. For each request a new bean must be instantiated.
59
     *
60
     * @return
61
     */
62
    public abstract boolean isStatelessClient();
63

  
54 64
}
src/main/java/org/cybertaxonomy/utis/client/ClientManager.java
1
// $Id$
2
/**
3
* Copyright (C) 2015 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10
package org.cybertaxonomy.utis.client;
11

  
12
import java.util.HashMap;
13
import java.util.Map;
14

  
15
import org.slf4j.Logger;
16
import org.slf4j.LoggerFactory;
17

  
18
/**
19
 * @author a.kohlbecker
20
 * @date Oct 29, 2015
21
 *
22
 */
23
public class ClientManager {
24

  
25
    protected Logger logger = LoggerFactory.getLogger(ClientManager.class);
26

  
27
    private final Map<Class<? extends AbstractClient<?>>, AbstractClient<?>> clientSingletonBeans = new HashMap<Class<? extends AbstractClient<?>>, AbstractClient<?>>();
28

  
29
    public <T extends AbstractClient<?>> T client(Class<T> clientClass) {
30

  
31
        T instance = null;
32

  
33
        if(!clientSingletonBeans.containsKey(clientClass)){
34
            logger.debug("Creating new instance of " + clientClass.getName());
35
            try {
36
                instance = clientClass.newInstance();
37
            } catch (InstantiationException e) {
38
                // TODO Auto-generated catch block
39
                e.printStackTrace();
40
            } catch (IllegalAccessException e) {
41
                // TODO Auto-generated catch block
42
                e.printStackTrace();
43
            }
44

  
45
            if(instance.isStatelessClient()) {
46
                clientSingletonBeans.put(clientClass, instance);
47
            }
48
        } else {
49
            instance = (T) clientSingletonBeans.get(clientClass);
50
        }
51

  
52
        return instance;
53
    }
54

  
55
}
src/main/java/org/cybertaxonomy/utis/occurrences/GBIFOccurrencesClient.java
55 55
        return ocbankInfo;
56 56
    }
57 57

  
58
    /**
59
     * {@inheritDoc}
60
     */
61
    @Override
62
    public boolean isStatelessClient() {
63
        // TODO move datasetCacheMap and orgCacheMap into
64
        //      session state object to make this a stateless client
65
        return false;
66
    }
67

  
58 68
    @Override
59 69
    public String getOccurrences(String nameid) throws DRFChecklistException {
60 70

  

Also available in: Unified diff