That is fine to start, but it would be good to do the right thing for >=3.0

That being said, it seems you are saying the current implementation of
HttpService is not handling this correctly for the ServletContext?  It
would be good to start opening various bugs for these issues so we can
record the discussion there.

Tom





From:   Raymond Auge <[email protected]>
To:     Equinox development mailing list <[email protected]>,
Date:   03/26/2014 11:00 AM
Subject:        Re: [equinox-dev] [http-service] servlet compatibility
Sent by:        [email protected]



I'll proceed for now under the assumption it's not set, and see where I end
up when we get to non-root context mapping.

- Ray


On Wed, Mar 26, 2014 at 11:32 AM, Raymond Auge <[email protected]>
wrote:
  .. at least I can't think of one?

  - Ray


  On Wed, Mar 26, 2014 at 11:31 AM, Raymond Auge <[email protected]>
  wrote:
   I'm not sure we can because there will be no way to construct a context
   Path for new ServletContexts which are not mapped to the default path.


   On Wed, Mar 26, 2014 at 11:21 AM, Thomas Watson <[email protected]>
   wrote:
     Reading the RFC [1]

     I see the following defined for the http.service.endpoint:

     "A String+ value of Http Service endpoints provided as URLs e.g.
     http://192.168.1.10:8080/ or relative paths, e.g. /myapp/. Relative
     paths maybe used if the scheme and authority parts of the URLs are not
     known such as in a bridged Http Service implementation. If the Http
     Service is serving the root context and neither scheme nor authority
     is known, the value of the property is "/". Each entry must end with a
     slash."

     It goes on further to state:

     "The port and address information may not always be available to the
     Http Service implementation, particularly in a bridged implementation.
     In such cases the osgi.http.endpoint attribute may be absent."

     If ServletRegistration is not available in a <3.0 container could we
     just not set this service property in such an environment?

     Tom

     [1] https://github.com/osgi/design/tree/master/rfcs/rfc0189

     Inactive hide details for Raymond Auge ---03/26/2014 09:51:19 AM---Hey
     all, I have a conundrum.Raymond Auge ---03/26/2014 09:51:19 AM---Hey
     all, I have a conundrum.

     From: Raymond Auge <[email protected]>
     To: Equinox development mailing list <[email protected]>,
     Date: 03/26/2014 09:51 AM
     Subject: [equinox-dev] [http-service] servlet compatibility
     Sent by: [email protected]




     Hey all,

     I have a conundrum.

     While trying to retain backward compatibility, I'm encountering an
     initial difficulty.

     In order to calculate the values for `http.service.endpoint` I need to
     get all the mappings of the proxy servlet.

     However, the only "spec" way of doing that is by calling:

     String servletName = config.getServletName();
     ServletRegistration servletRegistration =
     hostServletContext.getServletRegistration(servletName);
     Collection<String> mappings = servletRegistration.getMappings();

     However, while I can proxy the hostServletContext and avoid the "no
     such method" issue for `getServletRegistration`, the return type is
     the real problem.

     In fact, if we can't calculate the proxy servlet mappings this way, we
     can't advance without at least one endpoint value since this is
     required.

     How should we deal with that scenario?

     1) fail without mercy?
     2) expect some user value (init-param or config) we'll retrieve (which
     might be wrong)

     If we do 1) we might as well just call the new method and fail in
     Servlet <3.0 containers
     If we do 2) we allow a http-service which can potentially return
     inaccurate endpoint info.

     --
     Raymond Augé (@rotty3000)
     Senior Software Architect
     Liferay, Inc. (@Liferay)
     _______________________________________________
     equinox-dev mailing list
     [email protected]
     https://dev.eclipse.org/mailman/listinfo/equinox-dev


     _______________________________________________
     equinox-dev mailing list
     [email protected]
     https://dev.eclipse.org/mailman/listinfo/equinox-dev




   --
   Raymond Augé (@rotty3000)
   Senior Software Architect
   Liferay, Inc. (@Liferay)






  --
  Raymond Augé (@rotty3000)
  Senior Software Architect
  Liferay, Inc. (@Liferay)






--
Raymond Augé (@rotty3000)
Senior Software Architect
Liferay, Inc. (@Liferay)
_______________________________________________
equinox-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/equinox-dev

<<inline: graycol.gif>>

_______________________________________________
equinox-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to