1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.server.ldap.handlers.extended;
21
22
23 import java.util.Collections;
24 import java.util.HashSet;
25 import java.util.Set;
26
27 import org.apache.directory.api.ldap.extras.extended.endTransaction.EndTransactionRequest;
28 import org.apache.directory.api.ldap.extras.extended.endTransaction.EndTransactionResponse;
29 import org.apache.directory.api.ldap.extras.extended.endTransaction.EndTransactionResponseImpl;
30 import org.apache.directory.api.ldap.model.message.ExtendedRequest;
31 import org.apache.directory.api.ldap.model.message.ExtendedResponse;
32 import org.apache.directory.server.core.api.CoreSession;
33 import org.apache.directory.server.ldap.ExtendedOperationHandler;
34 import org.apache.directory.server.ldap.LdapServer;
35 import org.apache.directory.server.ldap.LdapSession;
36 import org.slf4j.Logger;
37 import org.slf4j.LoggerFactory;
38
39
40
41
42
43
44
45 public class EndTransactionHandler implements ExtendedOperationHandler<ExtendedRequest, ExtendedResponse>
46 {
47 private static final Logger LOG = LoggerFactory.getLogger( EndTransactionHandler.class );
48 public static final Set<String> EXTENSION_OIDS;
49
50 static
51 {
52 Set<String> set = new HashSet<>( 2 );
53 set.add( EndTransactionRequest.EXTENSION_OID );
54 set.add( EndTransactionResponse.EXTENSION_OID );
55 EXTENSION_OIDS = Collections.unmodifiableSet( set );
56 }
57
58
59
60
61
62 public String getOid()
63 {
64 return EndTransactionRequest.EXTENSION_OID;
65 }
66
67
68
69
70
71 public void handleExtendedOperation( LdapSession session, ExtendedRequest req ) throws Exception
72 {
73 LOG.debug( "EndTransaction requested" );
74
75
76
77 CoreSession coreSession = session.getCoreSession();
78 coreSession.endSessionTransaction( ( ( EndTransactionRequest ) req ).getCommit() );
79
80 EndTransactionResponse endTransactionResponse = new EndTransactionResponseImpl( req.getMessageId() );
81
82
83
84
85
86 endTransactionResponse.setResponseName( EndTransactionRequest.EXTENSION_OID );
87
88
89 session.getIoSession().write( endTransactionResponse );
90 }
91
92
93
94
95
96 public Set<String> getExtensionOids()
97 {
98 return EXTENSION_OIDS;
99 }
100
101
102
103
104
105 public void setLdapServer( LdapServer ldapServer )
106 {
107 }
108 }