Вы можете извлечь общую функциональность в отдельный модуль и сделать так, чтобы ваши приложения зависели от него:
Мне кажется, тот факт, что «классический» проект Django «содержит» приложения, которые он использует помешать вам увидеть картину - на самом деле, это не обязательно. Для проекта, в котором у вас будут какие-то подключаемые модули, я бы предложил организовать приложения в виде яиц и использовать zc.buildout + djangorecipe для управления всем.
Таким образом, вы сможете сохранить ваши модули в плоской одноуровневой структуре. Яйца имеют возможность указывать зависимости, поэтому, если вы установите application1 (см. Выше), auth_module будет установлен автоматически.
Также будет легко развернуть разные конфигурации на разных серверах. Предположим, у вас есть server1, на котором установлено application1, и server2, на котором установлены и application1, и application2 - вы можете просто иметь две конфигурации:
server1.cfg:
[buildout]
extends = base_deployment.cfg
eggs += application1
server2.cfg:
[buildout]
extends = base_seployment.cfg
eggs += application1
application2
djangorecipe также позволяет вам указывать разные файлы настроек для каждой конфигурации компоновки, так что вы сможете добавлять необходимые биты в URL-адреса основного проекта и настройки установленных приложений.
Не говоря уже о том, что у вас также может быть отдельная конфигурация для конфигурации разработки (например, с установленными debug = True и Django Debug Toolbar).
Well, as pointed out in the other question, JSch is indeed a great choice and has several examples here. The PortForwardingL.java class might be a good starting point.
Вы можете сделать это с помощью нескольких библиотек. Мне больше всего нравится библиотека ssh внутри пакета MindTerm,
http://linuxmafia.com/pub/java/ISNetworks-MindTerm-1.2.1-SCP3.tar.gz
Вы можете открыть туннельное соединение следующим образом:
SSHSocketFactory fact = new SSHSocketFactory(sshHost, sshPort, new SSHPasswordAuthenticator(sshUser, sshPassword));
sock = fact.createSocket(host, port);