Quelqu'un a-t-il un exemple d'utilisation de Apache Qpid dans un test STRAND> STANDALONE STRAND> JUNIT. P>
Idéalement, je veux pouvoir créer une file d'attente sur la mouche que je peux mettre / obtenir des msgs dans mon test. Donc, je ne teste pas Qpid au sein de mon test, je vais utiliser des tests d'intégration pour cela, mais être très utile pour tester les méthodes de traitement des msgs avec une charge de services. P>
4 Réponses :
Le projet QPID comporte un certain nombre de tests utilisant un courtier intégré pour les tests. Bien que nous utilisions un cas de base pour gérer l'arrêt de démarrage, vous pouvez effectuer ce qui suit pour intégrer simplement un courtier dans vos tests: puis pour la connexion que vous devez spécifier le concepteur du courtier. I.e. Borkererlist = 'vm: // 1' p> p>
TransportConnection et support pour VM: // ont été supprimés dans la révision 1143874 (2011-07-07; QPID SVN). Donc, cela ne fonctionne plus :-(
Le meilleur que je puisse comprendre était: avec une URL de: p> la grande douleur est avec la configuration et l'autorisation . Milmage peut varier. P> P>
TransportConnection et support pour VM: // ont été supprimés dans la révision 1143874 (2011-07-07; QPID SVN). Donc, cela ne fonctionne plus :-(
Voici la méthode de configuration que j'utilise pour Qpid 0,30 (je l'utilise dans un test de SPOCK mais doit être portable à Java of Junit sans problème). Ceci prend en charge la connexion SSL, la gestion HTTP et utilise uniquement le démarrage en mémoire. Le temps de démarrage est sous-seconde. La configuration pour QPID est gênante par rapport à l'utilisation de ActiveMQ dans le même but, mais Qpid est conforme à l'AMQP et permet un test optimal et neutre pour les clients AMQP (évidemment, l'utilisation d'échanges ne peut pas imiter la mise en œuvre de lapbitmqs, mais à des fins de base, mais à des fins de base suffisantes)
D'abord j'ai créé un test minimal-config.json que j'ai mis dans le dossier Ressources: p> i
J'ai aussi besoin de créer un fichier KeyStore.jks pour localhost, car le courtier Qpid et le client rabbbitmq n'aiment pas communiquer sur un canal non crypté. J'ai également ajouté un fichier appelé "passwd" dans "INTEGTEST / RESOURS / ETC" qui a ce contenu: p> invité: mot de passe p> Voici le code de la configuration du test de l'unité: Variables de niveau de classe: H2>
ConnectionFactory factory = new ConnectionFactory();
factory.setUri("amqp://guest:password@localhost:${amqpPort}");
factory.useSslProtocol()
log.info('about to make connection')
def connection = factory.newConnection();
//get a channel for sending the "kickoff" message
def channel = connection.createChannel();
Merci. Cela a fonctionné, ce qui pourrait aider les autres à aider les autres est que si vous souhaitez utiliser l'interface de gestion HTTP, mais l'interface utilisateur est cassée (juste un bouton de connexion sans connexion de connexion et de mot de passe), il vous suffit de ajouter à votre dossier de ressources un dojo- 1.9.1 Distribution
Ma solution sur Qpid-courtier @ 6.1.1, ajoutez ci-dessous à pom.xml fichier de configuration Qpid comme: p> code pour démarrer le serveur Qpid p> code pour arrêter le serveur qpid p> puisque j'utilise le mode Anonyonous, le client devrait Faites comme suit: p> c'est tout.
Un peu plus sur la façon de le faire sur une autre version. P> Vous pouvez télécharger un package binaire Qpid-courtier à partir d'un site officiel. Après le téléchargement et l'UNZIP, vous pouvez l'exécuter pour tester en tant que serveur contre votre cas. Après votre case Connected Server bien, utilisez Commandline pour générer ou simplement copier le fichier de configuration initial dans qpid_work, supprimer inutile ID déposé et utiliser pour le serveur intégré comme ci-dessus. P> La chose la plus compliquée est l'authentification. Vous pouvez choisir un mode simple mais vous devez ajouter le nom d'utilisateur et le mot de passe dans la configuration initiale. J'ai choisi le mode anonyme qui nécessite un petit code lors de la connexion. Pour un autre mode d'authentification, vous devez spécifier le fichier de mot de passe ou le magasin Key / Cert, que je n'ai pas essayé. P> Si cela ne fonctionne toujours pas, vous pouvez lire le code de classe Qpid-Borker et principal dans Qpid-courtier artefact qui montrent comment fonctionne la ligne de commande pour chaque paramètre. p> p>