]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/jsch/JschContextSession.java
Improve SSH
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.simple / src / main / java / org / argeo / slc / jsch / JschContextSession.java
index b127afbc704d6a0d191f0fbbafb53663c12978c5..11e6f80f13ebd34690192c1489dcbb8bac2a1809 100644 (file)
@@ -2,6 +2,7 @@ package org.argeo.slc.jsch;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.springframework.beans.factory.BeanNameAware;
 import org.springframework.beans.factory.DisposableBean;
 import org.springframework.beans.factory.InitializingBean;
 
@@ -9,21 +10,34 @@ import com.jcraft.jsch.Session;
 
 /** Caches a JSCH session in the the ssh target. */
 public class JschContextSession extends AbstractJschTask implements
-               InitializingBean, DisposableBean {
+               InitializingBean, DisposableBean, BeanNameAware {
        private final static Log log = LogFactory.getLog(JschContextSession.class);
        private Boolean autoconnect = false;
 
+       private String beanName;
+
        @Override
        void run(Session session) {
-               clear();
+               // clear();
                getSshTarget().setSession(session);
                if (log.isDebugEnabled())
                        log.debug("Cached SSH context session to " + getSshTarget());
        }
 
        public void afterPropertiesSet() throws Exception {
+               if (log.isDebugEnabled())
+                       log.debug(getClass() + ".afterPropertiesSet(), " + beanName + ", "
+                                       + this);
                if (autoconnect)
-                       run();
+                       try {
+                               run();
+                       } catch (Exception e) {
+                               log.error("Could not automatically open session", e);
+                       }
+       }
+
+       public void setBeanName(String name) {
+               this.beanName = name;
        }
 
        public void destroy() throws Exception {