class SoftwareServerVersionManager extends BasicModule implements ServerSessionEventListener {
    private static final Logger Log = LoggerFactory.getLogger(SoftwareServerVersionManager.class);

    public SoftwareServerVersionManager() {
        super("Software Server Version Manager");
    }

    @Override
    public void start() throws IllegalStateException {
        super.start();
        ServerSessionEventDispatcher.addListener(this);
    }

    @Override
    public void stop() {
        super.stop();
        ServerSessionEventDispatcher.removeListener(this);
    }

    @Override
    public void sessionCreated(Session session) {<FILL_FUNCTION_BODY>}

    @Override
    public void sessionDestroyed(Session session) {

    }

    

}

        try {
            IQ versionRequest = new IQ(IQ.Type.get);
            versionRequest.setTo(session.getAddress());
            versionRequest.setFrom(session.getServerName());
            versionRequest.setChildElement("query", "jabber:iq:version");
            session.process(versionRequest);
        } catch (Exception e) {
            Log.error("Exception while trying to query a server for its software version.", e);;
        }
       
    
<methods>public void <init>(java.lang.String) ,public void destroy() ,public java.lang.String getName() ,public void initialize(org.jivesoftware.openfire.XMPPServer) ,public void start() throws java.lang.IllegalStateException,public void stop() <variables>private java.lang.String name