1 package eu
.etaxonomy
.taxeditor
.service
;
3 import java
.io
.IOException
;
4 import java
.io
.OutputStream
;
6 import org
.springframework
.remoting
.httpinvoker
.HttpInvokerClientConfiguration
;
7 import org
.springframework
.remoting
.support
.RemoteInvocation
;
8 import org
.springframework
.remoting
.support
.RemoteInvocationResult
;
10 public abstract class CdmServiceRequestExecutor
extends CdmAuthenticatedHttpInvokerRequestExecutor
{
12 private RemoteInvocation currentRemoteInvocation
;
15 protected void writeRemoteInvocation(RemoteInvocation invocation
, OutputStream os
) throws IOException
{
16 currentRemoteInvocation
= invocation
;
17 super.writeRemoteInvocation(invocation
, os
);
21 protected RemoteInvocationResult
doExecuteRequest(HttpInvokerClientConfiguration config
,
22 java
.io
.ByteArrayOutputStream baos
)
23 throws java
.io
.IOException
,
24 java
.lang
.ClassNotFoundException
{
25 RemoteInvocationResult rir
= fromCache(currentRemoteInvocation
);
28 rir
= super.doExecuteRequest(config
, baos
);
29 cache(currentRemoteInvocation
, rir
);
32 currentRemoteInvocation
= null;
36 public abstract void cache(RemoteInvocation ri
, RemoteInvocationResult rir
);
38 public abstract RemoteInvocationResult
fromCache(RemoteInvocation ri
);