Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1563 connectés 

  FORUM HardWare.fr
  Programmation

  [JAVA] Creation de classes at runtime...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA] Creation de classes at runtime...

n°112164
Kahyman
Posté le 14-03-2002 à 17:24:18  profilanswer
 

Salut,
 
J'ai une petite question assez pointue... que j'ecris sans grande conviction. :)
 
Tout d'abord la situation : j'ai besoin de creer des classes a la volee at runtime. Ces classes seront des classes d'interposition entre deux objets.
 
En fait, a partir de n'importe quel objet O j'aimerais creer une classe d'interposition Io respectant la meme interface que O (ou O n'a aucune variable publique). Les applications n'obtenant pas de references sur O mais sur Io qui communique avec patati patata [le reste n'est pas important]...
 
Je possede deja la classe I de laquelle toutes les classes Io vont heriter, a present il me faut recupperer les interfaces de la classe O et creer Io at runtime (je veux un array de bytes representant la classe en sortie, pas de fichier .java ni de .class).
 
Pourquoi ne pas creer les classes Io avec une moulinette Offline puis les utiliser dans l'application ? Car le but est d'avoir un espace memoire distribue et regit par des regles de securite tournant en tant que service (sur une plateforme donnee). On ne peut savoir a l'avance quels seront les objets inseres.
 
Ma question est la suivante : quels sont les outils que vous connaissez pour la creation de classes a la volee (pour une JDK 1.1.8) ? L'outils doit etre leger au maximum (creation at runtime sur un site pas forcement puissant, vu que tout site faisant tourner la plateforme peut lancer ce service)...
 
Jusqu'a present j'utilisais SableCC pour ma moulinette offline (autre utilisation), mais cet outil est trop lourd... Idem pour JavaCC... BCEL pourrait etre une solution mais son utilisation n'est pas claire a mon gout.
 
Que connaissez vous d'autre ? Savez vous ou trouver des exemples de ce genre ?
 
A+ et merci

mood
Publicité
Posté le 14-03-2002 à 17:24:18  profilanswer
 

n°112265
WiseTechi
Posté le 14-03-2002 à 19:36:09  profilanswer
 

Une idée jetée comme ça en passant :
 
Tu ne peux pas essayer d'utuliser la réflexion pour créer et compiler la classe dont tu as besoin à la volée ?
 
A++

n°112287
Kahyman
Posté le 14-03-2002 à 20:55:07  profilanswer
 

Salut
 
La reflexivite peut etre utilisee pour trouver l'interface oui...  
 
Mais la n'est pas vraiment le probleme : il faut que je cree une classe de toutes pieces et je ne veux pas me retapper la creation d'un constant pool et de bytecode a la main en analysant une classe. Certains outils le font je ne vais pas reinventer la roue (la modifier pour l'alleger eventuellement). Ceci sans dire qu'on desire eviter l'utilisation de la reflexivite.
 
J'ai parle d'une classe d'interposition, mais en realite je dois en creer deux qui donnent quelque chose du genre :
 
service : Service->Ios->O  
client :  Application->Ioc  
lien application-objet : Application~>O
lien reel : Ioc=>Service
 
Ou :
 
-> est une reference forte
~> est une reference faible (c.f. plus bas)
=> est une communication par socket (p.ex.)
 
Le service recoit des messages de Ioc pour l'objet O. Il doit trouver localement la classe d'interposition Ios correspondant a l'objet qui est elle capable de communiquer avec celui-ci.
 
Ioc est la classe d'interposition cote client, elle sait ou trouver (s'il n'a pas migre) le service et communiquer avec lui. Elle ne communique pas directement avec l'objet ni la classe d'interposition Ios, mais envois des messages au service. Les applications communiquent avec cette classe sans savoir ou se trouve le service ni l'objet.
 
Le passage de Ioc a Ios est ce qu'on appelle une reference faible. L'avantage est que cette methode permet un controle des acces sur les objets, ce qui permet d'eviter l'aliasing et le locking d'objets, mais aussi de faire migrer les clients de facon transparente.
 
Eventuellement, un objet dans l'espace memoire partage pourrait migrer vers un autre espace ce qui donnerait apres modification de Ios... :
 
serviceNew : ServiceNew->IosNew->O  
serviceOLD : Service->IosReplaced->IocNew
client :  Application->Ioc  
lien application-objet : Application~>O
lien reel : Ioc=>Service=>ServiceNew
 
La plateforme permettant de simplifier (par envoi d'evenements) le tout si une migration a ete detectee en un truc du genre :
 
serviceNew : ServiceNew->IosNew->O  
client :  Application->Ioc  
lien application-objet : Application~>O
lien reel : Ioc=>ServiceNew
 
Bref meme si ce n'est pas fini c'est deja :crazy:  
 
Alors qqun connait des outils de creation de classes a la volee ? :lol:

n°112288
Kahyman
Posté le 14-03-2002 à 20:56:11  profilanswer
 

Ah oui :  
 
comme => est asynchrone, ~> l'est aussi :)

n°112451
Kahyman
Posté le 15-03-2002 à 10:59:32  profilanswer
 

up sans grande conviction...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [JAVA] Creation de classes at runtime...

 

Sujets relatifs
[java] bean - Attention question con - nerveux passez votre cheminJava - coté serveur, ça donne quoi !?
[JAVA] Comment virer la console[java] Deprecated qqun aurait une def en français ?
[java][jsp][servlet] Pb de perte d'ID de session entre servlet et jsp[JAVA] Recuperation d'un fichier source
[JAVA] truc bizarre pour debutant en applet...[JAVA] Quels sont vos forums préférés pour développer en Java ?
Php vs Applet java[java] a propos des couleurs...
Plus de sujets relatifs à : [JAVA] Creation de classes at runtime...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR