Yutaka-Notes about Extensible Classes In ZimbraStore: Difference between revisions
No edit summary |
No edit summary |
||
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
''Here is the list of classes which you can extend to enhance zimbra standard functionality of ZimbraStore with your own classes.'' | ''Here is the list of classes which you can extend to enhance zimbra standard functionality of ZCS7's ZimbraStore with your own classes.'' | ||
==com.zimbra.cs.lmtpserver.LmtpCallback== | ==com.zimbra.cs.lmtpserver.LmtpCallback== | ||
By this, you can register your custom function to be called when a messege is receive with lmtp. | By extending this with your own class, you can register your custom function to be called when a messege is receive with lmtp. | ||
Sample is here;com.zimbra.cs.mailbox.QuotaWarning | Sample is here;com.zimbra.cs.mailbox.QuotaWarning | ||
[Note]You have to register | [Note]You have to register your own class to com.zimbra.cs.lmtpserver.ZimbraLmtpBackend | ||
==com.zimbra.cs.service.AuthProvider== | ==com.zimbra.cs.service.AuthProvider== | ||
By this, you can implement to genearate custom auth token and to validate that. | By extending this with your own class, you can implement to genearate custom auth token and to validate that. | ||
Sample is here; | Sample is here; | ||
com.zimbra.cs.service.ZimbraAuthProvider | com.zimbra.cs.service.ZimbraAuthProvider | ||
[Note] You have to register | [Note] You have to register your own class to com.zimbra.cs.service.AuthProvider | ||
==com.zimbra.cs.security.sasl.Authenticator== | ==com.zimbra.cs.security.sasl.Authenticator== | ||
Line 26: | Line 26: | ||
==com.zimbra.cs.account.AttributeCallback== | ==com.zimbra.cs.account.AttributeCallback== | ||
By this, you can implement custom function which is called right before/after a certain LDAP field is modified. | By extending this with your own class, you can implement custom function which is called right before/after a certain LDAP field is modified. | ||
Sample is here; | Sample is here; | ||
com.zimbra.cs.account.callback.AccountStatus | com.zimbra.cs.account.callback.AccountStatus | ||
[Note] You have to register | [Note] You have to register your own class to zimbra-attrs.xml and rebuild ZimbraServer project as far as I remember. | ||
==com.zimbra.cs.mime.MimeVisitor[converter]== | ==com.zimbra.cs.mime.MimeVisitor[converter]== | ||
By this, you can modify the message on the fly when a message is fetched from the store to be sent back to client or prepared for forwarding and indexing. | By extending this with your own class, you can modify the message on the fly when a message is fetched from the store to be sent back to client or prepared for forwarding and indexing. | ||
These modification is not sotred on disk. | These modification is not sotred on disk. | ||
Line 40: | Line 40: | ||
com.zimbra.cs.mime.TnefConverter | com.zimbra.cs.mime.TnefConverter | ||
[Note] You have to register | [Note] You have to register your own class to com.zimbra.cs.mime.MimeVisitor. | ||
==com.zimbra.cs.mime.MimeVisitor[mutator]== | ==com.zimbra.cs.mime.MimeVisitor[mutator]== | ||
By this, you can modify | By extending this with your own class, you can modify a message when the message is stored to the disk. | ||
This is basically to | This is basically to modify MimeMessage and execute saveChange. So it could have some impact to DiskI/O. | ||
Sample is here; | Sample is here; | ||
No sample. | No sample. | ||
[Note] You have to register | [Note] You have to register your own class to com.zimbra.cs.mime.MimeVisitor. | ||
==com.zimbra.cs.mailbox.ScheduledTask== | ==com.zimbra.cs.mailbox.ScheduledTask== | ||
==com.zimbra.cs.mailbox.MailboxListener== |
Latest revision as of 04:09, 20 February 2012
Here is the list of classes which you can extend to enhance zimbra standard functionality of ZCS7's ZimbraStore with your own classes.
com.zimbra.cs.lmtpserver.LmtpCallback
By extending this with your own class, you can register your custom function to be called when a messege is receive with lmtp.
Sample is here;com.zimbra.cs.mailbox.QuotaWarning
[Note]You have to register your own class to com.zimbra.cs.lmtpserver.ZimbraLmtpBackend
com.zimbra.cs.service.AuthProvider
By extending this with your own class, you can implement to genearate custom auth token and to validate that.
Sample is here; com.zimbra.cs.service.ZimbraAuthProvider
[Note] You have to register your own class to com.zimbra.cs.service.AuthProvider
com.zimbra.cs.security.sasl.Authenticator
By this, you can add SASL mechanism for IMAP/POP. But to use the custome SASL mechanism, you also needs to customize Zimbra Proxy(Nginx/nginxlookup), which requires you to modify core code.
Sample is here; com.zimbra.cs.security.sasl.PlainAuthenticator
[Note] You have to register this to com.zimbra.cs.security.sasl.Authenticator
com.zimbra.cs.account.AttributeCallback
By extending this with your own class, you can implement custom function which is called right before/after a certain LDAP field is modified.
Sample is here; com.zimbra.cs.account.callback.AccountStatus
[Note] You have to register your own class to zimbra-attrs.xml and rebuild ZimbraServer project as far as I remember.
com.zimbra.cs.mime.MimeVisitor[converter]
By extending this with your own class, you can modify the message on the fly when a message is fetched from the store to be sent back to client or prepared for forwarding and indexing. These modification is not sotred on disk.
Sample is here; com.zimbra.cs.mime.TnefConverter
[Note] You have to register your own class to com.zimbra.cs.mime.MimeVisitor.
com.zimbra.cs.mime.MimeVisitor[mutator]
By extending this with your own class, you can modify a message when the message is stored to the disk. This is basically to modify MimeMessage and execute saveChange. So it could have some impact to DiskI/O.
Sample is here; No sample.
[Note] You have to register your own class to com.zimbra.cs.mime.MimeVisitor.