Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: TomLudwig am 18.09.07 - 16:05:29

Titel: Gemeinsames Nutzen von JAVA Bibliotheken
Beitrag von: TomLudwig am 18.09.07 - 16:05:29
Hallo zusammen,

folgendes Problem:

Ich möchte eine JAVA Bibliothek an einem einzigen Ort "Warten" und von vielen anderen Agenten (unterschiedliche Datenbanken) auf diese zugreifen können.

In einem Java Agenten gibt es die Möglichkeit "Gemeinsame Java Bibliotheken" einzubinden. Welche Vorgaben sind dabei zu beachten?

Im Moment gehe ich wie in der Hilfe beschrieben vor:

Including a script library on the class path
  1.   Click Edit Project.
  2.   Choose Shared Java Libraries from the Browse menu.
  3.   Choose the desired database from the options in the Database box.
  4.   Select the script library to add to the class path.
  5.   Click Add/Replace File(s).

Leider bekomme ich nur eine Fehlermeldung: "Java Fehler. Wählen Sie Ja um ... "

Weder in der Java Bibliothek noch im Agenten sind allerdings Fehler enthalten.

Danke für eure Hilfe!!!

Titel: Re: Gemeinsames Nutzen von JAVA Bibliotheken
Beitrag von: flaite am 18.09.07 - 18:28:54
Benutz das die ganze Zeit und hab damit keine Probleme.
Titel: Re: Gemeinsames Nutzen von JAVA Bibliotheken
Beitrag von: TomLudwig am 19.09.07 - 08:40:11
Kann ich dir mal meine zwei Beispieldatenbanken schicken/hier anhängen?
Oder hast du ein Beispiel parat? --> Es klappt nicht.

Kanns an der NotesVersion liegen? Client 6.5.4 Server 6.5.1
Titel: Re: Gemeinsames Nutzen von JAVA Bibliotheken
Beitrag von: flaite am 19.09.07 - 09:05:52
Hmm. Nach genaueren nachlesen...
Hast du mal versucht die Lib in die gleiche Datenbank wie den Agent zu packen, in den du sie einbindest?
Ehrlich gesagt würd ich nie Bibliotheken aus einer anderen Datenbank einbinden. 
Sieht zwar erstmal schön zentral aus, führt aber zu Inflexibiliät.
Was ist, wenn du doch mal das öffentliche Interface einer Library ändern mußt? Dann verlierst du möglicherweise den Überblick wo die alles eingebunden ist.
Außerdem gibts andere Möglichkeiten der Zentralisierung (über Schablonen -> Gestaltungselement Library immer von Schablone x beziehen). Aber wie gesagt, ich frag mich, ob solche Zentralisierungen nicht zu rigide sind und eigene Probleme schaffen. 
Vielleicht ist eine organisatorische Möglichkeit machbar. D.h.  Entwickler, die an der Bibliothek arbeiten, nehmen nix vom öffentlichen Interface weg (d.h. nur nach umfangreicher Absprache) und Erweiterungen werden überall übernommen. 

Mich befriedigt das alles nicht. Was ich eigentlich will, ist, dass die Java Bibliotheken in Eclipse (ohne Domiclipse) mit Junit-Test Abdeckung entwickelt werden und die per Ant-Task in die Datenbanken geschossen werden. Domiclipse hat hierfür den entsprechenden Code, den Ant Task müsste ich selber schreiben.
Wenn ich darüber rede, ernte ich aber zur Zeit auch nur erschreckte Blicke und
"Du machst das aber nach dem Release-Termin".

Gruß Axel 
Titel: Re: Gemeinsames Nutzen von JAVA Bibliotheken
Beitrag von: TomLudwig am 19.09.07 - 09:44:15
Ich halte eine zentrale Haltung des Frameworks für durchaus sinnvoll. An dieser Bibliothek sollte eigentlich nichts geändert werden. Außer Erweiterungen...

Die Option "gemeinsame Java Bibliothek verwenden" funktioniert ja leider, wie bereits geschrieben, nicht. Über die "Schablonen-Funktion" hab ich mir noch gar keine Gedanken gemacht. Wäre aber durchaus ne Möglichkeit...

