Hi
I am trying to understand what the entry point in a block.xml is.
For example, I looket at OpenIM that is built upon Merlin. OpenIM is launched with:
merlin .... openim\jars\openim-server-impl-1.2.jar
Now when I look at the block.xml filen within the above jar file, I find lots of
component definition, but I cannot see which component is launched first.
Please help.
Thanks.
See the enclosed block.xml from openim.
Best Regards
--
Nader Aeinehchi
Aasenhagen 66 E
2020 Skedsmokorset
NORWAY
Direct and Mobile +47 41 44 29 57
Tel (private): +47 64 83 09 08
Fax +47 64 83 08 07
www.aeinehchi.com
<container name="openim">
<services>
<service type="net.java.dev.openim.SimpleMessageRouter">
<source>SimpleMessageRouter</source>
</service>
</services>
<categories>
<category name="threads/classloader/scanner" priority="ERROR"/>
</categories>
<!--
Block implementation.
-->
<classloader>
<classpath>
<repository>
<!-- OpenIM -->
<resource id="openim:openim-server-api" version="1.2"/>
<resource id="openim:openim-storage-api" version="1.2"/>
<resource id="openim:openim-storage-impl" version="1.2"/>
<resource id="openim:openim-users-manager-api" version="1.3"/>
<resource id="openim:openim-users-manager-impl" version="1.3"/>
<!-- XPP -->
<resource id="kxml2:kxml2" version="2.1.8"/>
<!-- Commons -->
<resource id="commons-lang:commons-lang" version="1.0.1"/>
<resource id="commons-collections:commons-collections" version="2.1"/>
<!-- Avalon -->
<resource id="avalon-framework:avalon-framework-api" version="4.1.5"/>
<resource id="avalon-framework:avalon-framework-impl" version="4.1.5"/>
<!-- Cornerstone -->
<resource id="cornerstone-threads:cornerstone-threads-api" version="1.0"/>
<resource id="cornerstone-sockets:cornerstone-sockets-api" version="1.0"/>
<resource id="cornerstone-connection:cornerstone-connection-api"
version="1.0"/>
<resource id="cornerstone-connection:cornerstone-connection-impl"
version="1.0"/>
<resource id="cornerstone-scheduler:cornerstone-scheduler-api"
version="1.0"/>
<resource id="cornerstone-datasources:cornerstone-datasources-api"
version="1.0"/>
<!-- Excalibur -->
<resource id="excalibur-pool:excalibur-pool" version="1.2"/>
<resource id="excalibur-thread:excalibur-thread" version="1.1.1"/>
<resource id="excalibur:excalibur-collections" version="1.0"/>
<resource id="excalibur:excalibur-io" version="1.1"/>
<resource id="excalibur-concurrent:excalibur-concurrent" version="1.0"/>
<!-- XStream -->
<resource id="xstream:xstream" version="0.3"/>
</repository>
</classpath>
</classloader>
<include name="threads"
id="cornerstone-threads:cornerstone-threads-impl"
version="1.0"/>
<include name="sockets"
id="cornerstone-sockets:cornerstone-sockets-impl"
version="1.0">
<target path="manager">
<configuration>
<server-sockets>
<factory name="plain"
class="org.apache.avalon.cornerstone.blocks.sockets.DefaultServerSocketFactory"/>
<factory name="secure"
class="org.apache.avalon.cornerstone.blocks.sockets.TLSServerSocketFactory" >
<ssl-factory>
<keystore>
<file>conf/keystore</file> <!-- keystore file location -->
<password>openim</password> <!-- Key Store file password, only
used to check keystore integrity -->
<key-password>openim</key-password> <!-- Only required when you
need to decrypt a private key -->
<type>JKS</type> <!-- Key Store file format, defaults to JKS -->
<algorithm>SunX509</algorithm> <!-- Cryptography provider ID,
defaults to SunX509 -->
</keystore>
<!-- SSL protocol to use, defaults to TLS, another possible value
is SSL -->
<protocol>TLS</protocol>
</ssl-factory>
<timeout>0</timeout>
<!-- With this option set to a non-zero timeout, a call to
accept() for this ServerSocket will block for only this amount of
time. If the timeout expires, a java.io.InterruptedIOException is
raised, though the ServerSocket is still valid. Default value is
0. -->
<authenticate-client>false</authenticate-client>
<!-- Whether or not the client must present a certificate to
confirm its identity. Defaults to false. -->
</factory>
</server-sockets>
<client-sockets>
<factory name="plain"
class="org.apache.avalon.cornerstone.blocks.sockets.DefaultSocketFactory"/>
</client-sockets>
</configuration>
</target>
</include>
<include name="scheduler"
id="cornerstone-scheduler:cornerstone-scheduler-impl"
version="1.0"/>
<include name="datasources"
id="cornerstone-datasources:cornerstone-datasources-impl"
version="1.0"/>
<include name="storage"
id="openim:openim-storage-impl" version="1.2"/>
<include name="users-manager"
id="openim:openim-users-manager-impl" version="1.3"/>
<component name="IMServer" class="net.java.dev.openim.IMServerImpl"
activation="startup"/>
<component name="ServerParameters" class="net.java.dev.openim.ServerParametersImpl"
activation="lazy"/>
<component name="IMConnectionHandler"
class="net.java.dev.openim.IMConnectionHandlerImpl" activation="lazy"/>
<component name="IMPresenceHolder" class="net.java.dev.openim.IMPresenceHolderImpl"
activation="lazy"/>
<component name="IMRouter" class="net.java.dev.openim.IMRouterImpl"
activation="lazy"/>
<component name="S2SConnectorManager"
class="net.java.dev.openim.S2SConnectorManagerImpl" activation="lazy"/>
<component name="S2SConnector" class="net.java.dev.openim.S2SConnectorImpl"
activation="lazy"/>
<component name="SubscriptionManager"
class="net.java.dev.openim.SubscriptionManagerImpl" activation="lazy"/>
<component name="ModuleManager" class="net.java.dev.openim.ModuleManagerImpl"
activation="lazy"/>
<component name="SimpleMessageRouter"
class="net.java.dev.openim.SimpleMessageRouterImpl" activation="lazy"/>
<component name="SessionsManager"
class="net.java.dev.openim.session.SessionsManagerImpl" activation="lazy"/>
<component name="IMClientSession"
class="net.java.dev.openim.session.IMClientSessionImpl" activation="lazy"/>
<component name="IMServerSession"
class="net.java.dev.openim.session.IMServerSessionImpl" activation="lazy"/>
<component name="User" class="net.java.dev.openim.data.jabber.UserImpl"
activation="lazy"/>
<component name="UsersManager" class="net.java.dev.openim.data.UsersManagerImpl"
activation="lazy"/>
<component name="Streams" class="net.java.dev.openim.jabber.StreamsImpl"
activation="lazy"/>
<component name="Error" class="net.java.dev.openim.jabber.ErrorImpl"
activation="lazy"/>
<component name="client.Body" class="net.java.dev.openim.jabber.client.BodyImpl"
activation="lazy"/>
<component name="client.Iq" class="net.java.dev.openim.jabber.client.IqImpl"
activation="lazy"/>
<component name="client.Message"
class="net.java.dev.openim.jabber.client.MessageImpl" activation="lazy"/>
<component name="client.Presence"
class="net.java.dev.openim.jabber.client.PresenceImpl" activation="lazy"/>
<component name="client.Priority"
class="net.java.dev.openim.jabber.client.PriorityImpl" activation="lazy"/>
<component name="client.Show" class="net.java.dev.openim.jabber.client.ShowImpl"
activation="lazy"/>
<component name="client.Status"
class="net.java.dev.openim.jabber.client.StatusImpl" activation="lazy"/>
<component name="client.Subject"
class="net.java.dev.openim.jabber.client.SubjectImpl" activation="lazy"/>
<component name="client.Thread"
class="net.java.dev.openim.jabber.client.ThreadImpl" activation="lazy"/>
<component name="iq.auth.Digest"
class="net.java.dev.openim.jabber.iq.auth.DigestImpl" activation="lazy"/>
<component name="iq.auth.Password"
class="net.java.dev.openim.jabber.iq.auth.PasswordImpl" activation="lazy"/>
<component name="iq.auth.Query"
class="net.java.dev.openim.jabber.iq.auth.QueryImpl" activation="lazy"/>
<component name="iq.auth.Resource"
class="net.java.dev.openim.jabber.iq.auth.ResourceImpl" activation="lazy"/>
<component name="iq.auth.Username"
class="net.java.dev.openim.jabber.iq.auth.UsernameImpl" activation="lazy"/>
<component name="iq.browse.Query"
class="net.java.dev.openim.jabber.iq.browse.QueryImpl" activation="lazy"/>
<component name="iq.search.Query"
class="net.java.dev.openim.jabber.iq.search.QueryImpl" activation="lazy"/>
<component name="iq.oob.Query" class="net.java.dev.openim.jabber.iq.oob.QueryImpl"
activation="lazy"/>
<component name="iq.jprivate.Query"
class="net.java.dev.openim.jabber.iq.jprivate.QueryImpl" activation="lazy"/>
<component name="iq.register.Password"
class="net.java.dev.openim.jabber.iq.register.PasswordImpl" activation="lazy"/>
<component name="iq.register.Query"
class="net.java.dev.openim.jabber.iq.register.QueryImpl" activation="lazy"/>
<component name="iq.register.Username"
class="net.java.dev.openim.jabber.iq.register.UsernameImpl" activation="lazy"/>
<component name="iq.register.Remove"
class="net.java.dev.openim.jabber.iq.register.RemoveImpl" activation="lazy"/>
<component name="iq.roster.Group"
class="net.java.dev.openim.jabber.iq.roster.GroupImpl" activation="lazy"/>
<component name="iq.roster.Item"
class="net.java.dev.openim.jabber.iq.roster.ItemImpl" activation="lazy"/>
<component name="iq.roster.Query"
class="net.java.dev.openim.jabber.iq.roster.QueryImpl" activation="lazy"/>
<component name="iq.vcardtemp.VCard"
class="net.java.dev.openim.jabber.iq.vcardtemp.VCardImpl" activation="lazy"/>
<component name="server.Body" class="net.java.dev.openim.jabber.server.BodyImpl"
activation="lazy"/>
<component name="server.Error" class="net.java.dev.openim.jabber.server.ErrorImpl"
activation="lazy"/>
<component name="server.Iq" class="net.java.dev.openim.jabber.server.IqImpl"
activation="lazy"/>
<component name="server.Message"
class="net.java.dev.openim.jabber.server.MessageImpl" activation="lazy"/>
<component name="server.Presence"
class="net.java.dev.openim.jabber.server.PresenceImpl" activation="lazy"/>
<component name="server.Priority"
class="net.java.dev.openim.jabber.server.PriorityImpl" activation="lazy"/>
<component name="server.Show" class="net.java.dev.openim.jabber.server.ShowImpl"
activation="lazy"/>
<component name="server.Status"
class="net.java.dev.openim.jabber.server.StatusImpl" activation="lazy"/>
<component name="server.Subject"
class="net.java.dev.openim.jabber.server.SubjectImpl" activation="lazy"/>
<component name="server.Thread"
class="net.java.dev.openim.jabber.server.ThreadImpl" activation="lazy"/>
<component name="server.dialback.Result"
class="net.java.dev.openim.jabber.server.dialback.ResultImpl" activation="lazy"/>
<component name="server.dialback.Verify"
class="net.java.dev.openim.jabber.server.dialback.VerifyImpl" activation="lazy"/>
<component name="MessageLogger" class="net.java.dev.openim.log.MessageLoggerImpl"
activation="lazy"/>
<component name="MessageRecorder"
class="net.java.dev.openim.log.MessageRecorderImpl" activation="lazy"/>
</container>