Caller "Rückverlogung" via refletions in klasse? D

Status
Nicht offen für weitere Antworten.

rockbottom

Mitglied
Hi ho ich bin noch recht frisch in Java und habe mehrer generelle Frage bezüglich des Debugings.

Das mache ich momentan innerhalb eines etwas grösseren Java opensource Projektes mit log4j und sfl4j und logback... so wie es dort bereits implemtiert ist...

Da der ganze Sourcecode jedoch recht komplex ist und es keine UML Diagramme über Dataflow und Dergleichen vorhanden sind, hangel ich mich bei den Bugs und fehlern bisher immer mit diesem logger folgenden codezeilen durch:

Code:
Class<?> callingClassName = sun.reflect.Reflection.getCallerClass(2);
		System.out.println("[ CALLER ] ||| We were called in class _myClass.java near to line XX in method _myMethod by : " + callingClassName + " | with Argument 1 =  " + ARG1 +" | and Argument 2 = "+  in + " |... ");


nun erfordert das bei ner tiefgreifenden suche nem Anfänger wie mir sehr viel Geduld ab, daher habe ich ein paar Fragen.

1) Kann ich diese Codezeilen irgendwie so erweitern das ich einfach nur wie beim logger einmal pro klasse eine factory implementire und dann eine einfache Codezeile habe und liesse sich das ganze so erweitern das Daten wie _myClass.java oder die zeilen nummer, die methode in der diese codezeile steht direkt ausliest und ersetzt?

2) Ist es möglich diese Codezeile zu erweitern das nemen der Rufenden Klasse auch die Rufende Methode oder die Zeilennummer des Aufrufes ausgegeben wird?

3) gibt es eine Software ein eclipse ad on oder ähnliches mit dem ich den bestehnden code in ein UML diagramm verwandeln kann (nur anhand des gegebenen codes)

4) hat noch jemand allgemeine tips zum debugen bei grösseren opensource projekten?

mfg
 
M

maki

Gast
Finde dieses vorgehen sehr aufwändig und bin mir nicht sicher ob das sinnvoll ist, reverse engineering durch logging ist sehr aufwändig...

Unittests können in agilen Projekten teil der Doku sein
Auch lassen sich mit Unittests nutzen um Bugs zu finden ;)
 

rockbottom

Mitglied
hmm wie gesagt bin mit dem Debugging in Java noch nicht so wirklich vertraut und da das angesprochene Opensourceprojekt noch kein fertiges Produkt ist das auch mal fehler hat und man sich dann immer fragt, liegts an MEINEM client oder ist es ein BUG des Servers, ist das zuweilen zeitaufwendig und umständlich wenn die Klassenstruktur recht komplex ist.

Hättest du evtl einen link zu nem Tutorial das leicht verständlich ist, ich will keine Wissenschaft draus machen nur wissen was wo wann ankommt, das mit dem UML Diagramm vom source wäre auch sehr schön, zumindest zum verständniss für mich.

Danke schonmal für die Antwort:)

mfg
 
M

maki

Gast
Ich nutze Enterprsie Architect, damit kann man auch reverse engineering von Code zu UML machen, bezweifle aber stark das es nutzt ;)

Um welches Projekt geht es denn?
Er Anlaufstellen sind immer dessen Forum/mailing list/Doku/Wiki/Api Dok
 

rockbottom

Mitglied
bei dem projekt handelt es sich um "Red5" , ein RTMP streaming server wie der flash media server, der wowza server ... etc... nur halt opensource

Anlaufstellen sind immer dessen Forum/mailing list/Doku/Wiki/Api Dok

Foren gabs mal hat keiner geantwortet wurden geschlossen.

Mailingliste gibts 3, die für die leute die damit entwikeln... das ist so wie wenn du mit gott redest... im bestenfall erscheinen nebelschwaden am horizont als ne antwort...

Doku gibts auch, die hälfte die drinn steht ist für ältre versionen.
Wiki gibts auch eine ja wie ungefähr 5 seiten der besitzer die fangen immer mal wieder ne neue an weil die ja so ein geiles produkt haben dafür muss dann der dokumentations und wikki schreiber auf der besitzer mailingliste jemand des core entwickler teams bitten diverse Seiten für ihn zu löschen und abzuändern da ihm auf dem server die Rechte Fahlen.

Api Dokumentation, ja die iss klasse ... vor allem weil man sich die selber vom source erstellen kann, zumindest die ohne kommentare... weil die remarks im source sind ungefähr : ja ist richtig, mussman mal schaun obs klappt oder hier nachbessern.

Über änderungen oder Umzüge des SVN Server und somit seiner Adresse wird man ungefähr 1 tage nachdem es stattgefunden hat benachrichtigt, was sehr toll ist wenn man gerade 3 tage mühsam alle dependencys zusammengesucht hat... 23 an der zahl alle in der richtigen version zu finden war echt der hammer um so mehr hab ich mich gefreut als ich dann auf der mailingliste las das die nun auf dem neuen svn server zu finden seien.

Stell dir einfach vor du bist richtig Gut in Java hast aber keinen blassen schimmer von Assembler und musst nun um deine Java Anwendung nutzen zu können die Daten zu einem Server hinschicken der dir alle 3 tage mit ner anderen macke kommt, die dich jedesmal vor das selbe Problem stellt, liegt der fehler bei mir oder am Server.

Ungefähr so gehts mir gerade!
Mit anderen Worten die "fremde Sprache" Java macht mich weniger fertig als der mangeldne Informationsfluss.

btw. die Standart Antwort die einen nach 3 Wochen lesen so richtig auf die eier geht ist... "read the manual" komischer weise kann einem keiner nen link zu einem Funktionierenden zur aktullen Version passenden geben:)

Von daher wurstel ich halt selber im server rum:) ich mein einerseits find ichs nützlich ich wollt eh schon immer mal Java erlernen, aber nicht unbedingt so.

mfg
 
M

maki

Gast
Hört sich nicht so an, als b da eine große "community" hintersteht, würde mir das genau überlegen ob ich mitmache..
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen


Oben