mcconnell 2003/02/07 19:43:03
Added: merlin/blocks/james README.txt kernel.xml james-block.xml
Log:
James block defintions (was in config directory).
Revision Changes Path
1.1 avalon-sandbox/merlin/blocks/james/README.txt
Index: README.txt
===================================================================
The configuration files in this directory are to support the deployment of James as
a composite block using the Merlin container. Please note that these resources are
experimental, that Merlin itself is alpha, and that Merlin is under active
development. Component defintions used in James for the Phoenix container are
recognized by Merlin during deployment and as such these resources provide a
mechanisms for cross validation of the James system.
In order to deploy James in Merlin you will need do checkout the avalon,
avalon-logkit, avalon-excalibur and avalon-sandbox projects. From there the
instructions for building and deploying Merlin are contained in the file
avalon-sandbox/merlin/THE-RED-PILL.TXT.
To test the execution of James, do the following:
$ cd <your-james-installation>
$ merlin -system %MERLIN_HOME% -profile %MERLIN_HOME%\blocks\james\kernel.xml
Cheers, Steve.
1.1 avalon-sandbox/merlin/blocks/james/kernel.xml
Index: kernel.xml
===================================================================
<kernel>
<!--
The kernel can contain the following declarations:
1. a system descriptor
2. a logging descriptor
3. a logging catagories descriptor that establishes logging priority
for the kernel messages
4. an engine descriptor
-->
<system host="localhost"/>
<logging target="default" priority="WARN">
<category name="/sys/logger" priority="WARN"/>
<target name="kernel">
<file location="kernel.log" />
</target>
</logging>
<categories>
<category name="/sys" priority="INFO"/>
</categories>
<engine/>
<!--
Declaration of a Merlin kernel that references the James block defition.
This declaration references a single block (the James block) together with
typically site specific configuration details that override the packaged
configuration info contained in the james-block.xml file.
All path declarations are relative to the ${merlin.home} base directory.
-->
<blocks>
<block name="container" src="src/conf/experimental/james-block.xml"
enabled="true" >
<configuration target="james">
<postmaster>postmaster@localhost</postmaster>
<servernames autodetect="true" autodetectIP="true">
<servername>localhost</servername>
<servername>home.osm.net</servername>
</servernames>
<usernames ignoreCase="true" enableAliases="true" enableForwarding="true"/>
<inboxRepository>
<repository destinationURL="file://var/mail/inboxes/" type="MAIL"/>
</inboxRepository>
</configuration>
<configuration target="dns">
<servers>
<server>212.198.0.66</server>
<server>212.198.0.67</server>
<server>192.112.36.4</server>
</servers>
<autodiscover>true</autodiscover>
<authoritative>false</authoritative>
</configuration>
<configuration target="remote">
<port>4555</port>
<handler>
<helloName autodetect="TRUE">myMailServer</helloName>
<administrator_accounts>
<account login="root" password="root"/>
</administrator_accounts>
<connectiontimeout> 60000 </connectiontimeout>
</handler>
</configuration>
</block>
</blocks>
</kernel>
1.1 avalon-sandbox/merlin/blocks/james/james-block.xml
Index: james-block.xml
===================================================================
<!--
Sample block descriptor that demonstrates the James mailsever application as a
composite block.
-->
<block>
<!--
Service provided by this block.
This will be detailed once the implementation is available and tested.
-->
<services>
<!-- James block level service export declarations go here -->
</services>
<!--
Block implementation. The implementation element may contain component
and container entities. The block implementation statement is equivalent
to a root container who's name is implied by the name of the block.
-->
<implementation>
<categories priority="INFO"/>
<engine>
<classpath>
<fileset dir="lib">
<include name="dnsjava-1.3.2.jar"/>
<include name="mail_1_3.jar"/>
<include name="jakarta-oro-2.0.1.jar"/>
<include name="activation.jar"/>
</fileset>
<fileset dir="phoenix-bin/lib">
<include name="excalibur-io-1.1.jar"/>
</fileset>
<fileset dir="lib/candidates">
<include name="cornerstone-threads-1.0.jar"/>
<include name="cornerstone-connection-1.0.jar"/>
<include name="cornerstone-datasources-1.0.jar"/>
<include name="cornerstone-scheduler-1.0.jar"/>
<include name="cornerstone-sockets-1.0.jar"/>
<include name="cornerstone-store-1.0.jar"/>
</fileset>
<fileset dir="build/lib">
<include name="mailet.jar"/>
<include name="james-3.0.jar"/>
</fileset>
</classpath>
</engine>
<appliance name="james" class="org.apache.james.James"
activation="true">
<!-- see blocks.xml for configuration -->
</appliance>
<appliance name="dns" class="org.apache.james.dnsserver.DNSServer"
activation="true">
<!-- see blocks.xml for configuration -->
</appliance>
<appliance name="remote"
class="org.apache.james.remotemanager.RemoteManager"
activation="true">
<!-- see blocks.xml for port and handler configuration -->
</appliance>
<appliance name="pop3"
class="org.apache.james.pop3server.POP3Server"
activation="true">
<configuration enabled="true">
<port>110</port>
<handler>
<helloName autodetect="true">myMailServer</helloName>
<connectiontimeout>120000</connectiontimeout>
</handler>
</configuration>
</appliance>
<appliance name="smtp"
class="org.apache.james.smtpserver.SMTPServer"
activation="true">
<configuration enabled="true">
<port>25</port>
<handler>
<helloName autodetect="true">myMailServer</helloName>
<connectiontimeout>360000</connectiontimeout>
<maxmessagesize>0</maxmessagesize>
</handler>
</configuration>
</appliance>
<appliance name="threads"
class="org.apache.avalon.cornerstone.blocks.threads.DefaultThreadManager"
activation="true">
<configuration>
<thread-group>
<name>default</name>
<priority>5</priority>
<is-daemon>false</is-daemon>
<max-threads>100</max-threads>
<min-threads>20</min-threads>
<min-spare-threads>20</min-spare-threads>
</thread-group>
</configuration>
</appliance>
<appliance name="store"
class="org.apache.avalon.cornerstone.blocks.masterstore.RepositoryManager"
activation="true">
<configuration>
<repositories>
<repository
class="org.apache.james.mailrepository.filepair.File_Persistent_Object_Repository">
<protocols>
<protocol>file</protocol>
</protocols>
<types>
<type>OBJECT</type>
</types>
<models>
<model>SYNCHRONOUS</model>
<model>ASYNCHRONOUS</model>
<model>CACHE</model>
</models>
</repository>
<repository
class="org.apache.james.mailrepository.filepair.File_Persistent_Stream_Repository">
<protocols>
<protocol>file</protocol>
</protocols>
<types>
<type>STREAM</type>
</types>
<models>
<model>SYNCHRONOUS</model>
<model>ASYNCHRONOUS</model>
<model>CACHE</model>
</models>
</repository>
</repositories>
</configuration>
</appliance>
<!-- The High Level Storage block -->
<appliance name="mailstore"
class="org.apache.james.core.AvalonMailStore"
activation="true">
<configuration>
<repositories>
<repository
class="org.apache.james.mailrepository.AvalonMailRepository">
<protocols>
<protocol>file</protocol>
</protocols>
<types>
<type>MAIL</type>
</types>
</repository>
<repository
class="org.apache.james.mailrepository.AvalonSpoolRepository">
<protocols>
<protocol>file</protocol>
</protocols>
<types>
<type>SPOOL</type>
</types>
</repository>
<!-- These repositories store the entire message in the database -->
<repository class="org.apache.james.mailrepository.JDBCMailRepository">
<protocols>
<protocol>db</protocol>
</protocols>
<types>
<type>MAIL</type>
</types>
<config>
<sqlFile>file://conf/sqlResources.xml</sqlFile>
</config>
</repository>
<repository class="org.apache.james.mailrepository.JDBCSpoolRepository">
<protocols>
<protocol>db</protocol>
</protocols>
<types>
<type>SPOOL</type>
</types>
<config>
<sqlFile>file://conf/sqlResources.xml</sqlFile>
</config>
</repository>
<!-- These repositories store message delivery and headers in the DB,
and
the body to the filesystem -->
<repository class="org.apache.james.mailrepository.JDBCMailRepository">
<protocols>
<protocol>dbfile</protocol>
</protocols>
<types>
<type>MAIL</type>
</types>
<config>
<sqlFile>file://conf/sqlResources.xml</sqlFile>
<filestore>file://var/dbmail</filestore>
</config>
</repository>
<repository class="org.apache.james.mailrepository.JDBCSpoolRepository">
<protocols>
<protocol>dbfile</protocol>
</protocols>
<types>
<type>SPOOL</type>
</types>
<config>
<sqlFile>file://conf/sqlResources.xml</sqlFile>
<filestore>file://var/dbmail</filestore>
</config>
</repository>
</repositories>
<spoolRepository>
<repository destinationURL="file://var/mail/spool/" type="SPOOL"/>
</spoolRepository>
</configuration>
</appliance>
<appliance name="users-store"
class="org.apache.james.core.AvalonUsersStore"
activation="true">
<configuration>
<repository name="LocalUsers"
class="org.apache.james.userrepository.UsersFileRepository">
<destination URL="file://var/users/"/>
</repository>
</configuration>
</appliance>
<appliance name="connections"
class="org.apache.james.util.connection.SimpleConnectionManager"
activation="true">
<configuration>
<idle-timeout>300000</idle-timeout>
<max-connections>30</max-connections>
</configuration>
</appliance>
<appliance name="sockets"
class="org.apache.avalon.cornerstone.blocks.sockets.DefaultSocketManager"
activation="true">
<configuration>
<server-sockets>
<factory name="plain"
class="org.apache.avalon.cornerstone.blocks.sockets.DefaultServerSocketFactory"/>
</server-sockets>
<client-sockets>
<factory name="plain"
class="org.apache.avalon.cornerstone.blocks.sockets.DefaultSocketFactory"/>
</client-sockets>
</configuration>
</appliance>
<appliance name="scheduler"
class="org.apache.avalon.cornerstone.blocks.scheduler.DefaultTimeScheduler"
activation="true"/>
<appliance name="datasources"
class="org.apache.avalon.cornerstone.blocks.datasources.DefaultDataSourceSelector"
activation="true"/>
<appliance name="spool"
class="org.apache.james.transport.JamesSpoolManager"
activation="true">
<configuration>
<threads> 10 </threads>
<mailetpackages>
<mailetpackage>org.apache.james.transport.mailets</mailetpackage>
</mailetpackages>
<matcherpackages>
<matcherpackage>org.apache.james.transport.matchers</matcherpackage>
</matcherpackages>
<processor name="root">
<mailet match="RelayLimit=30" class="Null">
<debug>false</debug>
</mailet>
<mailet match="InSpammerBlacklist=blackholes.mail-abuse.org"
class="ToProcessor">
<processor> spam </processor>
<notice> Rejected - see http://www.mail-abuse.org/rbl/ </notice>
<debug>false</debug>
</mailet>
<mailet match="InSpammerBlacklist=dialups.mail-abuse.org"
class="ToProcessor">
<processor> spam </processor>
<notice> Dialup - see http://www.mail-abuse.org/dul/ </notice>
<debug>false</debug>
</mailet>
<mailet match="InSpammerBlacklist=relays.mail-abuse.org"
class="ToProcessor">
<processor> spam </processor>
<notice> Open spam relay - see http://www.mail-abuse.org/rss/
</notice>
<debug>false</debug>
</mailet>
<mailet match="All" class="ToProcessor">
<processor> transport </processor>
<debug>false</debug>
</mailet>
</processor>
<processor name="error">
<mailet match="All" class="ToRepository">
<repositoryPath> file://var/mail/error/</repositoryPath>
<passThrough> true </passThrough>
<debug>false</debug>
</mailet>
</processor>
<processor name="transport">
<mailet match="RecipientIsLocal" class="LocalDelivery"/>
<mailet match="HostIsLocal" class="ToProcessor">
<processor>error</processor>
<debug>false</debug>
</mailet>
<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
<processor> spam </processor>
<debug>false</debug>
</mailet>
<mailet match="All" class="RemoteDelivery">
<outgoing> file://var/mail/outgoing/ </outgoing>
<delayTime> 21600000 </delayTime>
<maxRetries> 5 </maxRetries>
<deliveryThreads> 1 </deliveryThreads>
<debug>false</debug>
<!--<gateway> otherserver.mydomain.com </gateway>-->
<!--<gatewayPort> 25 </gatewayPort>-->
</mailet>
</processor>
<processor name="spam">
<!--<mailet match="All" class="Null"/>-->
<!--<mailet match="All" class="NotifySender"/>-->
<!--<mailet match="All" class="NotifyPostmaster"/>-->
<mailet match="All" class="ToRepository">
<repositoryPath>file://var/mail/spam/</repositoryPath>
<debug>false</debug>
</mailet>
</processor>
</configuration>
</appliance>
<!-- NNTP Repository -->
<appliance name="nntp-repository"
class="org.apache.james.nntpserver.repository.NNTPRepositoryImpl"
activation="false">
<configuration>
<readOnly>false</readOnly>
<rootPath>file://var/nntp/groups</rootPath>
<tempPath>file://var/nntp/temp</tempPath>
<articleIDPath>file://var/nntp/articleid</articleIDPath>
<articleIDDomainSuffix>news.james.apache.org</articleIDDomainSuffix>
<!-- The news groups hosted in this NNTP repository. -->
<newsgroups>
<newsgroup>org.apache.james.dev</newsgroup>
<newsgroup>org.apache.james.user</newsgroup>
<newsgroup>org.apache.avalon.dev</newsgroup>
<newsgroup>org.apache.avalon.user</newsgroup>
</newsgroups>
<spool>
<configuration>
<spoolPath>file://var/nntp/spool</spoolPath>
<threadCount>1</threadCount>
<threadIdleTime>1000</threadIdleTime>
</configuration>
</spool>
</configuration>
</appliance>
<appliance name="nntp" class="org.apache.james.nntpserver.NNTPServer"
activation="false">
<configuration enabled="false">
<port>119</port>
<handler>
<helloName autodetect="true">myMailServer</helloName>
<connectiontimeout>120000</connectiontimeout>
<authRequired>false</authRequired>
</handler>
</configuration>
</appliance>
<appliance name="fetchpop" class="org.apache.james.fetchpop.FetchScheduler"
activation="false">
<configuration enabled="false">
<fetch name="mydomain.com">
<host>mail.mydomain.com</host>
<!-- Account login username -->
<user>username</user>
<!-- Account login password -->
<password>pass</password>
<interval>600000</interval>
</fetch>
</configuration>
</appliance>
</implementation>
</block>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]