Hi,
My first proposal used javax.net.URI. It could do that again. No Oak API
required.
Best Regards
Ian

On 16 October 2017 at 14:34, Julian Sedding <jsedd...@gmail.com> wrote:

> Hi Ian
>
> The only bundle with a direct dependency to Oak is Sling JCR Resource.
> All other bundles you mention require an updated Sling API (for
> ExternalizableInputStream), which should be no problem.
>
> In detail:
> - Sling API defines ExternalizableInputStream
> - Sling JCR Resource implements ExternalizableInputStream (using Oak
> 1.7.9 internally)
> - Sling Get Servlet leverages ExternalizableInputStream to implement
> the redirect feature
> - Sling ResourceResolver - I think this does not need to be touched at
> all ( I may be missing something of course)
>
> I fail to see a solution that allows you to implement this feature in
> Sling without a direct dependency to Oak is Sling JCR Resource. Hence
> I fail to follow your argument about why your alternative solution
> would be better.
>
> Regards
> Julian
>
>
> On Mon, Oct 16, 2017 at 2:07 PM, Ian Boston <i...@tfd.co.uk> wrote:
> > Hi,
> > I think it would be better to go back and look at the earlier proposals
> for
> > this patch that did not require any new APIs from Oak to work. They were
> > written that way to avoid exactly the problem of a long dependency chain
> > now blocking the feature.
> >
> > Since Oak only releases its first stable release towards the end of an
> AEM
> > GA cycle and Sling can't release anything depending on that until Oak is
> > table, that leaves the short period between Oak going Stable and feature
> > freeze for the next version of AEM for everything else to be done. If
> > feature freeze is missed, then next opportunity comes a year to 18 months
> > later, which isn't very agile and certainly not what Sling is about.
> >
> > Sling is an Apache project and should not really be governed by the AEM
> > release cycle, but given there are so many Adobe employees and partners
> > working on Sling and AEM is possibly Slings larges stakeholder that is
> > almost impossible to avoid.
> >
> > So we have to find a way of living with this, which is why the first
> patch
> > for the feature didn't require any APIs in Oak.
> > Best Regards
> > Ian
> >
> >
> > On 16 October 2017 at 12:34, Julian Sedding <jsedd...@gmail.com> wrote:
> >
> >> Yes, branching could be an option. To avoid confusion, it may be
> >> prudent to do any releases from such branches only with odd bundle
> >> micro-versions and a qualifier. Such a version number could e.g. look
> >> like this: 1.4.7-EXPERIMENTAL.
> >>
> >> That way a released artifact is clearly labelled as being experimental
> >> (or whatever qualifier is chosen) and the odd micro-version number is
> >> one that's usually reserved for snapshots (by convention in Sling).
> >> This may cause people experimenting with such bundles some minor
> >> hickups (e.g. snapshot overriding experimental release bundle), but
> >> that should be acceptable IMHO.
> >>
> >> Regards
> >> Julian
> >>
> >>
> >>
> >> On Fri, Oct 13, 2017 at 6:37 PM, Ian Boston <i...@tfd.co.uk> wrote:
> >> > Hi,
> >> > The bundles are
> >> >
> >> > Sling API
> >> > Sling ResourceResolver
> >> > Sling JCR Resource
> >> > Sling GET Servlets.
> >> >
> >> > given these will probably get fixed between now and when Oak 2.0 is
> >> > released and could end up in a product I don't think an internal
> release
> >> is
> >> > a viable low risk option.
> >> >
> >> > I think the only viable option is to wait for Oak 2.0 to be released,
> >> given
> >> > the Oak backport policy of no new features or API changes in stable
> >> > branches.
> >> > Best Regards
> >> > Ian
> >> >
> >> >
> >> > On 13 October 2017 at 17:25, Chetan Mehrotra <
> chetan.mehro...@gmail.com>
> >> > wrote:
> >> >
> >> >> Another possible option can be to branch such bundles which depend on
> >> >> Oak API and do unstable releases for them i.e. only odd version
> >> >> release. This would allow implementing parts in Sling which rely on
> >> >> new features implement in Oak trunk
> >> >
> >> > Chetan Mehrotra
> >> >>
> >> >>
> >> >> On Fri, Oct 13, 2017 at 8:25 PM, Ian Boston <i...@tfd.co.uk> wrote:
> >> >> > Hi,
> >> >> >
> >> >> > On 13 October 2017 at 15:46, Julian Sedding <jsedd...@gmail.com>
> >> wrote:
> >> >> >
> >> >> >> AFAIK Oak does not use semantic versioning for packages within
> uneven
> >> >> >> minor version changes (i.e. 1.8 will be baselined against 1.6).
> This
> >> >> >> gives the Oak dev team freedom to experiment with API changes
> within
> >> >> >> the uneven "development" version (i.e. currently 1.7).
> >> >> >>
> >> >> >> Sling, on the other hand uses semantic versioning and
> (implicitly?)
> >> >> >> requires that any bundle can be released at any point. This
> >> >> >> requirement conflicts with Oak's "unstable" development releases
> in
> >> so
> >> >> >> far as Sling should not create any releases that reference Oak's
> >> >> >> intermittent (non semantic) package versions. Doing so could lead
> to
> >> >> >> update problems or badly wired OSGi bundles down the line.
> >> >> >>
> >> >> >> IMHO the "unstable" label of Oak's uneven minor versions refers
> not
> >> to
> >> >> >> unstable or poorly tested code, but acknowledges that semantic
> >> >> >> versioning is only enforced in releases with even minor version
> >> >> >> numbers.
> >> >> >>
> >> >> >> This implies that using "unstable" Oak for testing within Sling
> >> should
> >> >> >> be fine. Releasing bundles with "unstable" Oak dependencies is
> >> >> >> definitely slippery slope, even though it does not have to lead to
> >> >> >> problems.
> >> >> >>
> >> >> >
> >> >> > Underlined by the appearance of some new bundles in 1.7.9 that were
> >> not
> >> >> > there in 1.7.8, however AFAIK the package versions were not
> changed.
> >> >> >
> >> >> > Since I was wrong to assert 1.7.8 was close to 1.8.0 (see other
> >> thread),
> >> >> I
> >> >> > have asked oak-dev to clarify it it is or not. If its not, I also
> dont
> >> >> want
> >> >> > to slip down that slope.
> >> >> > Best Regards
> >> >> > Ian
> >> >> >
> >> >> >
> >> >> >
> >> >> >>
> >> >> >> Remains the tricky question: how do we build on cutting edge Oak
> >> >> >> features? Branches could be one option (especially once we're on
> >> Git),
> >> >> >> with no (official) releases from the branch.
> >> >> >>
> >> >> >> Regards
> >> >> >> Julian
> >> >> >>
> >> >> >>
> >> >> >> On Fri, Oct 13, 2017 at 11:56 AM, Ian Boston <i...@tfd.co.uk>
> wrote:
> >> >> >> > Hi,
> >> >> >> > My View is that it would be dangerous to depend on 1.11.1 but
> safe
> >> to
> >> >> >> > depend on 1.11.25 if 1.11.25 was known to be near to the branch
> to
> >> >> >> 1.12.x.
> >> >> >> > The closer to 1.11.1, the greater the risk of instability, the
> >> closer
> >> >> to
> >> >> >> > 1.12.x the less the risk.
> >> >> >> >
> >> >> >> > IIUC Oak have started to discuss the possibility of branching
> >> 1.8.x,
> >> >> >> which
> >> >> >> > makes 1.7.9 relatively close to that branch. That said, I made
> an
> >> API
> >> >> >> > change that appeared in 1.7.9 ;). It all depends on the detail
> in
> >> >> every
> >> >> >> > case. There are no rules that always work.
> >> >> >> >
> >> >> >> > Best Regards
> >> >> >> > Ian
> >> >> >> >
> >> >> >> >
> >> >> >> >
> >> >> >> > On 12 October 2017 at 16:28, Matt Ryan <o...@mvryan.org> wrote:
> >> >> >> >
> >> >> >> >> Hi,
> >> >> >> >>
> >> >> >> >> I’m curious to explore the reasoning behind the general
> principle
> >> of
> >> >> >> only
> >> >> >> >> having dependencies on stable Oak releases.  Of course I
> >> understand
> >> >> the
> >> >> >> >> importance of keeping the codebase on a solid foundation and
> thus
> >> to
> >> >> >> want
> >> >> >> >> stable releases for dependencies.  My question is, what
> exactly is
> >> >> >> meant by
> >> >> >> >> “stable”?
> >> >> >> >>
> >> >> >> >> I expect we regard even-numbered minor versions in Oak as
> stable
> >> >> >> releases
> >> >> >> >> because that’s how the Oak project refers to such releases.
> >> Based on
> >> >> >> that
> >> >> >> >> reasoning, Oak 1.7.8 is unstable by definition.  I’d then argue
> >> that
> >> >> if
> >> >> >> Oak
> >> >> >> >> were to change their versioning model (which I’m not proposing
> -
> >> and
> >> >> I
> >> >> >> >> wouldn’t propose it here if I was proposing such a thing
> anyway)
> >> such
> >> >> >> that
> >> >> >> >> a “stable” Oak release is defined by some other means (say, any
> >> >> version
> >> >> >> >> that passes the entire test suite), Oak 1.7.10 may be
> considered
> >> >> stable
> >> >> >> -
> >> >> >> >> in which case the concern to rely on that version would be
> >> lower.  In
> >> >> >> other
> >> >> >> >> words:  If Oak were to declare a version as stable, is that
> >> >> sufficient
> >> >> >> for
> >> >> >> >> us to rely on those package versions?  Or would we do our own
> >> >> validation
> >> >> >> >> anyway?
> >> >> >> >>
> >> >> >> >> My point is that it appears the resistance to use a particular
> Oak
> >> >> >> version
> >> >> >> >> is based on Oak not declaring it as stable.  Yet Sling probably
> >> >> depends
> >> >> >> on
> >> >> >> >> other packages that have different criteria for being
> considered
> >> >> stable
> >> >> >> -
> >> >> >> >> some which may not even declare a particular version as such.
> I
> >> >> don’t
> >> >> >> have
> >> >> >> >> concrete knowledge about that of course, just a hunch.
> >> >> >> >>
> >> >> >> >> But if that’s the case, perhaps it is worthwhile to consider
> the
> >> >> reason
> >> >> >> >> this policy was adopted for Oak packages, and maybe in
> >> understanding
> >> >> >> what
> >> >> >> >> the real goal is we can find a way where we don’t feel
> concerned
> >> >> >> updating
> >> >> >> >> dependencies to an “unstable” Oak release.  For example, if
> such a
> >> >> >> release
> >> >> >> >> passes all Oak tests and all Sling tests, maybe that’s
> acceptable.
> >> >> >> >>
> >> >> >> >> -MR
> >> >> >> >>
> >> >> >> >>
> >> >> >> >> On October 12, 2017 at 8:34:50 AM, Ian Boston (i...@tfd.co.uk)
> >> wrote:
> >> >> >> >>
> >> >> >> >> Hi,
> >> >> >> >> Here is a patch to make Sling work with Oak 1.7.8. Once I
> fixed a
> >> >> full
> >> >> >> >> build (just did a pull request) it passes a full IT build. The
> >> patch
> >> >> >> >> updates the paxexam setup so IT tests that uses that will test
> >> >> against
> >> >> >> Oak
> >> >> >> >> 1.7.8. I also tested with 1.8-SNAPSHOT so this should be good
> for
> >> >> >> anything
> >> >> >> >> after 1.7.8. We might wait till 1.7.10 comes out as IIUC this
> will
> >> >> >> >> include OAK-6575.
> >> >> >> >>
> >> >> >> >> wdyt, mege when 1.7.10 is out and upgrade to a stable 1.8 when
> its
> >> >> cut ?
> >> >> >> >> Best Regards
> >> >> >> >> Ian
> >> >> >> >>
> >> >> >> >> 1
> >> >> >> >> https://github.com/apache/sling/compare/trunk...ieb:
> >> >> >> >> upgradeToOak178?expand=1
> >> >> >> >>
> >> >> >> >> On 11 October 2017 at 11:38, Ian Boston <i...@tfd.co.uk> wrote:
> >> >> >> >>
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > On 11 October 2017 at 11:25, Robert Munteanu <
> >> romb...@apache.org>
> >> >> >> >> wrote:
> >> >> >> >> >
> >> >> >> >> >> On Wed, 2017-10-11 at 11:16 +0100, Ian Boston wrote:
> >> >> >> >> >> > Hi,
> >> >> >> >> >> > Switching to depend on Oak 1.7 requires upgrading
> oak-server
> >> to
> >> >> use
> >> >> >> >> >> > 1.7 or
> >> >> >> >> >> > later.
> >> >> >> >> >> > There has been some incompatible changes at a bundle level
> >> and
> >> >> >> >> >> > package
> >> >> >> >> >> > level between 1.6 and 1.7 so its not as simple has
> changing
> >> the
> >> >> >> >> >> > versions.
> >> >> >> >> >> > For instance oak-api bundle didnt existi in 1.6 and
> >> >> NodeAggregator
> >> >> >> >> >> > class
> >> >> >> >> >> > doesn't appear to exist in 1.7. oak-server wont build
> >> without a
> >> >> >> >> >> > patch.
> >> >> >> >> >> >
> >> >> >> >> >> > Obviously, if you have an oak-server or equivalent that
> >> already
> >> >> >> >> >> > depends on
> >> >> >> >> >> > 1.7 or later, then its trivial, but Sling doesn't.
> >> >> >> >> >>
> >> >> >> >> >> So we need need to make oak-server and jcr.resource
> dependent
> >> on
> >> >> Oak
> >> >> >> >> >> 1.7, right?
> >> >> >> >> >>
> >> >> >> >> >
> >> >> >> >> > Yes, working on a patch now.
> >> >> >> >> > Compiles but all ITs fail.
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> >>
> >> >> >> >> >> I would guess that oak-server is not such a big issue. Is it
> >> >> possible
> >> >> >> >> >> to make the dependency from jcr.resource to the newer oak
> api
> >> >> >> optional?
> >> >> >> >> >> If the bundle would also run on Oak 1.6 I guess there would
> be
> >> no
> >> >> >> >> >> issue.
> >> >> >> >> >>
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > In the original patch with AdapterFactories that would have
> been
> >> >> >> simple
> >> >> >> >> as
> >> >> >> >> > it was very loosly coupled for exactly this reason, however
> that
> >> >> patch
> >> >> >> >> was
> >> >> >> >> > rejected by this list, and a much more tightly bound patch[1]
> >> was
> >> >> >> >> > required. Making HelperData, core to Sling GET Servlets, load
> >> >> safely
> >> >> >> >> with
> >> >> >> >> > one of its imports optional will be messy and will make its
> >> method
> >> >> >> calls
> >> >> >> >> > nasty.
> >> >> >> >> >
> >> >> >> >> > Best Regards
> >> >> >> >> > Ian
> >> >> >> >> >
> >> >> >> >> > 1 https://github.com/apache/sling/compare/trunk...ieb:OAK-
> >> 6575-3-2
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> >>
> >> >> >> >> >> Thanks,
> >> >> >> >> >>
> >> >> >> >> >> Robert
> >> >> >> >> >>
> >> >> >> >> >> > Best Regards
> >> >> >> >> >> > Ian
> >> >> >> >> >> >
> >> >> >> >> >> > On 11 October 2017 at 11:07, Stefan Egli <
> >> stefane...@apache.org
> >> >> >
> >> >> >> >> >> > wrote:
> >> >> >> >> >> >
> >> >> >> >> >> > > Having said that, the only bullet to bite when
> switching to
> >> >> Oak
> >> >> >> >> >> > > 1.7.x is
> >> >> >> >> >> > > increased maintenance effort: the affected bundles will
> >> become
> >> >> >> >> >> > > backwards
> >> >> >> >> >> > > incompatible wrt Oak 1.6.x and if they need to be
> patched
> >> it
> >> >> >> would
> >> >> >> >> >> > > not be
> >> >> >> >> >> > > possible to do so in trunk anymore.
> >> >> >> >> >> > >
> >> >> >> >> >> > > Cheers,
> >> >> >> >> >> > > Stefan
> >> >> >> >> >> > >
> >> >> >> >> >> > > On 11/10/17 12:03, "Stefan Egli" <stefane...@apache.org
> >
> >> >> wrote:
> >> >> >> >> >> > >
> >> >> >> >> >> > > > Hi Ian,
> >> >> >> >> >> > > >
> >> >> >> >> >> > > > I don't see a problem with having a dependency on an
> >> >> unstable
> >> >> >> Oak
> >> >> >> >> >> > > > 1.7.x in
> >> >> >> >> >> > > > Sling.
> >> >> >> >> >> > > >
> >> >> >> >> >> > > > Actual deployments can still, independent of this,
> make a
> >> >> call
> >> >> >> >> >> > > > whether or
> >> >> >> >> >> > > > not they want to actually run on Oak 1.7.x or wait for
> >> Oak
> >> >> 1.8
> >> >> >> >> >> > > > (which is
> >> >> >> >> >> > > > advisable). IMO having this dependency doesn't imply
> on
> >> >> which
> >> >> >> >> >> > > > version it
> >> >> >> >> >> > > > will ultimately run.
> >> >> >> >> >> > > >
> >> >> >> >> >> > > > Cheers,
> >> >> >> >> >> > > > Stefan
> >> >> >> >> >> > > >
> >> >> >> >> >> > > > On 11/10/17 11:54, "Ian Boston" <ianbos...@gmail.com
> on
> >> >> behalf
> >> >> >> >> of
> >> >> >> >> >> > > > i...@tfd.co.uk> wrote:
> >> >> >> >> >> > > >
> >> >> >> >> >> > > > > Hi,
> >> >> >> >> >> > > > > Oak 1.7.x is Oak unstable release branch working
> >> towards
> >> >> 1.8.
> >> >> >> >> >> > > > > I have a feature in SLING-7140 that is blocked by an
> >> API
> >> >> >> change
> >> >> >> >> >> > > > > in Oak
> >> >> >> >> >> > > > > present in 1.8-SNAPSHOT and available as an unmerged
> >> but
> >> >> >> tested
> >> >> >> >> >> > > > > patch to
> >> >> >> >> >> > > > > Oak 1.6.x.
> >> >> >> >> >> > > > >
> >> >> >> >> >> > > > > The Oak team are unwilling merge the patch to 1.6
> and
> >> have
> >> >> >> >> >> > > > > asked that
> >> >> >> >> >> > > > > Sling
> >> >> >> >> >> > > > > depend on the latest release of Oak 1.7.
> >> >> >> >> >> > > > >
> >> >> >> >> >> > > > > How does the Sling team feel about this ?
> >> >> >> >> >> > > > >
> >> >> >> >> >> > > > > The patch for SLING-7140 cant be merged until the
> API
> >> is
> >> >> >> >> >> > > > > available in Oak
> >> >> >> >> >> > > > > in some form and I don't want to depend on Oak
> >> >> 1.8-SNAPSHOT
> >> >> >> as
> >> >> >> >> >> > > > > this will
> >> >> >> >> >> > > > > block Sling releases of the bundles involved.
> >> >> >> >> >> > > > > Best Regards
> >> >> >> >> >> > > > > Ian
> >> >> >> >> >> > > >
> >> >> >> >> >> > > >
> >> >> >> >> >> > >
> >> >> >> >> >> > >
> >> >> >> >> >> > >
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >
> >> >> >> >>
> >> >> >> >>
> >> >> >>
> >> >>
> >>
>

Reply via email to