WakacjeDONE 31-07-2007- scalenie wszystkich wtyczek w jeden modul
- usuniecie niepotrzebnych kopii jar'ow z projektow Pawla
- dodanie niezbednych fragmentow instalacji aspectJ'a do wtyczki (chodzi przede wszystkim o taski do anta, w tej chwili aspectJ'a trzeba instalowac w calosci i niezaleznie od wtyczki)
DONE 01-08-2007- uporzadkowanie kodu modulow
- poprawienie bledu w panelu administracyjnym Blitz'a (ClassDefNotFound ex)
DONE 09-08-2007- 07-08-2007 zastapienie ustawiania codebase jakims innym rozwiazaniem - przegladarka krotek nie dziala pod Windowsem
- 05-08-2007 rozwiazanie problemu z codebase (nie umie znalezc klas krotek do wyswietlenia w przegladarce)
Rozwiazanie: Przed ustawieniem codebase trzeba ustawic SecurityManager'a i java.security.policy. public class Producer {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
System.setProperty("java.security.policy", "policy.all");
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
/*
// this did not help
try {
new ClassFileServer(2001, "f:\\JavaSpacesExamples\\build\\classes\\");
} catch (IOException ex) {
System.out.println("Unable to start ClassServer: " + ex.getMessage());
ex.printStackTrace();
}*/
System.setProperty("java.rmi.server.codebase", "file:///f:/JavaSpacesExamples/build/classes/");
Lookup finder = new Lookup(JavaSpace.class);
JavaSpace space = (JavaSpace) finder.getService();
(...)- modyfikacja adnotacji, tak zeby automatycznie ustawialy poprawna wartosc java.rmi.server.codebase (niezbedne, zeby dzialalo przegladanie wszystkich krotek z danej przestrzeni - musimy ustawic skad biora sie klasy uzywane jako sygnatury krotek), security managera i security policy
DONE 13-08-2007- 09-08-2007 poprawienie JSBlitz.xml w TemplateProject tak, zeby nie byly potrzebne kopie jarow do Blitza i JINI. Poprawiony plik powinien wygladac mniej wiecej tak:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE library PUBLIC "-//NetBeans//DTD Library Declaration 1.0//EN" "http://www.netbeans.org/dtds/library-declaration-1_0.dtd">
<library version="1.0">
<name>JSBlitz</name>
<type>j2se</type>
<localizing-bundle>pl.edu.mimuw.md209461.javaspacestemplateproject.Bundle</localizing-bundle>
<volume>
<type>classpath</type>
<resource>jar:nbinst:///modules/ext/blitz-dl.jar!/</resource>
<resource>jar:nbinst:///modules/ext/blitz.jar!/</resource>
<resource>jar:nbinst:///modules/ext/blitzui.jar!/</resource>
<resource>jar:nbinst:///modules/ext/jini-core.jar!/</resource>
<resource>jar:nbinst:///modules/ext/jini-ext.jar!/</resource>
<resource>jar:nbinst:///modules/ext/reggie.jar!/</resource>
</volume>
<volume>
<type>src</type>
</volume>
<volume>
<type>javadoc</type>
</volume>
</library>05-08-2007 usuniecie 'niebezpiecznych przyciskow' z serwera Blitza (ich nacisniecie wywala serwer) DONE 08-09-2007 ZRH- opcja "Run on server" w menu kontekstowym procesu automatycznie odpalajaca serwer ZRH nie mozna tu przypisac serwera - automatycznie odpalany jest Bundled Blitz, jesli jeszcze nie chodzi (w aplikacjach JEE mozna zwykle przypisac konkretny serwer - tu nie jest potrzebny specjalny)
DONE 16-09-2007 ZRH- zmiana adnotacji tak, zeby uruchamialy potrzebna przestrzen krotek jesli jej jeszcze nie ma -> ZRH wydaje mi sie ze nie da sie tego latwo zrobic w adnotacjach o ile w ogole sie da. Poza tym nie ma to wiekszego sensu - teraz pakiet z adnotacjami nie jest zwiazany z Netbeansem i wole, zeby tak zostalo. Dodam taka opcje uruchamiania przestrzeni krotek w "Run on server", gdzie jest to dosc bezposrednie (i korzysta z adnotacji) - bez tej funkcjonalnosci "Run on server" nie ma sensu bo Blitz po uruchomieniu nie ma wlaczonej zadnej domyslnej przestrzeni krotek
- dodanie do adnotacji @JavaSpaces atrybutu spaces w ktorym mozna wymienic kilka nazw przestrzeni krotek, z ktorych chcemy korzystac w projekcie i ktore powinny byc uruchamiane przy "Run on server". W tej chwili "Run on server" bierze wszystkie nazwy przestrzeni krotek, ktore pojawiaja sie w adnotacjach @Space w pliku klasy zawierajacej metode main. Jesli sa tez inne przestrzenie krotek, ktore uzywamy, ich nazwy powinny pojawic sie w tej adnotacji. Wynika to z tego, ze nie chce analizowac wszystkich klas projektu a w typowym przypadku wystarcza adnotacje @Space.
DONE 20-09-2007 ZRH- 16-09-2007 uaktualnienie ProjectTemplate tak zeby korzystal z nowych adnotacji
DONE 23-09-2007 ZRH- 16-09-2007 rozwiazanie problemu z uaktualnieniami wezlow Blitz'a w Runtime -> Servers. Jesli przestrzen ktorek zostanie uruchomiona za pomoca "Run on server" powinien pojawiac sie jej wezel.
DONE 07-10-2007 ZRH- ZRH tabelka z widokiem zawartosci krotek nie reaguje dobrze na zmienianie rozmiarow - moze lepiej byloby zrobic widok podobny do widoku Local Variables w debuggerze, tzn. tabela z drzewem w kazdym wierszu. W drzewie moznaby bylo w szczegolnosci zrobic widok rekurencyjny - moznaby rozwijac obiekty, zeby zobaczyc to co zawieraja w srodku. Jako opis kazdego obiektu wystarczy to co wypisuje jego toString
- zmiana widoku przegladarki krotek, zeby korzystala z Multiview API -> albo lepiej zeby byl widok drzewa z mozliwoscia zaglebiania sie w kazdy obiekt tak jak w debuggerze -> czytanie o JDPA
- ZRH skrot klawiaturowy dla "Run on Blitz"
DONE 13-10-2007 ZRH- ZRH wezel Servers->Bundled Blitz nie uaktualnia sie dobrze przy "Run on server". Jesli serwer jest wylaczony i rozwiniemy jego wezel a potem wykonamy "Run on server", to nie pojawia sie zawartosc. To bylo trudne!
DONE 11-11-2007 BRW- poprawienie akcji dla JavaSpacesNode w BlitzAdmin - Paweł tworzył wiele instancji jednego SharedObject, co powodowało wyjątki Netbeansa i nie wiem czy w ogóle akcje odnosiły się do poprawnej przestrzeni krotek czy nie.
- poprawienie błędu z ustawieniem debugPort = 12345 na stałe w konfiguracji Blitza - przy uruchamianiu kolejnych przestrzeni krotek zawsze leciał wyjątek, że port jest już użyty.
DONE 16-11-2007 WAW- BRW w BlitzAdmin aktywna jest tylko jedna przestrzeń krotek w danej chwili - załóżmy, że mamy uruchomioną przestrzeń x, potem uruchamiamy przestrzeń y. W tym momencie przestrzeń x nie jest już dostępna (leci pełno wyjątków z przeglądarki krotek) i nie można uruchomić programu korzystającego z tej przestrzeni, a przestrzeń y przejmuje wszystkie krotki x => przestrzenie nie są rozłączne - w jednej chwili mamy tylko jedną przestrzeń krotek, a powinniśmy mieć wiele. => Okazalo sie, ze Pawel uruchamial kolejne przestrzenie krotek w tym samym procesie, co dawalo wyzej opisany efekt. W tej chwili tworze osobny proces dla kazdej przestrzeni krotek, dzieki czemu otrzymuje oddzielne, niezalezne od siebie przestrzenie krotek. Na dodatek poprawnie sie zamykaja.
- 05-08-2007 usuniecie problemu z zamykaniem przestrzeni krotek - po usunieciu przestrzeni o danej nazwie nie da sie jej ponownie uruchomic, jesli nie zrestartuje sie Netbeansa <- to zostawiam dla Pawla => mialo byc dla Pawla, ale Pawel stwierdzil, ze to dziala i na tym sie skonczyla rozmowa.
DONE 17-11-2007 WAW- usuniecie problemu z java.lang.IllegalArgumentException: definePackage at ClassLoader.java. Wyjatek powstawal w dwoch miejscach: 1. przy pobieraniu Administrable przy uruchamianiu reggie (przez to serwer nie zatrzymywal sie poprawnie), 2. przy pobieraniu JavaSpace za pomoca SpaceLocator w JavaSpaceWrapper. W 1. byla proba ponownego zdefiniowania pakietu net.jini.admin, a w 2. net.jini.lookup.entry. Okazalo sie, ze blad wynikal z niepoprawnego zdefiniowania publicznych pakietow w modulach Blitz i Jini - Blitz wymienial kilka pakietow, ktore juz wczesniej byly eksportowane przez Jini. Usuniecie nazw tych pakietow z Blitz zalatwilo sprawe. Co nie zmienia faktu, ze znalezienie tego bledu bylo nietrywialne ;). Ale wyglada na to, ze pozbylam sie ostatniego wyjatku z tych, ktore zostawil Pawel.
DONE 19-11-2007 WAW- WAW zamkniecie Netbeansa przyciskiem x przy uruchomionych przestrzeniach krotek, zostawia w systemie dzialajace procesy ;) (przestrzenie krotek nie zamykaja sie przy zamknieciu Netbeansa) => wystarczylo dodac zamykanie serwera w BlitzDeploymentManager (wcześniej był tylko zwracany null).
- zmniejszenie ryzyka ze zamkniecie Netbeans'a przyciskiem x zostawi działające przestrzenie krotek (procesy rozpoczęte z tego Netbeansa nie zostaną zabite).
- zabronienie tworzenia dwóch przestrzeni krotek o tej samej nazwie (teraz daje dość dziwne efekty, choćby dlatego, że JavaSpaceWrapper jest przechowywany w mapie, gdzie kluczem jest nazwa przestrzeni).
DONE 06-12-2007 WAW- adnotacje dla debuggera
- zmiana TemplateProject, zeby korzystal z nowych adnotacji
- WAW przegladarka krotek czasem z duzym opoznieniem zauwaza niektore krotki - wyglada jakby Blitz mial ustawiony jakis cache albo cos w tym stylu. Jesli tak, to warto go wylaczyc - nie zalezy mi na szybkosci, ale za to chce od razu widziec krotki! Wydaje sie, ze teraz dziala. Jesli nie warto popatrzec na ustawienia w blitz-transient-config:
- desiredPendingWrites - the preferred queue size for pending writes
- dbCache - size of berkeley DB cache
- entryReposCacheSize - maximal number of entry instances to cache for a particular Entry type (w tej chwili to ustawilam na 1)
DONE 13-12-2007 WAW- wstawianie breakpoint'ow z wykorzystaniem adnotacji (tak jak wstawia sie standardowe breakpoint'y w Netbeansie) (akcja 'Toggle Blitz breakpoint' podlaczona do GlyphGutter'a)
- breakpoint'y moga byc wstawiane tylko w liniach, w ktorych jest wykonywana operacja na przestrzeni krotek
- jesli klikniemy na linie, w ktorej nie ma operacji na przestrzeni krotek, jest znajdowana najblizsza linia, w ktorej taka operacja jest (w w max. odleglosci 5 linii). Jesli w danym bloku/ zaznaczonym fragmencie kodu nie ma zadnej operacji na przestrzeni krotek slyszymy beep.
DONE 14-12-2007 WAW- WAW okienko z lista breakpoint'ow z mozliwoscia chwilowego wylaczenia niektorych/wszystkich
DONE 15-12-2007 BRW- podzial adnotacji i aspektow na dwa jar'y - jeden z adnotacjami i standardowymi aspektami a drugi z aspektem do debuggowania (chce dokompilowywac ten aspekt tylko w sesji debuggera)
DONE 16-12-2007 BRW- modyfikacja build.xml projektu, zeby potrafil dokompilowac aspekt do debuggowania i uruchomic tak spreparowane klasy (nowy task 'debug-on-blitz')
- poprawienie aspektu do debuggowania - dodanie wysylania informacji o biezacym polozeniu przez debuggowany proces - dzieki temu debugger bedzie mogl stwierdzic, czy proces zatrzymal sie na breakpoincie czy nie
- WAW akcja 'Debug on Blitz' - rekompiluje program z aspektami do debuggowania, najlepiej za pomoca zupelnie nowego task'a Ant'a - chce, zeby dzialalo poprawnie zwykle debuggowanie
- tworzenie nowych task'ow Anta i podczepianie ich do Netbeans'a:
- wywolywanie Ant'a bezposrednio z akcji (to zostalo zaimplementowane, pomysly wyzej dzialaja dla tzw. free-form project - projektow zbudowanych na gotowym pliku Ant'a, co nie jest zbyt ciekawe):
DONE 20-12-2007 WAW- WAW okienko z sesjami debugger'a z lista sesji i mozliwoscia wznowienia procesu
- obsluga wielu sesji jednoczesnie w debuggerze
DONE 23-12-2007 BRW- wybor unikalnej nazwy sesji
- pozbycie sie wyjatku zwiazanego z akcja 'Continue'
- BRW otwieranie okien z sesjami debugger'a i lista breakpoint'ow przy wykonaniu akcji 'Debug on Blitz' i zamykanie ich kiedy konczy sie ostatnia sesja debugger'a
- BRW zaznaczanie biezacego breakpointa w oknie z lista sesji
- WAW instalacja ImplementationProvider'a zapewniajacego akcje dla GlyphGutter'a przy instalacji modulu + akcja, ktora pozwala go wlaczac/wylaczac - BRW wystarczy przelacznik rodzaju breakpointow
- poprawienie bledow w layer.xml
- poprawnienie javaspaces.png
DONE 06-01-2008 WAW- WAW poprawienie rysunków do breakpoint'ów
- WAW zaznaczanie biezacego breakpoint'a w edytorze za pomoca nowej adnotacji, w szczegolnosci jedna adnotacja dla breakpointa aktywnego (combination w pliku xml definiujacym adnotacje)
DONE 07-01-2008 WAW- WAW checkbox 'Enabled/Disabled' obok każdego breakpoint'a - zablokowane breakpoint'y powinny wyświetlać się inaczej w edytorze - zastosowanie TreeTable
DONE 09-01-2008 WAW- BRW przycisk 'Continue' obok nazwy sesji - WAW zastosowanie TreeTable - 10-01-2008 nie do konca dziala przycisk obok nazwy sesji, jest przycisk wspolny dla roznych sesji, mozna jeszcze sprobowac uzyc zwyklego TreeTable zamiast TreeTableView, choc implementacja bedzie bardziej skomplikowana
- BRW po kliknieciu biezacego breakpointa w oknie z lista sesji przechodzimy do tej linii - 10-01-2008 akcja 'Go to source' w menu kontekstowym, to samo dla listy breakpointow
DONE 12-01-2008 BRW- dzialajace poprawnie przyciski 'Continue' obok nazwy sesji
DONE 14-01-2008 WAW- (REPLAY) model w schema2beans
- (REPLAY) typ pliku ze wsparciem dla xml multiview (poza implementacja widoku Design)
DONE 15-01-2008 WAW- (REPLAY) synchronizacja modelu z xml'em
- WAW (REPLAY) akcja validate
DONE 17-01-2008 WAW- dopisanie Javadoc'ow i uporzadkowanie kodu znajdujacego linie z wywolaniem metody na JavaSpace
DONE 25-01-2008 WAW- WAW (REPLAY) rozszerzenie walidacji - sprawdzanie czy breakpoint na linii z wywolaniem metody na JS, sprawdzanie czy klasa poprawna
DONE 27-01-2008 WAW- WAW (REPLAY) akcja replay
- WAW (REPLAY) zapisywanie samych breakpointow (moze dodanie disabled do replay.dtd?)
- WAW zapisywanie/odczytywanie breakpoint'ow z pliku (musi byc identyfikowany FileObject otworzony w edytorze) - 06-01-2008 moze da sie do tego wykorzystac zachowywanie stanu okien (wykorzystanie REPLAY)
DONE 31-01-2008 WAW- WAW przyciski do sesji: stop, stop-all
- WAW poprawienie ikon
DONE 01-02-2008 WAW- WAW (REPLAY) podpowiadanie skladni
DONE 02-02-2008 WAW- WAW (REPLAY) walidacja pliku do replay zaznacza linie z bledami
DONE 04-02-2008 WAW- WAW (REPLAY) nagrywanie sekwencji dzialan (breakpointy, sesje, kolejnosc wznowien)
- BRW zapis sekwencji wznowien procesow (do xml'a) i pozniejsze jej odtwarzanie (REPLAY)
DONE 06-02-2008 BRW- (REPLAY) zaznaczanie adnotacja biezacej linii w Replay (niestety nie wiele widac przez zaznaczania biezacego breakpointa)
- usuwanie wszystkich/wybranych breakpointow w oknie z breakpointami
DONE 08-02-2008 BRW- BRW (REPLY) przycisk 'Cancel reply'
- poprawienie bledow
DONE 09-02-2008 BRW- BRW (REPLAY) akcja 'Reply by step' - zatrzymuje sie przed kazdym kolejnym continue i czeka na wznowienie odgrywania przez uzytkownika
- poprawienie bledow
DONE 11-02-2008 WAW- BRW (SELECT) dodanie do javaspaces.jar aspektu, ktory dodaje i ustawia pole z identyfikatorem unikalnym dla kazdej krotki - zamiast id ustawiam i wysylam zserializowany wzorzec podany w metodzie take/read
- BRW (SELECT) zmiana protokolu Debuggera, zeby obslugiwal identyfikatory krotek - po wybraniu krotki Debugger w akcji Continue wysyla tez wartosc tego identyfikatora - zamiast identyfikatorow przesylam zserializowane wzorce krotek
DONE 12-02-2008 WAW- dostosowanie Debugger'a do nowej wersji biblioteki javaspaces-debug i nowej wersji protokulu komunikacji z debuggowanym procesem
DONE 14-02-2008 WAW- rozwiazanie problemu z ClassDefNotFoundException - Debugger nie umie deserializowac krotek, ktore dostaje od debuggowanego procesu, bo nie widzi odpowiednich plikow *.class. Dodaje do URLClassLoader'a adresy katalogu build/classes debuggowanego projektu. Poniewaz nie chce widziec zbyt wielu klas (co moze powodowac konflikty), podmieniam ClassLoader'a tylko na czas deserializacji. Potrzebuje tez oddzielnego parsera pakietow dla kazdego projektu (kazdy projekt ma inny zbior plikow *.class).
DONE 15-02-2008 WAW- WAW (SELECT) zmiana adnotacji @JavaSpaces, zeby dalo sie wlaczac i wylaczac wysylanie template'ow (czyli faktycznie mechanizm SELECT)
DONE 16-02-2008 WAW- nie mozna rzutowac na siebie klas zaladowanych innymi class loader'ami (specyfikacja Javy) - tym samym do kosza idzie cala poprzednia koncepcja SELECT (zdeserializowanych krotek nie uda mi sie zrzutowac na Entry, tak aby potem swobodnie ich uzywac)
DONE 17-02-2008 WAW- dzialajaca koncepcja mechanizmu SELECT:
- debuggowany proces
- zatrzymuje sie na metodzie typu take
- wklada do przestrzeni krotek krotke identyfikujaca sesje oraz breakpoint zawierajaca na jednym z pol wzorzec uzyty w metodzie take
- wysyla do debuggera pakiet z informacja o breakpoincie typu take
- debugger
- odbiera pakiet i parsuje go
- wyciaga z przestrzeni krotek krotke ze wzorcem i zapisuje go w sesji
- umozliwia wykonanie akcji 'Select entry'
- akcja 'Select entry'
- pobiera z przestrzeni krotek wszystkie krotki pasujace do podanego wzorca
- wybiera jedna z pasujacych krotek i zapisuje ja w sesji
- uzytkownik wykonuje akcje 'Select entry' a nastepnie wznawia proces
- debugger
- wklada do przestrzeni krotke identyfikujaca sesje oraz breakpoint zawierajaca na jednym z pol wybrana w 'Select entry' krotke
- wysyla pakiet z poleceniem wznowienia i informacja, ze byla wybrana pewna krotka
- debuggowany proces
- odbiera i parsuje pakiet z poleceniem wznowienia
- pobiera z przestrzeni krotke wlozona przez debugger zawierajaca wybrana w 'Select entry' krotke
- podstawia wybrana w 'Select entry' krotke w miejsce swojego orginalnego wzorca
- wywoluje wstrzymana metode pobierajaca krotke z przestrzeni
DONE 19-02-2008 WAW- BRW (SELECT) akcja 'Select entry' - jesli sesja zatrzymala sie na breakpoincie typu take, to wyswietla okienko z krotkami pasujacymi do wzorca podanego w take (jak pobrac wzorzec? - moze aspekt bedzie wysylal zserializowany argument?) i mozna wybrac krotke, ktora proces bedzie mial pobrac (aspekt ustawi we wzorcu odpowiednie id)
DONE 21-02-2008 WAW- polaczenie BlitzAdmin i Debugger w jeden projekt
DONE 23-02-2008 BRW- BRW (SELECT) przegladarka krotek wyswietla, ktora sesja chce dana krotke. Widok przegladarki krotek i widok do wyboru krotek sa ze soba zsynchronizowane.
- BRW (SELECT) zakonczenie sesji czysci przestrzen krotek z krotek sluzacych do wskazania krotki do pobrania przez proces - jesli stare krotki z poprzednich uruchomien beda zostawaly w przestrzeni, moze to zaburzyc dzialanie nowych sesji.
DONE 27-02-2008 WAW- WAW (SELECT) dostosowanie TemplateProject do nowej wersji javaspaces-debug.jar
- poprawienie drobnych bledow i przetestowanie na oddzielnym Netbeansie
DONE 29-02-2008 WAW- WAW (REPLAY) widok design
DONE 09-03-2008 WAW- winki
- poprawienie drobnych bledow
DONE 13-03-2008 WAWDONE 16-03-2008 WAW- WAW dodanie licencji do instalacji
- WAW poprawienie winków: forma osobowa na bezosobową
koniec marca - kwiecien to pisanie pracy magisterskiejDONE 02-04-2008 WAW- WAW poprawienie obslugi wielowatkowosci w DebugManager
- naprawienie buga w ReplayManagerze
DONE 03-04-2008 WAW- WAW usunac wieszanie sie gui przy replay (trzeba akcje puscic w calosci na RequestProcessor) - wykorzystanie Progress API
prace zwiazane z Netbeans Innovators Grant sa opisane na stronie grantDONE 18-05-2008 BRWNOT DONE- BRW sprawdzenie dlaczego Blitz nie chce działać na niektórych komputerach
WILL NOT BE DONE- WAW polaczenie Debugger+TemplateProject+EntryEditor w jeden modul
- ZRH przegladarka krotek nie uaktualnia widoku po zmianie kodu klasy krotki (np. nie widac dodanego pola) - klasa po zmianie powinna pojawiac sie jako nowa - wersjonowanie klas? Sprawdzic przez co to nie dziala - czy zle dziala czesc zwiazana z Blitzem i pobieraniem krotek, czy zle dziala widok. W szczegolnosci czy zmiana serialVersionUID by cos pomogla o ile to nie jest wina Blitza <- to jest wina Blitz'a i ten problem nie bedzie rozwiazany
- BRW sprawdzenie zlych rozwiazan studentow - czy rzeczywiscie da sie znalezc bledy?
Do przejrzeniaDalej (just ideas already implemented in a big part)- prosty debugger:
- wszystkie procesy zwisaja na operacjach z przestrzeniami krotek z odpowiednia adnotacja
- implementacja: aspectJ - przy uruchomieniu programu proces otwiera socket (numer portu moze byc parametrem uruchomienia, np. w properties). Przed operacja na przestrzeni krotek dodawany jest aspekt, ktory kaze procesowi czytac ze swojego socketu - w momencie, kiedy uzytkownik kliknie wznow w okienku pluginu na ten socket jest cos pisane - powoduje to wznowienie procesu.
- okienko z lista zwisajacych procesow - wybieramy ktory ma isc dalej
- dodatkowo przy uruchomieniu kazdego procesu musze mu w properties przekazac, ktory socket jest dla niego wlasciwy -> trzeba zmodyfikowac sposob uruchamiania procesow. Porty otwiera tez zwykly debugger Netbeansa - warto znalezc jak to jest robione. Mozna tez przed uruchomieniem wyswietlic pytanie o nazwe dla procesu, ktora ma byc wyswietlana w okienku do przegladania procesu - we wspolbieznych programach czesto uruchamia sie wiele razy ten sam program, a do debuggowania dobrze jest je rozrozniac.
- graf z sieci petriego -> jesli poprawne to graf jest ograniczony -> to juz zaawansowane
- okienko z zawartoscia -> umie podswietlic, ktore krotki moze dostac zawieszony proces
- okienko z lista procesow -> na ktorej przestrzeni krotek sie zawiesil
- umieszczanie breakpointow -> na kazdej operacji na przestrzeni, ew. operacje z adnotacjami
- wybranie ktory proces moze isc dalej + wybierz cokolwiek <- token game z sieci Petriego
- graficzny debugger:
- podlaczenie sie do standardowego debuggera albo wykorzystanie aspectJ'a
- zatrzymywanie i wznawianie wskazanego procesu(ow)
- wprowadzanie scenariuszy dzialania procesow, zapamietywanie ich i odtwarzanie (na tyle na ile da sie odtworzyc)
- edytor do wstawiania breakpointow w procesach
- algorytm analizujacy mozliwy przebieg procesow?
- manipulowanie kolejnoscia dostepu procesow do przestrzeni krotek?
|