5 Replies Latest reply on Jan 5, 2010 5:54 PM by apwalker

    Public api package

    timfox

      As discussed on IRC today, I think we should consider putting public api classes and interfaces in their own package to avoid ambiguity to the user about what they should be directly dealing with in their code.

       

      I believe the public API consists of the following classes:

       

      org.hornetq.SimpleString

      org.hornetq.Pair

      org.hornetq.core.client.*

      org.hornetq.core.client.impl.ClientSessionFactoryImpl

      org.hornetq.core.client.impl.*LoadBalancingPolicy

      org.hornet.core.buffers.HornetQBuffer

      org.hornet.core.buffers.HornetQBuffers

      org.hornetq.core.client.management.ManagementHelper

      org.hornetq.core.config.Configuration

      org.hornetq.core.config.impl.ConfigurationImpl

      org.hornetq.core.config.impl.FileConfigurationImpl

      org.hornetq.core.exception.HornetQException

      org.hornetq.core.management.*

      org.hornetq.core.message.Message

      org.hornetq.core.remoting.Interceptor

      org.hornetq.core.remoting.spi.*

      org.hornetq.jms.*

      org.hornetq.jms.client.HornetQConnectionFactory

      org.hornetq.jms.management.*

      org.hornetq.jms.server.config.*

      org.hornetq.jms.server.config.impl.*

      org.hornetq.jms.server.JMSServerManager

      org.hornetq.jms.server.impl.JMSServerManagerImpl

      org.hornetq.core.security.HornetQSecurityManager

      org.hornetq.core.security.impl.HornetQSecurityManagerImpl

      org.hornetq.core.security.impl.JAASSecurityManager

        • 1. Re: Public api package
          timfox

          We could have the following mapping:

           

          (Basically, anything with a parent "api" or "spi" package represents part of the public api):

           

          org.hornetq.SimpleString --> org.hornetq.api.SimpleString

          org.hornetq.Pair --> org.hornet.api.Pair

          org.hornetq.core.client.* --> org.hornetq.core.api.client.*

          org.hornetq.core.client.impl.ClientSessionFactoryImpl --> org.hornet.core.api.client.ClientSessionFactoryImpl

          org.hornetq.core.client.impl.*LoadBalancingPolicy --> org.hornetq.core.api.client.loadbalance.*

          org.hornet.core.buffers.HornetQBuffer --> org.hornetq.core.api.buffers.HornetQBuffer

          org.hornet.core.buffers.HornetQBuffers --> org.hornetq.core.api.buffers.HornetQBuffers

          org.hornetq.core.client.management.ManagementHelper -->org.hornetq.core.api.management.ManagementHelper

          org.hornetq.core.config.Configuration --> org.hornetq.core.api.config.Configuration

          org.hornetq.core.config.impl.ConfigurationImpl --> org.hornetq.core.api.config.ConfigurationImpl

          org.hornetq.core.config.impl.FileConfigurationImpl --> org.hornetq.core.api.config.FileConfiguration

          org.hornetq.core.exception.HornetQException --> org.hornetq.core.api.exception.HornetQException

          org.hornetq.core.management.* --> org.hornetq.core.api.management

          org.hornetq.core.message.Message --> org.hornetq.core.api.Message

          org.hornetq.core.remoting.Interceptor --> org.hornetq.core.api.interceptor.Interceptor

          org.hornetq.core.remoting.spi.* --> org.hornetq.core.remoting.spi.*

          org.hornetq.jms.* --> org.hornetq.jms.api.*

          org.hornetq.jms.client.HornetQConnectionFactory --> org.hornetq.jms.api.HornetQConnectionFactory

          org.hornetq.jms.management.* --> org.hornetq.jms.api.management.*

          org.hornetq.jms.server.config.* --> org.hornetq.jms.api.config.*

          org.hornetq.jms.server.config.impl.* --> org.hornetq.jms.api.config.*

          org.hornetq.jms.server.JMSServerManager --> org.hornetq.jms.api.server.JMSServerManager

          org.hornetq.jms.server.impl.JMSServerManagerImpl --> org.hornetq.jms.api.server.ServerManager

          org.hornetq.core.security.HornetQSecurityManager --> org.hornetq.core.api.security.HornetQSecurityManager

          org.hornetq.core.security.impl.HornetQSecurityManagerImpl --> org.hornetq.core.api.security.HornetQSecurityManagerImpl

          org.hornetq.core.security.impl.JAASSecurityManager --> org.hornetq.core.api.security.JAASSecurityManager

           

          This also makes us better future proofed for https://jira.jboss.org/jira/browse/TAG-17

          • 2. Re: Public api package
            timfox

            Alternatively:

             

            org.hornetq.SimpleString --> org.hornetq.api.SimpleString

            org.hornetq.Pair --> org.hornet.api.Pair

            org.hornetq.core.client.* --> org.hornetq.api.core.client.*

            org.hornetq.core.client.impl.ClientSessionFactoryImpl --> org.hornet.api.core.client.ClientSessionFactoryImpl

            org.hornetq.core.client.impl.*LoadBalancingPolicy --> org.hornetq.api.core.client.loadbalance.*

            org.hornet.core.buffers.HornetQBuffer --> org.hornetq.api.core.buffers.HornetQBuffer

            org.hornet.core.buffers.HornetQBuffers --> org.hornetq.api.core.buffers.HornetQBuffers

            org.hornetq.core.client.management.ManagementHelper -->org.hornetq.api.core.management.ManagementHelper

            org.hornetq.core.config.Configuration --> org.hornetq.api.core.config.Configuration

            org.hornetq.core.config.impl.ConfigurationImpl --> org.hornetq.api.core.config.ConfigurationImpl

            org.hornetq.core.config.impl.FileConfigurationImpl --> org.hornetq.api.core.config.FileConfiguration

            org.hornetq.core.exception.HornetQException --> org.hornetq.api.core.exception.HornetQException

            org.hornetq.core.management.* --> org.hornetq.api.core.management

            org.hornetq.core.message.Message --> org.hornetq.api.core.message.Message

            org.hornetq.core.remoting.Interceptor --> org.hornetq.api.core.interceptor.Interceptor

            org.hornetq.core.remoting.spi.* --> org.hornetq.spi.core.remoting.*

            org.hornetq.jms.* --> org.hornetq.api.jms.*

            org.hornetq.jms.client.HornetQConnectionFactory --> org.hornetq.japi.jms.HornetQConnectionFactory

            org.hornetq.jms.management.* --> org.hornetq.api.jms.management.*

            org.hornetq.jms.server.config.* --> org.hornetq.api.jms.config.*

            org.hornetq.jms.server.config.impl.* --> org.hornetq.api.jms.config.*

            org.hornetq.jms.server.JMSServerManager --> org.hornetq.api.jms.server.JMSServerManager

            org.hornetq.jms.server.impl.JMSServerManagerImpl --> org.hornetq.api.jms.server.ServerManager

            org.hornetq.core.security.HornetQSecurityManager --> org.hornetq.api.core.security.HornetQSecurityManager

            org.hornetq.core.security.impl.HornetQSecurityManagerImpl --> org.hornetq.api.core.security.HornetQSecurityManagerImpl

            org.hornetq.core.security.impl.JAASSecurityManager --> org.hornetq.api.core.security.JAASSecurityManager

            • 3. Re: Public api package
              jmesnil

              sounds good.

               

              I'll also add the jms.bridge package to the public API.

               

              One remark about the security and logging packages. I think they'd be better classified in the spi subpackages.

              This makes it more consistent with the remoting spi: public definition is in spi and private implementation are in the integration subpackages

              • 4. Re: Public api package
                timfox
                +1 on security and logging being spi's
                • 5. Re: Public api package

                  Is this going to be packaged as a seperate Jar?