Aufteilung Plugins

G

Gast2

Gast
Hallo,

ich habe eine Frage ob dass was ich vor hab überhaupt möglich ist...
Ich wollte meine eigenen Util Methoden in ein Plugin machen und meine eigenen UI Sachen in ein anderes.
Jetzt hab ich eine Methode die aus einem byte[] ein Object machen soll.
Also in meinem UI verwende ich diese methode. Und in meinem RCP möchte ich dann die UI Klasse verwenden. Doch ich bekomme immer eine ClassNotFound Exception da die Klasse die gelesen werden soll in meinem RCP ist.

1.Plugin Util-Klassen
2.Plugin UI verwendet 1.Plugin und hier wird mit ObjectInputStream das Object gelesen
3. RCP verwendet UI und dort ist die Klasse die gelesen werden soll beinhaltet...

Weiß jemand on sowas möglich ist?Oder wie man es anders aufteilen muss?
 

Wildcard

Top Contributor
Wenn Klasse A ein Objekt der Klasse B erzeugen soll, dann muss die Klasse B für den Classloader der Klasse A sichtbar sein.
 

Wildcard

Top Contributor
Der Classpath eines Bundles definiert sich aus den exported Packages aller required Bundles und aller importierter Packages.
 
G

Gast2

Gast
Der Classpath eines Bundles definiert sich aus den exported Packages aller required Bundles und aller importierter Packages.

Mhm...
Ich hab mein RCP und binde ein Plugin ein welches das Objekt erzeugt und zurück gibt. Das heißt ich müsste dem Plugin meine Klasse importieren???? Oder reicht es wenn ich das package bei meinem RCP exportiere?
 
G

Gast2

Gast
Die Informationen die du lieferst sind einfach nicht ausreichend. Werde konkreter, sonst kann ich nicht helfen.

Mhm ok weiß nicht wie konkreter werden soll, darum versuch ichs mal mit bissl code zu erklären ;)

Also zum Beispiel ich hab ein Plugin mit folgender Methode
Java:
public class ObjectUtil {

	public static byte[] getBytes(Object obj) throws IOException  {
		ByteArrayOutputStream bos = null;
		ObjectOutputStream oos = null;
		try {
			bos = new ByteArrayOutputStream();
			oos = new ObjectOutputStream(bos);
			oos.writeObject(obj);
		} finally {
			bos.close();
			if(oos != null)	oos.close();
		}

		return bos.toByteArray();
	}
	
	public static Object getObject(byte[] bs) throws IOException, ClassNotFoundException  {
		Object obj = null;
		ByteArrayInputStream bis = null;
		ObjectInputStream ois = null;
		try {
			 bis = new ByteArrayInputStream(bs);
			 ois = new ObjectInputStream(bis);
			 obj = ois.readObject();
		} finally {
			bis.close();
			if(ois != null)ois.close();
		}
		return obj;
	}
}

Und die will ich jetzt in einem 2ten Plugin verwenden

Java:
public class Test{

         byte[] bs;

	public void test1(Object object) {
		try {
			bs = ObjectUtil.getBytes(object);
		} 
		catch (Exception e) {
			e.printStackTrace();
		}
		
	
	}
	
	@Override
	public Object test2() {
		try {
			o = ObjectUtil.getObject(bs);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {

			e.printStackTrace();
		}
		return o;
	}

}

Also test1 klappt ohne Probleme beim 2ten findet er die Klasse nicht, da diese sich in Plugin 2 befindet und nicht in 1.
 

Wildcard

Top Contributor
Das sieht nach einer Art Utilitiy Funktion aus. Das heißt dein Bundle hat wahtscheinlich eine Dependency zu diesem Utility Bundle. Damit das funktionieren kann muss dein Utility Bundle aber ebenfalls eine Abhängigkeit auf das andere Bundle haben um die Klassen zu kennen (für den ObjectInputStream) und damit wäre die Abhänigkeit zirkulär.
 
G

Gast2

Gast
Das sieht nach einer Art Utilitiy Funktion aus. Das heißt dein Bundle hat wahtscheinlich eine Dependency zu diesem Utility Bundle. Damit das funktionieren kann muss dein Utility Bundle aber ebenfalls eine Abhängigkeit auf das andere Bundle haben um die Klassen zu kennen (für den ObjectInputStream) und damit wäre die Abhänigkeit zirkulär.

Jap ist eine Utilitiy Funktion ... Genau wegen Abhängigkeit frag also ist das einfach nicht möglich... Außer ich gebe den ObjectInputStream zurück und jedes Plugin liest die Objekte(welche es kennt) selber ein...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D RCP P2-Repository für Eclipse-Plugins Plattformprogrammierung 0
A RCP Objekt(parameter) zwischen Plugins austauschen Plattformprogrammierung 0
D RCP closed source RCP erweitern & Plugins nutzen Plattformprogrammierung 4
J Zwei Applikationen aus mehreren Plugins generieren Plattformprogrammierung 2
M RCP Ein Command in mehreren Plugins verwenden? Plattformprogrammierung 12
G RCP Abhängigkeiten von Eclipse Plugins Plattformprogrammierung 9
S Equinox: plugins und features Plattformprogrammierung 8
J Daten zwischen Plugins austauschen Plattformprogrammierung 4
M Daten zwischen 2 Eclipse-Plugins tauschen Plattformprogrammierung 5
P Wo im Projekt weitere Plugins anmelden ? Plattformprogrammierung 2
S PreferenceStore und unterschiedliche Plugins Plattformprogrammierung 4
lumo ECLIPSE RCP - mehrere plugins - eine resource? Plattformprogrammierung 3
M Teilweise Probleme beim Updaten von Plugins Plattformprogrammierung 3
S Versionsprobleme beim Erstellen eines Plugins Plattformprogrammierung 6
E Test von RCP Plugins in Fragmente oder Plugins Plattformprogrammierung 3
M JUnit 4.3.1 aus eclipse plugins durch junit 4.4 ersetzen Plattformprogrammierung 2
dzim java.lang.ClassNotFoundException beim laden eines Plugins Plattformprogrammierung 10
Paule Eclipse Instanz + eigene Plugins Plattformprogrammierung 4
S Plugins interagieren lassen Plattformprogrammierung 6
Wildcard Wie buildet ihr eure PlugIns? Plattformprogrammierung 6
dzim eigene Application und PlugIns Plattformprogrammierung 16
dzim Classpath in PlugIns Plattformprogrammierung 7
T [RCP] Was passiert genau beim laden eines Plugins? Plattformprogrammierung 4
G Eclipse, Plugins, Properties, und wo zum Geier steckt das? Plattformprogrammierung 21
lhein Sprachumschaltung eines eigenen Eclipse Plugins Plattformprogrammierung 8
T Kommunikation zwischen Plugins (RCP) Plattformprogrammierung 18

Ähnliche Java Themen


Oben