Prinzipiell muss sichergestellt werden, dass mehrere Entwickler immer am gleichen Datenbestand arbeiten (in Eclipse). Anschließend sollen die Änderungen in die Datenbanken geschossen werden.
Bisher haben wir das mit Domiclipse und Subclipse (+Eclipse) gemacht. Es kam aber immer wieder zu fehlern, dass Domiclipse nicht richtig arbeitete...

Ich habe ehrlich gesagt von Ant-Tasks keinerlei Ahnung. Ein erstes Einlesen in die Thematik stimmt mich allerdings fröhlich. Generell ist deine Beschreibung eigentlich genau das was ich brauche/möchte.
Stellt sich für mich die Frage wie groß der Aufwand ist (oder ob es überhaupt möglich ist :P), sich einzuarbeiten und das ganze zu realisieren?

Kannst du mir kurz ein paar Vorschläge geben, wie ich am besten anfange?
Titel: Re: Gemeinsames Nutzen von JAVA Bibliotheken
Beitrag von: flaite am 19.09.07 - 10:08:49
Möglich sollte das sein.
Für irgendwas sollte ja das neue Ant in Action von Manning gut sein.
Wäre interessant zu wissen was genau in Domiclipse nicht funktioniert (ist ja openSource). Wobei die Fehlersuche ohne Eclipse Plug-in Dev Erfahrung auch keinen Spaß macht.
Vielleicht fang ich am WE mal damit an. 
Meld mich.
Titel: Re: Gemeinsames Nutzen von JAVA Bibliotheken
Beitrag von: TomLudwig am 19.09.07 - 10:15:20
Meistens konnten keine Agenten mehr in die Datenbanken übertragen werden. Kein Abbruch oder Fehlermelung. Die Agenten wurden einfach nicht upgedated.
Auch die Eigenschaften der Agenten konnten nicht durch alle Entwickler verändert werden. Nur durch den, der den Agenten erstellt hat.
Lauter solche Kleinigkeiten :)

Werd mich am Wochenende auch mal mit dem Thema Ant usw. auseinander setzten. Scheint ziemlich intressant zu sein...

Dank dir schon mal vorab.
Titel: Re: Gemeinsames Nutzen von JAVA Bibliotheken
Beitrag von: flaite am 20.09.07 - 09:43:50
Du könntest Domiclipse selbst debuggen... Oder tracing Meldungen ausgeben.
Nicht so schwierig, aber zu schwierig hier kurz zu erklären.
 
Titel: Re: Gemeinsames Nutzen von JAVA Bibliotheken
Beitrag von: flaite am 26.09.07 - 11:43:55
Domiclipse bietet den cvs auf den Source an. Hier wird das erklärt: http://www.domiclipse.com/frunobulax/domiclipse.nsf/pages/cvs-import
Du müßtest jemanden in deinem Team haben, der sich mit Eclipse-Plug-in Entwicklung auskennt. Der kann das debuggen. Das zu erklären ist ein bischen kompliziert. Wird in der einschlägigen Literatur zu Eclipse Plug-in Entwicklung erklärt.
Ich werde mir - wenn ich Zeit habe - die interessanten Teile von dem Source Code von Domiclipse herausholen, den Entwickler um Erlaubnis fragen und damit einen Ant Task bauen. Kann aber dauern, weil es im Grunde für mich keine Dringlichkeit hat.

Ich hab in den Agenten wenig Code. Der meiste Code ist in der Java Script-Bibliothek (nicht zu verwechseln mit JavaScript Script-Bibliothek). Dort hab ich Code ohne jegliche Abhängigkeit zu Domino jars. Das erleichtert das Schreiben von Junit-Tests in Eclipse. Der halbautomatisierte Update Mechanismus  für die Java Script-Bibliotheken, den Notes von Hause aus liefert, über Edit Projekt/richten auf src-Ordner meines Eclipse Projekts/bei Filetypes source anklicken und Add/Replace All funktioniert bei mir absolut stabil (und das sind eine Menge Klassen).

Werd dann noch versuchen den halbautomatisierten Mechanismus über den ANT Task völlig zu automatisieren und von Eclipse starten zu können.