]>
git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.support/src/org/argeo/slc/jsch/JschContextSession.java
2 * Copyright (C) 2007-2012 Argeo GmbH
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org
.argeo
.slc
.jsch
;
18 import org
.apache
.commons
.logging
.Log
;
19 import org
.apache
.commons
.logging
.LogFactory
;
20 import org
.springframework
.beans
.factory
.DisposableBean
;
21 import org
.springframework
.beans
.factory
.InitializingBean
;
23 import com
.jcraft
.jsch
.Session
;
25 /** Caches a JSCH session in the the ssh target. */
26 public class JschContextSession
extends AbstractJschTask
implements
27 InitializingBean
, DisposableBean
{
28 private final static Log log
= LogFactory
.getLog(JschContextSession
.class);
29 private Boolean autoconnect
= false;
32 void run(Session session
) {
34 getSshTarget().setSession(session
);
35 if (log
.isDebugEnabled())
36 log
.debug("Cached SSH context session to " + getSshTarget());
39 public void afterPropertiesSet() throws Exception
{
40 // if (log.isDebugEnabled())
41 // log.debug(getClass() + ".afterPropertiesSet(), " + beanName + ", "
46 } catch (Exception e
) {
47 log
.error("Could not automatically open session", e
);
51 public void destroy() throws Exception
{
56 SshTarget sshTarget
= getSshTarget();
57 synchronized (sshTarget
) {
58 if (sshTarget
.getSession() != null) {
59 sshTarget
.getSession().disconnect();
60 sshTarget
.setSession(null);
61 if (log
.isDebugEnabled())
62 log
.debug("Cleared cached SSH context session to "
68 public void setAutoconnect(Boolean autoconnect
) {
69 this.autoconnect
= autoconnect
;