Instance JAR

magnus_maximus007 Messages postés 17 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 15 mars 2016 - 2 mars 2013 à 10:34
magnus_maximus007 Messages postés 17 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 15 mars 2016 - 26 mars 2013 à 13:44
Bonjour
j'aimerais faire une application qui gère une sorte de plugin (class, thread, etc)
pour le moment avec la réflexivité j'arrive à charger la classe du jar et appelé une méthode. J'aimerais maintenant créer une sorte d'événement dans mon jar qui pourrait être reçu dans la classe qui instancie le jar et donc remonter des infos du jar vers le programme principal.

Quelqu'un a des idées?

Merci

6 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
3 mars 2013 à 11:48
Salut,

Je ne comprend absolument rien ? c'est quoi une "sorte de plugin", et c'est quoi une sorte d’évènement ?

Si tu n'es pas précis, nous ne pouvons pas te comprendre ?

Tu veux faire communiquer des programmes ? Si c'est le cas, il faut que tu exportes tes informations dans un fichier texte et que tu les lises avec l'autre programme.
0
magnus_maximus007 Messages postés 17 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 15 mars 2016
3 mars 2013 à 12:04
Oui c'est une sorte d'application principale dans laquelle on charge des plugins.
Ceux-ci font leurs jobs et remontent le résultat vers l'application principale qui l'affiche. J'avais déjà fait cela en .net avec des dll maison mais la j'aimerais faire la même chose tout en java.
J'aimerais ne pas devoir passé par l'écriture dans des fichiers pour retrouver les résultats.

J'espère que cela est plus clair.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 mars 2013 à 06:31
Salut,

Il te faut faire une sorte de code qui déclarera une sorte de classe événement dans une sorte de plugin qui pourra être instancié par une sorte de programme principal en quelque sorte.

En gros :

Tout tes sortes de plugins exposent une sorte interface :
public interface SorteEvenement {
  public void sorteFonction(String sorteParametre);
}


Et la sorte de constructeur de ton plugin demande un SorteEvenement :
public class SortePlugin {
  protected SorteEvenement event;

  public SortePlugin(SorteEvenement event) {
    this.event = event;
  }
}


Enfin, lorsque tu as besoin de déclencher l'événement pour ton sorte de programme principal, il te faut appeler la sorte de fonction dans le sorte d'événement :
event.sorteFonction(sorteParametre);


Et ca doit sorter !
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
magnus_maximus007 Messages postés 17 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 15 mars 2016
4 mars 2013 à 17:28
ok pour la sorte d'interface
mais apres dans la sorte d'application principale comment je gère cet event?
De plus j'instancie de façon dynamique l'ensemble de mes plugin

J'espère que ca sortera ;-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
magnus_maximus007 Messages postés 17 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 15 mars 2016
22 mars 2013 à 17:08
J'ai essayé mais je n'y parviens toujours pas
Est-ce possible d'avoir un bout de code. Avec la réflexivité j'arrive à accéder à une méthode. Ma class loader dynamiquement gère une connexion via un socket et j'aimerais avec un thread pouvoir recevoir des datas et les transmettre à la classe mère.

Merci
0
magnus_maximus007 Messages postés 17 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 15 mars 2016
26 mars 2013 à 13:44
J'ai essayé mais ca ne fonctionne pas.
J'ai créé l'interface dans le plugin et dans le programme qui instancie le plugin dynamiquement, j'ai aussi ajouté une méthode sortefonction(string parametre).
Dans le plugin j'ai mis la même interface comme marqué par DARKSIDIOUS.
J'ai aussi ajouter le constructeur.
Mon problème lors de l'instanciation dynamique que dois-je faire avec le constructeur? Qu'est-ce que je dois passer?

Merci d'avance
0
Rejoignez-nous