Voir le flux RSS

Open source et architecture logicielle

Traitement d’un fichier de configuration mixte en java Partie 3

Noter ce billet
par , 06/04/2020 à 19h43 (105 Affichages)
Ce billet va montrer comment exploiter un ficher de configuration httpd.conf.properties obtenu dans le post précédant.
Voici le fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
ThreadsPerChild=250
MaxRequestsPerChild= 0
Listen=80
ServerRoot="/www/Apache22"
DocumentRoot="/THDL/thdl-site"
ServerName=localhost:80
ServerAdmin=admin@localhost
ErrorLog=logs/error.log
LogLevel=error
LoadModule=alias_module modules/mod_alias.so
LoadModule=authz_host_module modules/mod_authz_host.so
LoadModule=autoindex_module modules/mod_autoindex.so
LoadModule=dir_module modules/mod_dir.so
LoadModule=log_config_module modules/mod_log_config.so
LoadModule=mime_module modules/mod_mime.so
LoadModule=rewrite_module modules/mod_rewrite.so
LoadModule=setenvif_module modules/mod_setenvif.so
DefaultType=text/plain
IndexIgnore=.htaccess
Redirect=/thdl http://localhost
Include=conf/extra/httpd-autoindex.conf
Include=conf/extra/httpd-languages.conf
Include=conf/extra/httpd-info.conf
Include=conf/extra/httpd-manual.conf
Include=conf/extra/httpd-default.conf
Include=conf/Suite-extra/components.conf
LoadFile="C:/www/php5/php5ts.dll"
LoadModule=php5_module "C:/www/php5/php5apache2.dll"
On remarque immédiatement un problème de clé qui sont mentionées pmusieurs fois avec es valeur différentes. Ce sont les clés Include et LoadModule. En effet on peut charger plusieurs modules et inclure plusieurs fichiers. Nous devons mettre toutes les valeurs dans une seule clé afin d’obtenir le fichier suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ThreadsPerChild=250
MaxRequestsPerChild= 0
Listen=80
ServerRoot="/www/Apache22"
DocumentRoot="/THDL/thdl-site"
ServerName=localhost:80
ServerAdmin=admin@localhost
ErrorLog=logs/error.log
LogLevel=error
DefaultType=text/plain
IndexIgnore=.htaccess
Redirect=/thdl http://localhost
LoadFile="C:/www/php5/php5ts.dll"
Include=conf/extra/httpd-autoindex.confconf/extra/httpd-languages.confconf/extra/httpd-info.confconf/extra/httpd-manual.confconf/extra/httpd-default.confconf/Suite-extra/components.conf
LoadModule=alias_module modules/mod_alias.soauthz_host_module modules/mod_authz_host.soautoindex_module modules/mod_autoindex.sodir_module modules/mod_dir.solog_config_module modules/mod_log_config.somime_module modules/mod_mime.sorewrite_module modules/mod_rewrite.sosetenvif_module modules/mod_setenvif.sophp5_module "C:/www/php5/php5apache2.dll"
Pour cela nous rajoutons une méthode à notre classe utilitaire (Util) qui prend en paramètre le nom du fichier à synthétiser
Rentrons maintenant dans le vif du sujet, nous avons besoin d’une classe qui charge depuis ce fichier de propriétés les valeurs de paramétrage :
  • ThreadsPerChild
  • MaxRequestsPerChild
  • Listen
  • ServerRoot
  • DocumentRoot
  • ….
  • LoadModule

Rien ne sera plus simple avec la core library de java (java.util) et sa classes Properties
La classe portera le nom de Configuration et sera utilisable de cette facon :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
		Configuration conf = new Configuration("httpd.conf.properties");
		System.out.println("les modules chargées sont : " + conf.getLoadModule());
On construit une instance de cette classe en passant à son constructeur le nom du fichier de conf et on appelle les propriétés que l’on souhaite afficher. Voici le code source de cette classe limité à une propriété pour ne pas être trop verbeux.
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
public class Configuration {
 private String loadModule;
 public Configuration(String fileName) {
	 Properties prop = new Properties();
		try {
			FileInputStream inputStream = new FileInputStream(fileName);
			prop.load(inputStream);
			this.loadModule = prop.getProperty("LoadModule");
		} catch (IOException e) {
			e.printStackTrace();
		}
 }
 public String getLoadModule() {
	return loadModule;
 }
}

Envoyer le billet « Traitement d’un fichier de configuration mixte en java Partie 3 » dans le blog Viadeo Envoyer le billet « Traitement d’un fichier de configuration mixte en java Partie 3 » dans le blog Twitter Envoyer le billet « Traitement d’un fichier de configuration mixte en java Partie 3 » dans le blog Google Envoyer le billet « Traitement d’un fichier de configuration mixte en java Partie 3 » dans le blog Facebook Envoyer le billet « Traitement d’un fichier de configuration mixte en java Partie 3 » dans le blog Digg Envoyer le billet « Traitement d’un fichier de configuration mixte en java Partie 3 » dans le blog Delicious Envoyer le billet « Traitement d’un fichier de configuration mixte en java Partie 3 » dans le blog MySpace Envoyer le billet « Traitement d’un fichier de configuration mixte en java Partie 3 » dans le blog Yahoo

Catégories
Java

Commentaires