Saturday, May 9, 2009

Junit4OSGi Test

Task should be done this weekend !
write Junit4OSGi Bundle Test for DPWS SCM Module
http://felix.apache.org/site/apache-felix-ipojo-junit4osgi-tutorial.html
Implementation for virtual dimming system should be the next task after Junit4OSGi
Then the technique and conception documentation for consultant

The problem of Query

The problem in DPWSSpecification for property key.

When SAM calls the methods
getSpecification(Query query)
getSpecifications(Query query)

the null exception occurs into their own methods

public Specification createSpecification(String specification)

The error is in property key selection.

The problem in
public Set createSpecifications(String specification)

// Maybe have exception
ret.add(new DPWSSpecificationImpl(this,specification , this.context,sRs[0]));



The methods should be implemented

private Instance getInstanceByNameAndService(Specification spec, String name)
private Instance getInstanceByFilterAndService(Specification spec,String filter)
private Instance getInstanceByFilter(String filter)
private Instance getInstanceByNameAndImplementation(Implementation impl,String name)
private Instance getInstanceByFilterAndImplementation(Implementation impl,String filter)
private Set getInstancesByNameAndService(Specification spec,String name)
private Set getInstancesByFilterAndService(Specification spec,String filter)
private Set getInstancesByName(String name)
private Set getInstancesByFilter(String filter)
private Set getInstancesByNameAndImplementation(Implementation impl, String name)
private Set getInstancesByFilterAndImplementation(Implementation impl, String filter)

Friday, May 8, 2009

Teste et Validation

Les Tâches
Situation : DPWS SCM Module est bien fini d'implémenter avec les 6 méthodes qui sont hériter de SAM Machine

But:
Le code de test & validation pour DPWSSpecificationBroker DPWSImplementationBroker & DPWSInstanceBroker (tous les méthodes de SAM)

1)
DPWSSpecificationBroker
===========
getSpecification
===========

getSpecification partiellement marche avec iPOJO SCM & DPWS SCM

*****************************************************************
* public Specification getSpecification(PID pid) throws ConnectionException
* public Set getSpecifications(PID implementation)
*****************************************************************

il faut tester les deux methodes plus tard

==============
getImplementation
==============

la partie de iPOJO SCM teste a bien passé !
Exception dans la partie de DPWS SCM
les erreurs sont peut-êtes dans la LDAP requête !

*************************************************************
Pendant maven compile le bundle pour
Intégration de GUI Virtual Dimming System code dans DPWS Sample
Une erreur dans les pom.xml configuration pour swing & awt

Monday, May 4, 2009

today's tasks

- DPWSImplementationImpl public Set getUses()
- DPWSInstanceImpl public Set getUses()

- développer une interface utilisateur pour manipuler SAM framwork

a) Contrôler une ensemble de lampes

les fonctionnements pour une lampe:

1) allumer - basique
2) éteindre - basique

3) luminosité
4) changement de la couleur

=============================================
Quelque idée
Contrôler les appareils micro électroniques
1) réveil
2) téléphone mobile - SMS & Email / Agenda, RDV etc
3) camera surveillance
4) ventilateur & climatisation
5) surveillance personnes âgées ou les malades
6) contrôler les consommation du énergie
=============================================
- l'ordinateur fixé ou télévision (IHM pourrait fixer à la maison)
- l'ordinateur portable et téléphone portable ou PDA
- etc
=============================================
3 tiers workflow
collection données
stockage de données capturés
visualisation de données

3 Brokers sont finis à implémenter

Actuellement J'ai terminé 3 borkers SB, IB & iB.
le reste il faut implémenter SImpl, IImpl & iImpl aujourd'hui.
Après il faut ajouter Test d'intégration en utilisant Junit4OSGi

Je devrais résoudre un problème - comment faire la relation entre un service et son Broker correspondant ?
donc
Specification <-> Specification Broker
Implementation <-> Implementation Broker
Instance <-> Instance Broker

je me demande si la création de relation à partir de Constructor ou il y a l'autre couche supérieure qui gère cette création ?
alors pour une conception, c'est Broker que lui active ou pas ?

Il me semble que PID est dynamiquement alloué. donc on n'a pas besoin de fixer PID comme un attribut dans la classe.
Justement créer une getter :
public getPID()
qui retourne dynamiquement son PID au moment de demande.

new PID() avec les params
1) type de PID
2) nom de OSGi plateforme
3) les propriétaires de Service Référence
4) Service Référence

maintenant il que reste classe InstanceImpl à implémenter

Diana m'a offert une exemple de HelloWorld de cote Service Client
Je vais éventuellement développer les animations !

Sunday, May 3, 2009

Commencement - une erreur d'utilisation en iPOJO

La semaine dernière Je faisais une petite erreur pendant programmation SCM module en utilisant la librairie iPOJO. Ce problème-là j'étais rencontré plusieurs fois avant. mais je n'ai pas fait très attention !
En fait dans la partie du code (iPOJO SCM Module), mon tuteur a utilisé bind et unbind dans metadata.xml. De cette façon-là les 3 borkers pourrait bien partager les données ! Mais le cout est qu'il faut ajouter une classe avec certaines propriétés pour partager entre les 3 brokers. Personnellement je pense que c'est un des solutions pas mal! (la façon de programmation est très claire). Mon tuteur m'a dit que peut-être il aura le problème de dynamisme!
Pour bien profiter les avantages de iPOJO, donc je veux eviter d'ajouter une nouvelle classe.
Donc pour chacun des 3 brokers(SB, IB & iB),
1) pour SB, j'ai ajouté IB & iB comme ses attributs
2) pour IB, j'ai ajouté SB & iB comme ses attributs
3) pour iB, j'ai ajouté SB & IB comme ses attributs
Mais il faut déclarer le type de ses attributs est le nom d'interface.
Le erreur est que j'ai utilisé les classes qui sont directement hérité d'interface.
donc quand j'ai lancé ses bundles, ça provoque plein des exceptions.

Donc c'est la raison j'aimerais bien relire la thèse de Clément Escoffier.
iPOJO: Un modèle à composant à service flexible pour les systèmes dynamiques.

[Lien] télécharger le ficher PDF
http://tel.archives-ouvertes.fr/tel-00347935/en/
http://www.mediafire.com/?yutot5oidnm
[lien pour pratiquer]
http://felix.apache.org/site/apache-felix-ipojo.html

Blog Archive