I tried my code with Vysper 0.8 snapshot, and that fixed the isue. There
were some minor updates required to the code as some classes are now
deprecated. Afer those updates I was able to run an embedded Vysper server
and connect using both Spark and Pidgin, with working rosters.

Is there a better mailing list to use for Vysper API questions?  The lack
of response makes me feel that I'm asking in the wrong place.

On Thu, Mar 14, 2013 at 11:32 PM, Leon Doud <leon.d...@gmail.com> wrote:

> I'm still trying to figure out what I'm not doing correctly. While trying
> to debug the issue I noticed that there wasn't a test case for the
> MemoryRosterManager. I expected that there was a bug there related to
> EntityImpl and hashmaps. I was wrong and my test case showed everything
> works fine (nice job on implementing hashCode and equals in EntityImpl).
>
> I'd like to contribute this test case. I'll attach it to this email. Just
> in case the attachment is stripped off, the file is called
> "MemoryRosterManagerTestCase" and it can be found in my git hub repo for
> vysper (
> https://github.com/ldoud/vysper/tree/trunk/server/core/src/test/java/org/apache/vysper/xmpp/modules/roster/persistence
> ).
>
> If anyone can provide any insight into my roster issue that I mentioned in
> my previous post it would be appreicated.
>
> Thanks,
> Leon
>
>
> On Mon, Mar 4, 2013 at 10:42 PM, Leon Doud <leon.d...@gmail.com> wrote:
>
>> Hello,
>>
>> I'm trying to use Vysper (version 0.7)  to programmatically create an
>> XMPP server instance for use in a jUnit test. For the test there are two
>> users configured on the XMPP server. Each user has the other user on their
>> own roster.
>>
>> The test sends one chat message from the first user to the second user.
>> The test does not work. I figured the message was being blocked because the
>> rosters are not setup correctly.
>>
>> To test this theory I logged into the XMPP server as both users, using
>> Pidgin. When I logged in as "user1", the only person on my roster was
>> "user1".  When I logged in as "user2", no one was on my roster.
>>
>> Below is the Java code where I attempt to programmatically create an XMPP
>> server, two users and rosters for both users. I appreciate any help
>> figuring out what I'm doing wrong.
>>
>> Thanks,
>> Leon
>>
>>
>> package org.apache.cxf.transport.xmpp.chat;
>>
>> import org.apache.vysper.mina.TCPEndpoint;
>> import org.apache.vysper.storage.StorageProviderRegistry;
>> import org.apache.vysper.storage.inmemory.MemoryStorageProviderRegistry;
>> import org.apache.vysper.xmpp.addressing.Entity;
>> import org.apache.vysper.xmpp.addressing.EntityImpl;
>> import org.apache.vysper.xmpp.authorization.AccountManagement;
>> import org.apache.vysper.xmpp.modules.roster.RosterItem;
>> import org.apache.vysper.xmpp.modules.roster.SubscriptionType;
>> import org.apache.vysper.xmpp.modules.roster.persistence.RosterManager;
>> import org.apache.vysper.xmpp.server.XMPPServer;
>>
>> public class ConduitTest {
>>
>>     private static final String CERT_FILENAME = "bogus_mina_tls.cert";
>>     private static final String CERT_PASSWORD = "boguspw";
>>
>>     private static final String DOMAIN_NAME = "localhost.localdomain";
>>     private static final String USER2_NAME = "service1@" + DOMAIN_NAME;
>>     private static final String USER2_PASSWORD = "service1";
>>
>>     private static final String USER1_NAME = "user1@" + DOMAIN_NAME;
>>     private static final String USER1_PASSWORD = "user1";
>>
>>     public static void main(String[] args) throws Exception {
>>         XMPPServer server = new XMPPServer(DOMAIN_NAME);
>>         server.addEndpoint(new TCPEndpoint());
>>
>> server.setTLSCertificateInfo(ClassLoader.getSystemResourceAsStream(CERT_FILENAME),
>> CERT_PASSWORD);
>>
>>         // Store data in memory.
>>         StorageProviderRegistry providerRegistry = new
>> MemoryStorageProviderRegistry();
>>         server.setStorageProviderRegistry(providerRegistry);
>>
>>         // Create test users.
>>         Entity user1Entity = EntityImpl.parse(USER1_NAME);
>>         Entity user2Entity = EntityImpl.parse(USER2_NAME);
>>
>>         AccountManagement accountManagement =
>> (AccountManagement)providerRegistry.retrieve(AccountManagement.class);
>>         accountManagement.addUser(user1Entity, USER1_PASSWORD);
>>         accountManagement.addUser(user2Entity, USER2_PASSWORD);
>>
>>         RosterManager rosterManager =
>> (RosterManager)providerRegistry.retrieve(RosterManager.class);
>>         rosterManager.addContact(user2Entity, new RosterItem(user1Entity,
>> SubscriptionType.BOTH));
>>         rosterManager.addContact(user1Entity, new RosterItem(user2Entity,
>> SubscriptionType.BOTH));
>>
>>         server.start();
>>         Thread.sleep(60000);
>>         server.stop();
>>     }
>> }
>>
>>
>>
>>
>>
>>
>

Reply via email to