mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-12 19:02:06 +01:00
f155cb4d07
Separated the reading of provider files from the ProviderManager. Manager now only manages. Added ability to add collections of providers to the manager via a ProviderLoader, of which there is one default implementation which loads from the default file format. Now provider files can be programmatically added at any time. Also updated the configuration abilities so that a provider file can also be set via VM arg, as well as the smack configuration itself. Introduced Java Util Logging as well. git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/branches/smack_3_4_0@13861 b35dd754-fafc-0310-a699-88a17e54d16e
55 lines
2 KiB
Java
55 lines
2 KiB
Java
package org.jivesoftware.smackx.provider;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Collection;
|
|
|
|
import junit.framework.Assert;
|
|
|
|
import org.jivesoftware.smack.packet.IQ;
|
|
import org.jivesoftware.smack.provider.ExtensionProviderInfo;
|
|
import org.jivesoftware.smack.provider.IQProvider;
|
|
import org.jivesoftware.smack.provider.IQProviderInfo;
|
|
import org.jivesoftware.smack.provider.ProviderFileLoader;
|
|
import org.jivesoftware.smack.provider.ProviderLoader;
|
|
import org.jivesoftware.smack.provider.ProviderManager;
|
|
import org.jivesoftware.smack.util.FileUtils;
|
|
import org.junit.Test;
|
|
import org.xmlpull.v1.XmlPullParser;
|
|
|
|
public class ProviderConfigTest {
|
|
|
|
@Test
|
|
public void addGenericLoaderProvider() {
|
|
ProviderManager.getInstance().addLoader(new ProviderLoader() {
|
|
|
|
@Override
|
|
public Collection<IQProviderInfo> getIQProviderInfo() {
|
|
ArrayList<IQProviderInfo> l = new ArrayList<IQProviderInfo>(1);
|
|
l.add(new IQProviderInfo("provider", "test:provider", new TestIQProvider()));
|
|
return l;
|
|
}
|
|
|
|
@Override
|
|
public Collection<ExtensionProviderInfo> getExtensionProviderInfo() {
|
|
return null;
|
|
}
|
|
});
|
|
|
|
Assert.assertNotNull(ProviderManager.getInstance().getIQProvider("provider", "test:provider"));
|
|
}
|
|
|
|
@Test
|
|
public void addClasspathFileLoaderProvider() throws Exception{
|
|
ProviderManager.getInstance().addLoader(new ProviderFileLoader(FileUtils.getStreamForUrl("classpath:org/jivesoftware/smackx/provider/test.providers", null)));
|
|
Assert.assertNotNull(ProviderManager.getInstance().getIQProvider("provider", "test:file_provider"));
|
|
}
|
|
|
|
public static class TestIQProvider implements IQProvider {
|
|
|
|
@Override
|
|
public IQ parseIQ(XmlPullParser parser) throws Exception {
|
|
return null;
|
|
}
|
|
|
|
}
|
|
}
|