mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2025-09-10 18:59:41 +02:00
SMACK-286 Made ProviderManager much more configurable.
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
This commit is contained in:
parent
7e3d4186bb
commit
f155cb4d07
25 changed files with 1709 additions and 1000 deletions
|
@ -29,7 +29,7 @@
|
|||
<property name="version.minor" value="3" />
|
||||
<property name="version.revision" value="1" />
|
||||
<property name="version.extra" value="" />
|
||||
|
||||
|
||||
<if>
|
||||
<equals arg1="${version.extra}" arg2=""/>
|
||||
<then>
|
||||
|
@ -170,54 +170,63 @@
|
|||
<!-- jar -->
|
||||
<!-- ======================================================================================= -->
|
||||
<target name="jar" depends="compile" unless="jar.uptodate" description="Produces smack.jar">
|
||||
<copy todir="${compile.dir}/META-INF" file="${basedir}/build/resources/META-INF/jul.properties" />
|
||||
<copy todir="${compile.dir}/META-INF" file="${basedir}/build/resources/META-INF/smack-config.xml" />
|
||||
<jar destfile="${jar.dest.dir}/smack.jar"
|
||||
<copy todir="${compile.dir}/META-INF" file="${basedir}/build/resources/META-INF/core.providers" />
|
||||
<property name="smack.jar.name" value="${jar.dest.dir}/smack.jar" />
|
||||
<jar destfile="${smack.jar.name}"
|
||||
basedir="${compile.dir}"
|
||||
includes="org/jivesoftware/smack/**/*.class, **/smack-config.xml">
|
||||
includes="org/jivesoftware/smack/**/*.class, **/smack-config.xml, **/core.providers, **/jul.properties">
|
||||
<zipfileset src="${merge.lib.dir}/xpp.jar"/>
|
||||
</jar>
|
||||
<taskdef resource="aQute/bnd/ant/taskdef.properties" classpath="${basedir}/build/build/biz.aQute.bnd.jar"/>
|
||||
<bndwrap jars="${jar.dest.dir}/smack.jar" output="${jar.dest.dir}/smack.jar" />
|
||||
<jar file="${jar.dest.dir}/smack.jar" update="true">
|
||||
<bndwrap jars="${smack.jar.name}" output="${smack.jar.name}" />
|
||||
<jar file="${smack.jar.name}" update="true">
|
||||
<manifest>
|
||||
<attribute name="Bundle-SymbolicName" value="org.igniterealtime.smack" />
|
||||
</manifest>
|
||||
</jar>
|
||||
<copy todir="${compile.dir}/META-INF" file="${basedir}/build/resources/META-INF/smack.providers" />
|
||||
<jar destfile="${jar.dest.dir}/smackx.jar"
|
||||
|
||||
<property name="smackx.jar.name" value="${jar.dest.dir}/smackx.jar" />
|
||||
<copy todir="${compile.dir}/META-INF" file="${basedir}/build/resources/META-INF/extension.providers" />
|
||||
<jar destfile="${smackx.jar.name}"
|
||||
basedir="${compile.dir}"
|
||||
includes="org/jivesoftware/smackx/**/*.class, **/*.providers"
|
||||
includes="org/jivesoftware/smackx/**/*.class, **/extension.providers"
|
||||
excludes="org/jivesoftware/smackx/debugger/*.class">
|
||||
<manifest>
|
||||
<attribute name="Class-Path" value="smack.jar" />
|
||||
</manifest>
|
||||
<zipfileset src="${merge.lib.dir}/jzlib.jar"/>
|
||||
</jar>
|
||||
<bndwrap jars="${jar.dest.dir}/smackx.jar" output="${jar.dest.dir}/smackx.jar" />
|
||||
<jar file="${jar.dest.dir}/smackx.jar" update="true">
|
||||
<bndwrap jars="${smackx.jar.name}" output="${smackx.jar.name}" />
|
||||
<jar file="${smackx.jar.name}" update="true">
|
||||
<manifest>
|
||||
<attribute name="Bundle-SymbolicName" value="org.igniterealtime.smack-ext" />
|
||||
</manifest>
|
||||
</jar>
|
||||
<copy todir="${compile.dir}/images">
|
||||
|
||||
<property name="debug.jar.name" value="${jar.dest.dir}/smack-debug.jar" />
|
||||
<copy todir="${compile.dir}/images">
|
||||
<fileset dir="${basedir}/build/resources/images">
|
||||
<include name="*.png"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
<jar destfile="${jar.dest.dir}/smackx-debug.jar"
|
||||
<jar destfile="${debug.jar.name}"
|
||||
basedir="${compile.dir}"
|
||||
includes="org/jivesoftware/smackx/debugger/*.class, **/*.png">
|
||||
<manifest>
|
||||
<attribute name="Class-Path" value="smack.jar" />
|
||||
</manifest>
|
||||
</jar>
|
||||
<bndwrap jars="${jar.dest.dir}/smackx-debug.jar" output="${jar.dest.dir}/smackx-debug.jar" />
|
||||
<jar file="${jar.dest.dir}/smackx-debug.jar" update="true">
|
||||
<bndwrap jars="${debug.jar.name}" output="${debug.jar.name}" />
|
||||
<jar file="${debug.jar.name}" update="true">
|
||||
<manifest>
|
||||
<attribute name="Bundle-SymbolicName" value="org.igniterealtime.smack-ext-debug" />
|
||||
</manifest>
|
||||
</jar>
|
||||
<jar destfile="${jar.dest.dir}/smackx-jingle.jar"
|
||||
|
||||
<property name="jingle.jar.name" value="${jar.dest.dir}/smack-jingle.jar" />
|
||||
<jar destfile="${jingle.jar.name}"
|
||||
basedir="${compile.dir}/jingle/extension"
|
||||
includes="org/jivesoftware/smackx/**/*.class">
|
||||
<manifest>
|
||||
|
@ -225,14 +234,14 @@
|
|||
</manifest>
|
||||
<zipfileset src="${jingle.extension.merge.lib.dir}/jstun.jar"/>
|
||||
</jar>
|
||||
<bndwrap jars="${jar.dest.dir}/smackx-jingle.jar" output="${jar.dest.dir}/smackx-jingle.jar" />
|
||||
<jar file="${jar.dest.dir}/smackx-jingle.jar" update="true">
|
||||
<bndwrap jars="${jingle.jar.name}" output="${jingle.jar.name}" />
|
||||
<jar file="${jingle.jar.name}" update="true">
|
||||
<manifest>
|
||||
<attribute name="Bundle-SymbolicName" value="org.igniterealtime.smack-ext-jingle" />
|
||||
</manifest>
|
||||
</jar>
|
||||
<delete file="${compile.dir}/META-INF/smack-config.xml" />
|
||||
<delete file="${compile.dir}/META-INF/smack.providers" />
|
||||
<delete file="${compile.dir}/META-INF/*.providers" />
|
||||
<delete>
|
||||
<fileset dir="${compile.dir}/images">
|
||||
<include name="*.png"/>
|
||||
|
|
|
@ -43,10 +43,14 @@
|
|||
</else>
|
||||
</if>
|
||||
<property name="release.dir" value="${basedir}/target/release/${release.name}" />
|
||||
<property name="release.samples.dir" value="${release.dir}/samples" />
|
||||
<property name="release-dev.dir" value="${basedir}/target/release/${release-dev.name}" />
|
||||
<property name="release-dev.samples.dir" value="${release-dev.name}/samples" />
|
||||
<!-- create release dirs -->
|
||||
<mkdir dir="${release.dir}" />
|
||||
<mkdir dir="${release.samples.dir}" />
|
||||
<mkdir dir="${release-dev.dir}" />
|
||||
<mkdir dir="${release-dev.dir.samples}/samples" />
|
||||
<!-- Copy smack.jar -->
|
||||
<copy todir="${release.dir}">
|
||||
<fileset dir="${jar.dest.dir}" includes="smack.jar" />
|
||||
|
@ -54,12 +58,20 @@
|
|||
<fileset dir="${jar.dest.dir}" includes="smackx-debug.jar" />
|
||||
<fileset dir="${jar.dest.dir}" includes="smackx-jingle.jar" />
|
||||
</copy>
|
||||
<copy todir="${release.samples.dir}">
|
||||
<fileset dir="${basedir}/build/resources/META-INF" includes="sample.providers" />
|
||||
<fileset dir="${basedir}/build/resources/META-INF" includes="smack-config.xml" />
|
||||
</copy>
|
||||
<copy todir="${release-dev.dir}">
|
||||
<fileset dir="${jar.dest.dir}" includes="smack.jar" />
|
||||
<fileset dir="${jar.dest.dir}" includes="smackx.jar" />
|
||||
<fileset dir="${jar.dest.dir}" includes="smackx-debug.jar" />
|
||||
<fileset dir="${jar.dest.dir}" includes="smackx-jingle.jar" />
|
||||
</copy>
|
||||
<copy todir="${release-dev.samples.dir}">
|
||||
<fileset dir="${basedir}/build/resources/META-INF" includes="sample.providers" />
|
||||
<fileset dir="${basedir}/build/resources/META-INF" includes="smack-config" />
|
||||
</copy>
|
||||
<!-- Copy build dir -->
|
||||
<copy todir="${release-dev.dir}/build">
|
||||
<fileset dir="${basedir}/build">
|
||||
|
@ -110,7 +122,10 @@
|
|||
</copy>
|
||||
<!-- Copy resources -->
|
||||
<copy todir="${release-dev.dir}/build/resources">
|
||||
<fileset dir="${basedir}/build/resources" includes="META-INF/smack.providers" />
|
||||
<fileset dir="${basedir}/build/resources" includes="META-INF/core.providers" />
|
||||
<fileset dir="${basedir}/build/resources" includes="META-INF/extension.providers" />
|
||||
<fileset dir="${basedir}/build/resources" includes="META-INF/sample.providers" />
|
||||
<fileset dir="${basedir}/build/resources" includes="META-INF/jul.properties" />
|
||||
<fileset dir="${basedir}/build/resources" includes="META-INF/smack-config.xml" />
|
||||
</copy>
|
||||
<copy todir="${release-dev.dir}/build/resources/images">
|
||||
|
|
19
build/resources/META-INF/core.providers
Normal file
19
build/resources/META-INF/core.providers
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Providers file for default Smack extensions -->
|
||||
<smackProviders>
|
||||
|
||||
<!-- Privacy -->
|
||||
<iqProvider>
|
||||
<elementName>query</elementName>
|
||||
<namespace>jabber:iq:privacy</namespace>
|
||||
<className>org.jivesoftware.smack.provider.PrivacyProvider</className>
|
||||
</iqProvider>
|
||||
|
||||
<!-- Ping (XEP-199) Manager -->
|
||||
<iqProvider>
|
||||
<elementName>ping</elementName>
|
||||
<namespace>urn:xmpp:ping</namespace>
|
||||
<className>org.jivesoftware.smack.ping.provider.PingProvider</className>
|
||||
</iqProvider>
|
||||
|
||||
</smackProviders>
|
File diff suppressed because it is too large
Load diff
3
build/resources/META-INF/jul.properties
Normal file
3
build/resources/META-INF/jul.properties
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Java Util Logging configuration for Smack.
|
||||
handlers = java.util.logging.ConsoleHandler
|
||||
.level = WARNING
|
17
build/resources/META-INF/sample.providers
Normal file
17
build/resources/META-INF/sample.providers
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- Sample providers file -->
|
||||
<smackProviders>
|
||||
|
||||
<iqProvider>
|
||||
<elementName>element</elementName>
|
||||
<namespace>ns</namespace>
|
||||
<className>com.myco.MyIQProvider</className>
|
||||
</iqProvider>
|
||||
|
||||
<extensionProvider>
|
||||
<elementName>elem</elementName>
|
||||
<namespace>http://jabber.org/protocol/whoknows</namespace>
|
||||
<className>com.myco.MyExtProvider</className>
|
||||
</extensionProvider>
|
||||
|
||||
</smackProviders>
|
|
@ -22,9 +22,13 @@
|
|||
|
||||
<!-- Classes that will be loaded when Smack starts -->
|
||||
<startupClasses>
|
||||
<className>org.jivesoftware.smackx.ServiceDiscoveryManager</className>
|
||||
<className>org.jivesoftware.smack.LoggingInitializer</className>
|
||||
<className>org.jivesoftware.smack.provider.CoreInitializer</className>
|
||||
<className>org.jivesoftware.smack.provider.VmArgInitializer</className>
|
||||
<className>org.jivesoftware.smack.PrivacyListManager</className>
|
||||
<className>org.jivesoftware.smack.keepalive.KeepAliveManager</className>
|
||||
<className>org.jivesoftware.smackx.provider.ExtensionInitializer</className>
|
||||
<className>org.jivesoftware.smackx.ServiceDiscoveryManager</className>
|
||||
<className>org.jivesoftware.smackx.XHTMLManager</className>
|
||||
<className>org.jivesoftware.smackx.muc.MultiUserChat</className>
|
||||
<className>org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamManager</className>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue