begin process at 2012 02 04 17:33:47
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Api

 > SYNCHRONISATION AVEC UN FICHIER PROPERTIES

SYNCHRONISATION AVEC UN FICHIER PROPERTIES


 Information sur la source

Note :
Aucune note
Catégorie :Api Classé sous :properties, préférences, gestion, synchronisation, listeners Niveau :Débutant Date de création :05/12/2006 Date de mise à jour :05/12/2006 17:40:21 Vu / téléchargé :5 759 / 452

Auteur : romuluslepunk

Ecrire un message privé
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 Description

Cette api gère la synchronisation avec un fichier properties.
De plus, elle permet de créer des listeners sur les propriétés (synchro avec le fichier properties, la valeur d'une propriété à changé etc...).
Ideal pour gérer facilement les préférences utilisateurs.

Le fichier zip contient un exemple, la javadoc pour les utilisateurs de l'api (seuls les membres
protected et public sont visibles) et une autre pour sa mieux se représenter l'api au complet afin de la modifier à sa guise (tous les membres sont visibles).



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

05 décembre 2006 17:40:22 :
J'ai déziper les sources au sein du zip principal

 Sources du même auteur

Source avec Zip Source avec une capture UNE JDIALOG POUR LES ERREURS DÉTAILLÉS

 Sources de la même categorie

Source avec une capture AUTO FOLLOW/UNFOLLOW AVEC JTWITTER/OAUTHSIGNPOSTCLIENT ET SW... par GeroXXXX
Source avec Zip LOGICIEL MESSAGERIE par layeure
Source avec Zip Source avec une capture CRÉER DES GRAPHIQUES : UTILISATION DE JFREECHART par Julien39
EJB3-BEAN ENTITÉ : RELATIONS BIDIRECTIONNELLES par SoftDeath
Source avec Zip Source avec une capture LETMESEE : CAPTURE D'ÉCRAN À INTERVALLE RÉGULIER : UTILISATI... par pyo656

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture JCOUTURE: LOGICIEL DE GESTION D’ATELIER DE COUTURE INT... par bashizip
Source avec Zip Source avec une capture C.E.T.E.C MANAGER par jantelboy
Source avec Zip Source avec une capture CALCULER SES DEPENCES - APPLICATION JEE par sarathai
GÉNERER UN FICHIER *.PROPERTIES EN L'AFFECTANT DANS UNE MAP par kaissun
Source avec Zip GESTION INSCRIPTION DU CFPP UNIVERSITE GASTON BERGER par bigdine

Commentaires et avis

Commentaire de Twinuts le 05/12/2006 16:32:35 administrateur CS

Salut,

pourrais tu stp ne pas mettre les fichiers java dans un zip c'est super lourd de devoir télécherger le zip pour visualiser une source...

Commentaire de romuluslepunk le 05/12/2006 17:45:42

Effectivement j'avais pas pensé à celà, je viens d'uploader un nouveau zip

Commentaire de Twinuts le 05/12/2006 18:19:36 administrateur CS

Merci

Commentaire de Twinuts le 05/12/2006 21:14:45 administrateur CS

Salut,


concernant ton code il y a des choses que je ne comprend pas tu dis que tu fais de la synchronisation ...... mai c'est faux, je m'explique :


tu déclares la variable private boolean synchronise = false; hors il y à un truc qui ne cole pas si tu fais :
private ConfigManager mesConfig1 = ConfigManager.getInstance();
private ConfigManager mesConfig2 = ConfigManager.getInstance();

ici chacun à sa synchro ce qui n'est pas vraiment propre .... donc 2 solutions soit tu mets synchronise en static soit tu mets le constructeur de ConfigManager en private comme cela déjà tu commenceras à avoir un début de synchronisation...

ensuite autre chose tu ne lock pas le fichier ce qui est assez dommage vu qu'une application '1' peut modifier le fichier qu'utilise l'application 'n'... pourquoi ne pas lock le fichier ?

tu peux le faire avec :
private boolean                 locked          = true;
private RandomAccessFile        raLockFile      = null;
....

try {
   File lockedFile = new File(fileName);
   raLockFile = new RandomAccessFile(lockedFile, "rw");
   if(raLockFile.getChannel().tryLock() == null)
       locked = false;
    else
       locked = true;
} catch (Exception e) { }

....
public boolean isLocked(){
    return locked;
}

et pour le déloquer
raLockFile.getChannel().close();


bref c'est pas vraiment une critique mais plus une pitite remarque qui pourrait rendre ta classe réellement synchronisé par une application voir même plusieurs applications

Commentaire de romuluslepunk le 06/12/2006 18:31:53

Mon singleton me semble bon, le constructeur est déjà en private mais son contenue est vide, celà joue sur le résultat ?

Le lock est prévu par la suite, je ne l'est pas noté dans les commentaires final de la source pour plusieurs raisons :
- j'hesite encore à l'ajouter, en cas d'arret brutal du programme, la methode desynchronise() ne sera pas apelé et le deblocage du fichier ne se fera pas, à moins que je me trompe...
- je n'est jamais utilisé de fichier lock et je ne voulais pas noté une possible mise a jour sans être sûre d'en être capable. Ton bout de code devrait m'aider, merci
- si un programme quelconque utilise et met à jour le fichier properties sans passer par l'api, le lock n'a plus d'interet.

