Skrypty w aplikacji Java

0

Jest sobie aplikacja (webowa) napisana w Javie, w której są (właściwie to jeszcze nie są) pewne zdarzenia. Chciałbym po wystąpieniu jakiegos zdarzenia uruchomić pewien kod, który to zdarzenie obsłuży. Problem w tym, że kod obsługi takiego zdarzenia może być często modyfikowany, co pociaga za soba ponowna kompilacje kodu, ponowne wdrozenie i chwila przerwe w dzialaniu systemu wynikajaca z ponownego startu aplikacji (samo wdrozenie to nie problem, problem w tej chwilowej przerwie w dzialaniu).

Idealnie byloby wiec uruchomic kod, który nie byłby kompilowany tylko interpretowany w locie, ktory mialby dostep do wszystkich klas systemu. Dlatego poszukuje jakiegos jezyka skryptowego, ktorego mozna sobie uruchomic z poziomu aplikacji java. Czego moge użyć?

2

Np. Groovy

2

Jython na pewno może być tak odpalony i przypuszczam że Groovy też.
PoC:

        PythonInterpreter p = new PythonInterpreter();
        String code = "print([i for i in range(10)])";
        p.exec(code);

wymaga dodania sobie zależności:

       <dependency>
            <groupId>org.python</groupId>
            <artifactId>jython-standalone</artifactId>
            <version>2.5.2</version>
        </dependency>

edit: to Jython więc możesz importować javowe klasy, poza tym jest odpalane w tym samym JVM więc jeśli zrobisz sobie np. statyczną metodę dostępową do jakiegoś serwisu to też będzie można go używać.

0

Dzięki za odpowiedzi. Zerknalem na Groovy i udalo mi sie napisac testowy skrypt, ktory pobiera sobie repozytorium z kontekstu aplikacji i utrwala encje w bazie danych. Podobne to dosyc do Javy wiec postanowilem zostac przy Groovym.

Troche szkoda, że @NoZi usunął swoja odpowiedz bo jako pierwszy zaproponowal ten jezyk, a nastepnie skasowal swoja wypowiedz - nie bardzo rozumiem dlaczego :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1