Hi Ichiro,

I did have a brief look at your code JSPWIKI-806. The xml configuration,
the public, private, protected modifiers, etc. Will need to do a 3 way diff
to continue with your work. But will look into this further.

Cheers,
David V
On 17/02/2015 12:23 PM, "Ichiro Furusato" <ichiro.furus...@gmail.com> wrote:

> Hi,
> Some months ago I was assigned lead on a large project that has all
> but eliminated any time for other work, so apologies for my absence.
>
> I'd done a fair bit of work towards several new APIs in mind of some
> of the cleanup work that Janne had indicated years ago, plus some
> ideas of my own. I can't remember off the top of my head exactly how
> far I'd got down that road, but I believe I may have sent the code
> along to Juan Pablo, though I certainly don't hold him responsible
> for remembering the details or holding a copy of the code. In looking
> at JSPWIKI-806 some of this comes back to me...
>
> There are a number of significant issues with the current JSPWiki
> API, and the EntityManager was an attempt to solve several at once:
> the bootstrap code for the engine, i.e., how the various managers
> were configured and instantiated, as well as how they were accessed.
> This would have significant impact on things like the PluginManager,
> SearchManager, and the like, and permit much easier reconfiguration
> of the engine. Basically open it up completely during the bootstrap
> process.
>
> The basic idea is that almost everything inside of JSPWiki becomes,
> in addition to being a Java Object, also a declared "entity", registered
> by ID in the EntityManager. All large Objects such as managers are
> instantiated by the EntityManager, no longer by the WikiEngine.
>
> The bootstrapping process occurs in three phases, associated with
> three levels of object read and write permissions: 1. private 2. protected;
> and 3. public. This was to intended to be similar Unix/Linux permissions,
> insofar as declaration and usage, so that it was easily understandable
> both to the JSPWiki team developers and the developers using it. The
> three phases are: 1. engine bootstrap; 2. creation of all configured
> entities; then 3. "public" (open) access. So there's that necessary cross
> of phase and permissions. The one obvious hole is that none of the
> existing APIs have any concept of "read-only" and "modify" aspects to
> their various methods. So maybe that's overkill.
>
> Any entity declared private can be instantiated by the EntityManager
> only during WikiEngine bootstrapping, i.e., once that has occurred
> any subsequent attempt at instantiatiation of a private object throws
> an exception. Following bootstrap (once the engine is running) any
> entities declared protected can still be instantiated by anything
> within the wiki, but not by user-level code such as plugins. Finally,
> user-level code such as plugins or page-level scripts can instantiate
> public entities. Entity names are required to be XML IDs (to permit
> both configuration and serialization), and there is no overwrite (as
> in XML, first-declared stands)Entity names are required to be XML IDs
> (to permit both configuration and serialization), and there is no
> overwrite (as in XML, the first-declared entity stands).
>
> There was to be both read and write permissions, so that certain internal
> entities (such as the security manager) could be declared read-private or
> read-protected and therefore not be accessable outside the WikiEngine. I
> thought about assigning rights to each entity based on some kind of role
> assignment but that seemed overly complicated, and as the goal of this
> exercise was to simplify the API this seemed counterproductive. The whole
> question of how complicated to make the security aspect of the design I
> hadn't really dealt with, as I wasn't dealing with real use cases (or
> corresponding with any of the security people on the team).
>
> The configuration files were XML and meant to cascade, in that we'd
> still permit an XML equivalent of the administrator's jspwiki.properties
> file to override the native configuration.
>
> I don't believe I got that far in implementation, in particular I don't
> remember doing anything about the permission set, but I can dig around
> and find that code if anyone is interested. There'd probably be at least
> the EntityManager and the beginnings of rewriting the WikiEngine bootstrap
> according to it. I do remember that rewriting the bootstrapping was a pain,
> but I think I'd got it working, dunno.
>
> I'd originally hoped to actually write the entirety of the API and code
> changes on my own, but time as always is short and I didn't finish before
> I got pulled off to other things.
>
> Cheers,
>
> Ichiro
>
>
> On Sat, Feb 14, 2015 at 12:45 AM, Juan Pablo Santos Rodríguez <
> juanpablo.san...@gmail.com> wrote:
>
> > Hi,
> >
> > I think the original is in here
> > http://www.ecyrd.com/JSPWiki/wiki/JSPWiki3APIDesignProposal
> >
> > When JSPWiki first entered Apache incubator, one of the goals was to
> have a
> > stable API developers could code against, to ease the development of
> common
> > extensions (plugins, filters, etc). The related code went into [#1].
> >
> > Later on, a second attempt to graduate from incubator was made, less
> > ambitious w.r.t. code (3.0 targetted the API, a new JCR backend, stripes
> > instead os JSPs, etc.). Later on, I did try to bring back the api
> package,
> > but so far is incomplete: I had in mind leaving [#2] without red squares,
> > so we could be able to split the main jar into several smaller modules
> > (i.e.: jspwiki-plugins, jspwiki-filters, etc.) The api package should
> then
> > arise by itself, but right now there is a cycle in that package, so it
> > smells like there is something in there which needs to be rethinked.
> >
> > Also related to this, JSPWIKI-806 [#3] aimed to simplify the WikiEngine,
> by
> > introducing an EntityManager, but the code in there needs to be
> completed.
> >
> > Finally, as most probably finishing this means breaking backwards
> > compatibility, we should change to 2.11 when this is undertaken.
> >
> >
> > hth,
> > juan pablo
> >
> >
> > [#1]: http://svn.apache.org/viewvc/jspwiki/branches/JSPWIKI_3_0_BRANCH/
> > [#2]:
> >
> >
> https://analysis.apache.org/plugins/resource/139725?page=org.sonar.plugins.design.ui.page.DesignPage
> > [#3]: https://issues.apache.org/jira/browse/JSPWIKI-806
> >
> >
> >
> >
> >
> > On Thu, Feb 12, 2015 at 3:32 PM, Harry Metske <harry.met...@gmail.com>
> > wrote:
> >
> > > I dont have it. I think it was originally from Janne and/or Andrew.
> > >
> > > Grtz.
> > > Harry
> > > Op 12 feb. 2015 09:35 schreef "David Vittor" <dvit...@gmail.com>:
> > >
> > > > Does anyone have the documentation that was originally here:
> > > > http://www.jspwiki.org/wiki/JSPWiki3APIDesignProposal
> > > >
> > > > This is referenced from issue JSPWIKI-303.
> > > >
> > > > I think the work was pretty massive, but I'd like to see the design
> to
> > > see
> > > > if it can be done in stages. Does anyone still have it?
> > > >
> > > > Cheers,
> > > > David V
> > > >
> > >
> >
>

Reply via email to