2. Expect
Написан 1990 година за Unix от Don Libes
Скриптов език използван за автоматизиране на взаимодействието с
програма, която предоставя текстови терминален интерфейс.
Много Unix и Linix команди предоставят такъв интерфейс, като:
telnet
ftp
ssh
И много други
3. Примерна програма на Expect
spawn telnet $remote_server
expect "username:"
send "$my_user_idr"
expect "password:"
send "$my_passwordr"
expect "%"
send "$my_commandr"
expect "%"
set results $expect_out(buffer)
send "exitr"
expect eof
4. expect4java
Билиотека на Java създаваща DSL (Domain Specific Language) за писане
на Expect програми използващи езика Java
Написана от Васил Йорданов и Николай Милованов през 2013 г, като
част от проекта netTransformers на iTransformers Labs
Използва се в проекта netTransformer за автоматизиране на
конфигурирането на устройства разкрити от програмта netTransformer
– https://github.com/iTransformers/netTransformer
expect4groovy е тънъка Groovy обвивка на библотеката expect4java,
предоставяща възможност да се пишат Expect подобни изрази на
езика Groovy
expect4java - https://github.com/iTransformers/expect4java
expect4groovy - https://github.com/iTransformers/expect4groovy
5. HelloWorld на expect4java
import net.itransformers.expect4java.cliconnection.CLIConnection;
import net.itransformers.expect4java.cliconnection.impl.*;
import net.itransformers.expect4java.impl.Expect4jImpl;
import net.itransformers.expect4java.matches.GlobMatch;
public class HelloWorldExpect4Java {
public static void main(String[] args) throws Exception {
CLIConnection cliConnection = new LoggableCLIConnection(
new EchoCLIConnection(),
message -> System.out.println("> " + message),
message -> System.out.println("< " + message)
);
cliConnection.connect(new java.util.HashMap<>());
Expect4jImpl e4j = new Expect4jImpl(cliConnection);
e4j.send("Hello Worldn");
e4j.expect(new GlobMatch("Hello World"));
}
}
6. Стартиране на HelloWorld на expect4java
Изисквания:
JDK 1.8
maven 3.3
git client
Изтегляне на проекта:
git clone https://github.com/iTransformers/expect4java-samples.git
Build на проекта
mvn clean package
Стартиране на проекта
cd hello-worldtarget
java -jar hello-world-1.0-SNAPSHOT-jar-with-dependencies.jar
7. expect4java - SSH пример
CLIConnection sshConn = new LoggableCLIConnection(
new SshCLIConnection(),
msg -> System.out.println(">>> "+msg),
msg -> System.out.println("<<< "+msg)
);
Map<String, Object> connParams = new HashMap<>();
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
config.put("PreferredAuthentications", "keyboard-interactive,password");
connParams.put("username", "guest");
connParams.put("password", "xxx");
connParams.put("address", "vyordanov.tk");
connParams.put("port", 22);
connParams.put("timeout", 1000);
connParams.put("config", config);
9. Стартиране на HelloWorld на expect4java
Изисквания:
JDK 1.8
maven 3.3
git client
Изтегляне на проекта:
git clone https://github.com/iTransformers/expect4java-samples.git
Build на проекта
mvn clean package
Стартиране на проекта
cd ssh-exampletarget
java -jar simple-ssh-example-1.0-SNAPSHOT-jar-with-dependencies.jar