Je ne suis pas un pro de java et comme je l'est dis, j'ai jamais utilisé le blocage de fichier et il se peut que je me suis complètement trompé dans mes raisons.


Je ne le prend pas comme une critique, c'est bien le but de ce site, partager ses connaissances/idées ;)

Commentaire de Twinuts le 06/12/2006 19:52:19 administrateur CS

"Mon singleton me semble bon, le constructeur est déjà en private mais son contenue est vide, celà joue sur le résultat ?"
- cela joue si tu utilise le constructeur public sans passer par le getInstance

"j'hesite encore à l'ajouter, en cas d'arret brutal du programme, la methode desynchronise() "
- enfait le lock prendra fin en cas d'arret de l'appli sinon tu peux le faire proprement et utiliser le shuttdownhook de Runtime ref(pour un exemple) : http://www.techmag.biz/java_app_shutdown_hook

"si un programme quelconque utilise et met à jour le fichier properties sans passer par l'api, le lock n'a plus d'interet"
- si par ce qu'il ne pourra ni lire ou modifier le fichier vu que dans mon exemple j'ouvre le fichier en rw soit read & write et le lock le vérouille sur le mode d'ouverture soit read write

Commentaire de romuluslepunk le 06/12/2006 21:24:20

Si mon constructeur est en private, il est impossible de faire :
ConfigManager myconfigs = new ConfigManager();
Sauf au sein de la la classe ConfigManager. Du moins mon Eclipse ne l'autorise pas donc il y a certainement erreur de compilation (au pire je testerai une compilation en console).

Si je fait :
private ConfigManager mesConfig1 = ConfigManager.getInstance();
private ConfigManager mesConfig2 = ConfigManager.getInstance();
Les 2 objets devrait pointer vers l'objet instance ?
Je vais faire des tests (il ya plus de chances que tu aie raison que le contraire :) )


Super pour le shutdown, je pense que je vais :
- faire hérité Thread à ConfigManager
- ajouter le blocage et addShuttdownhook(this) dans la methode synchronise
- supprimer le blocage et removeShuttdownhook(this) dans la methode desynchronise
- copier le contenue de la methode desynchronise dans la methode run (sauf removeShuttdownhook(this)...)
C'est ce qui me parait être le plus simple.

Ce week-end celà devrait être testé au niveau du singleton et le shutdown réalisé.


Un grand merci

Commentaire de Twinuts le 06/12/2006 23:45:39 administrateur CS

Salut,

"Si mon constructeur est en private" <- milles excuses je viens seulement de le voir caché entre deux commentaires :D si le constructeur est private comme c'est le cas et que l'instance interne est static alors pas de risque le singleton fonctionne :)

Commentaire de codefalse le 19/12/2006 18:31:25 administrateur CS

excusez moi mais je ne comprends pas ce que vous voulez dire par Synchronisation avec un fichier ?
Je connais les termes de synchronisation mais pas avec un fichier ?!
Pourriez vous m'expliquer s'il vous plait ?
merci :)

Commentaire de Twinuts le 19/12/2006 20:08:02 administrateur CS

Salut,

en gros cela veut dire simplement qu'a un instant donné tu es le seul à pouvoir accéder au fichier

Commentaire de codefalse le 19/12/2006 22:11:19 administrateur CS

ok merci ! :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Gestion listeners croisés [ par jojolemariole ] Salut, Je développe actuellement un petit outil dans lequel 3 composants (1 JSpinner, 1 JSlider et un composant perso) permettent de modifier la même Fichier .properties et flux [ par mohammed83 ] Bj tout le monde; Je fais l'ajout dans un fichier attributes.properties en utilisant les flux et en indiquant l'emplacement du fichier sur le disque. Gestion publicitaire [ par aicha2011 ] salam3alaykom je travaille sur un projet qui a pour but la gestion des publicité en ligne en J2EE D'après les recherche que j'ai fais j'ai trouvé qu'a Synchronisation des processus a l 'aide de tubes [ par wiza88 ] Bonjour, Je souhaite synchroniser des processus à l aide des tubes .Toute documentation ou codes sources sur la manipulation des tubes sont les bienv gestion de bibliothèque [ par lovelykaw ] Bonjour [^^happy13].je suis débutante et j'ai un projet de gestion de la bibliothèque.J'aimerais faire une bibliothèque sur le web..Pour ce faire,est- Acces à la base de données par plusieurs postes [ par DexterMorgan ] Salut, J'ai développé une application pour gestion de base de données et j'aime savoir comment l'adapter pour fonctionner sur réseau d'une société. Gestion du Parc Informatique [ par loberoger ] Bonjour, Je voudrais développer une application qui gère un parc Informatique en Java, il y a t-il quelqu'un qui peut m'aider en me donnant les idées Je veux créer une base de donnée gestion de stock achat avec Access [ par azulmassin ] Bonjour, Je suis à la recherche d'un exemple de base de donnée pour faciliter ma gestion du personnel. Je souhaite qu'elle renseigne des documents Erreur au niveau de jComboBox [ par mdh12 ] salut, je rempli checkbox d'après les donnes d'une base de donne [code=java]v1 = new Vector(); initComponents(); EnseignantDB data


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,498 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales