j'aimerais savoir si certains d'entre vous =E0 d=E9j=E0 cr=E9er une sorte de
"ClassUnloader", afin de d=E9charger en m=E9moire les classes d'un jar.
Toutes informations et voies me seraient utiles. En effet, je suis en
train de faire dans in projet la mise ne place d'un code mobile en
RMI, o=F9 nous stockons sur l'application cliente des classes de plugins
charger dynamiquement. Mon seul ennui, c'est que lorsque je charge mon
jar de classes t=E9l=E9charg=E9s, et que de nouvelles classes arrivent, je
dois d=E9charger le jar, et =E7a j'ai du mal pour le moment.
Je vous remercie d'avance de vote attention, ainsi que de vos
r=E9ponses.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ishur
Ce que tu veux faire ressemble a de l'OSGi, tu devrait jeté un coup d'oeil dessus si tu ne l'as pas déjà fait. http://en.wikipedia.org/wiki/OSGi
Je pense que ce qu'il faut c'est d'avoir un ClassLoader par plugin.
On 25 mar, 21:28, "indiana_jules aka julien roche" wrote:
Bonjour à tous,
j'aimerais savoir si certains d'entre vous à déjà créer une sorte de "ClassUnloader", afin de décharger en mémoire les classes d'un jar.
Toutes informations et voies me seraient utiles. En effet, je suis en train de faire dans in projet la mise ne place d'un code mobile en RMI, où nous stockons sur l'application cliente des classes de plugins charger dynamiquement. Mon seul ennui, c'est que lorsque je charge mon jar de classes téléchargés, et que de nouvelles classes arrivent, je dois décharger le jar, et ça j'ai du mal pour le moment.
Je vous remercie d'avance de vote attention, ainsi que de vos réponses.
Merci
Ce que tu veux faire ressemble a de l'OSGi, tu devrait jeté un coup
d'oeil dessus si tu ne l'as pas déjà fait.
http://en.wikipedia.org/wiki/OSGi
Je pense que ce qu'il faut c'est d'avoir un ClassLoader par plugin.
On 25 mar, 21:28, "indiana_jules aka julien roche"
<roche....@gmail.com> wrote:
Bonjour à tous,
j'aimerais savoir si certains d'entre vous à déjà créer une sorte de
"ClassUnloader", afin de décharger en mémoire les classes d'un jar.
Toutes informations et voies me seraient utiles. En effet, je suis en
train de faire dans in projet la mise ne place d'un code mobile en
RMI, où nous stockons sur l'application cliente des classes de plugins
charger dynamiquement. Mon seul ennui, c'est que lorsque je charge mon
jar de classes téléchargés, et que de nouvelles classes arrivent, je
dois décharger le jar, et ça j'ai du mal pour le moment.
Je vous remercie d'avance de vote attention, ainsi que de vos
réponses.
Ce que tu veux faire ressemble a de l'OSGi, tu devrait jeté un coup d'oeil dessus si tu ne l'as pas déjà fait. http://en.wikipedia.org/wiki/OSGi
Je pense que ce qu'il faut c'est d'avoir un ClassLoader par plugin.
On 25 mar, 21:28, "indiana_jules aka julien roche" wrote:
Bonjour à tous,
j'aimerais savoir si certains d'entre vous à déjà créer une sorte de "ClassUnloader", afin de décharger en mémoire les classes d'un jar.
Toutes informations et voies me seraient utiles. En effet, je suis en train de faire dans in projet la mise ne place d'un code mobile en RMI, où nous stockons sur l'application cliente des classes de plugins charger dynamiquement. Mon seul ennui, c'est que lorsque je charge mon jar de classes téléchargés, et que de nouvelles classes arrivent, je dois décharger le jar, et ça j'ai du mal pour le moment.
Je vous remercie d'avance de vote attention, ainsi que de vos réponses.
En fait, c'est beaucoup plus simple de faire ça non pas sur un jar, mais sur un répertoire des classes. Je trouve qu'il y a moins de soucis. En tout cas, merci pour tout
En fait, c'est beaucoup plus simple de faire ça non pas sur un jar,
mais sur un répertoire des classes. Je trouve qu'il y a moins de
soucis. En tout cas, merci pour tout
En fait, c'est beaucoup plus simple de faire ça non pas sur un jar, mais sur un répertoire des classes. Je trouve qu'il y a moins de soucis. En tout cas, merci pour tout
TestMan
Bonjour à tous,
j'aimerais savoir si certains d'entre vous à déjà créer une sorte de "ClassUnloader", afin de décharger en mémoire les classes d'un jar.
Toutes informations et voies me seraient utiles. En effet, je suis en train de faire dans in projet la mise ne place d'un code mobile en RMI, où nous stockons sur l'application cliente des classes de plugins charger dynamiquement. Mon seul ennui, c'est que lorsque je charge mon jar de classes téléchargés, et que de nouvelles classes arrivent, je dois décharger le jar, et ça j'ai du mal pour le moment.
Je vous remercie d'avance de vote attention, ainsi que de vos réponses.
Merci
Bonjour,
Si votre code n'est plus référencé, entre deux appels vous pouvez utiliser le URLClassLoader qui pointera vers le JAR à mettre à jour et rechargera automatiquement la derniere version ...
En gros, votre code à recharger ne doit plus avoir de Thread en cours, ni plus de référence qui pointe dessus, et donc vous pourrez recharger des nouvelles instances de classe :o)
Par exemple, on imagine que vous gardez une List<URL> de vos .jar dans un coins, et qu'ils implémentent tous le même SPI fr.exemple.ServiceMobile, vous pouvez obtenir ainsi à l'aide de ServiceLoader.load(fr.exemple.ServiceMobile.class, new URLClassLoader(unElementDeMaliste)). Les classes sont directement accessibles pour chaque ServiceLoader via l'itérateur.
Attention à ne pas conserver de référence de Class ou de leur instance avant le processus de rechargement. Et comme il est trés facile d'en conserver (à l'insu de son plein grès) voici des petits trucs utiles :
j'aimerais savoir si certains d'entre vous à déjà créer une sorte de
"ClassUnloader", afin de décharger en mémoire les classes d'un jar.
Toutes informations et voies me seraient utiles. En effet, je suis en
train de faire dans in projet la mise ne place d'un code mobile en
RMI, où nous stockons sur l'application cliente des classes de plugins
charger dynamiquement. Mon seul ennui, c'est que lorsque je charge mon
jar de classes téléchargés, et que de nouvelles classes arrivent, je
dois décharger le jar, et ça j'ai du mal pour le moment.
Je vous remercie d'avance de vote attention, ainsi que de vos
réponses.
Merci
Bonjour,
Si votre code n'est plus référencé, entre deux appels vous pouvez
utiliser le URLClassLoader qui pointera vers le JAR à mettre à jour et
rechargera automatiquement la derniere version ...
En gros, votre code à recharger ne doit plus avoir de Thread en cours,
ni plus de référence qui pointe dessus, et donc vous pourrez recharger
des nouvelles instances de classe :o)
Par exemple, on imagine que vous gardez une List<URL> de vos .jar dans
un coins, et qu'ils implémentent tous le même SPI
fr.exemple.ServiceMobile, vous pouvez obtenir ainsi à l'aide de
ServiceLoader.load(fr.exemple.ServiceMobile.class, new
URLClassLoader(unElementDeMaliste)). Les classes sont directement
accessibles pour chaque ServiceLoader via l'itérateur.
Attention à ne pas conserver de référence de Class ou de leur instance
avant le processus de rechargement. Et comme il est trés facile d'en
conserver (à l'insu de son plein grès) voici des petits trucs utiles :
j'aimerais savoir si certains d'entre vous à déjà créer une sorte de "ClassUnloader", afin de décharger en mémoire les classes d'un jar.
Toutes informations et voies me seraient utiles. En effet, je suis en train de faire dans in projet la mise ne place d'un code mobile en RMI, où nous stockons sur l'application cliente des classes de plugins charger dynamiquement. Mon seul ennui, c'est que lorsque je charge mon jar de classes téléchargés, et que de nouvelles classes arrivent, je dois décharger le jar, et ça j'ai du mal pour le moment.
Je vous remercie d'avance de vote attention, ainsi que de vos réponses.
Merci
Bonjour,
Si votre code n'est plus référencé, entre deux appels vous pouvez utiliser le URLClassLoader qui pointera vers le JAR à mettre à jour et rechargera automatiquement la derniere version ...
En gros, votre code à recharger ne doit plus avoir de Thread en cours, ni plus de référence qui pointe dessus, et donc vous pourrez recharger des nouvelles instances de classe :o)
Par exemple, on imagine que vous gardez une List<URL> de vos .jar dans un coins, et qu'ils implémentent tous le même SPI fr.exemple.ServiceMobile, vous pouvez obtenir ainsi à l'aide de ServiceLoader.load(fr.exemple.ServiceMobile.class, new URLClassLoader(unElementDeMaliste)). Les classes sont directement accessibles pour chaque ServiceLoader via l'itérateur.
Attention à ne pas conserver de référence de Class ou de leur instance avant le processus de rechargement. Et comme il est trés facile d'en conserver (à l'insu de son plein grès) voici des petits trucs utiles :