Re: [VOTE] Change the name of the framework.

2022-05-24 Thread Stephen Cameron
Apache Homerun

Home for objects (metamodel abased)
Efficient

On Wed, May 25, 2022 at 9:27 AM Andrew Voumard 
wrote:

> Hi,
>
> What about Apache Chalk, or Chalkboard, or ChalkUI ?
>
> The idea being that with chalk, you can quickly and creatively draw up
> or make up any picture.  So it is with Apache ISIS, that it is quick to
> create and maintain creative UIs.
>
> Thanks
> Andrew
>
> On 25/05/2022 2:29 am, Stefano Cascarini wrote:
> > The word Alma does have a little baggage though. There are quite a few
> > 'Alma' roads in the UK to commemorate the battle.
> >
> > https://en.wikipedia.org/wiki/Battle_of_the_Alma
> >
> > On Tue, 24 May 2022 at 17:23, Brian K  wrote:
> >
> >> I like Apache Alma (#1).  I didn't see the meaning until the phrase
> "Alma
> >> Mater" was mentioned.   Also, I wonder if it would be appropriating to
> say
> >> we had an AA meeting so we can stay DRY (Don't Repeat Yourself) ?
> >>
> >> On Tue, May 24, 2022 at 12:47 AM Dan Haywood <
> d...@haywood-associates.co.uk
> >> wrote:
> >>
> >>> Hi folks,
> >>>
> >>> We've talked a lot about changing the name of the framework, see for
> >>> example ISIS-1303 [1].  So this thread, is, finally, to start the
> process
> >>>
> >>> There have been an awful lot of suggestions; talking informally/offline
> >>> with the other committers, we think there are a few front-runners.  So
> >> the
> >>> vote below lists these, but if none appeal then you can vote for
> >> something
> >>> else.
> >>>
> >>> So, please cast vote your vote for one of the following:
> >>>
> >>> 1. change the framework's name to Apache *Alma*
> >>> 2. change the framework's name to Apache *Causeway*
> >>> 3. change the framework's name to Apache *Kokoro*
> >>> 4 *don't change *the framework's name
> >>> 5. do change the framework's name, but I don't like any of them, give
> me
> >>> some *other choices*!
> >>>
> >>> Background on the first three choices:
> >>>
> >>> *Alma* - technically speaking, is a piece of wood (a little round pole)
> >>> within a stringed instrument such as a violin [2], connecting the
> >>> soundboards etc.  What it means though "heart" or "soul" -think "alma
> >>> mater", so the metaphor is that we are connecting business with
> >> technology,
> >>> or acting as the heart of the business.
> >>>
> >>> *Causeway* - taken from the Giant's Causeway in Northern Ireland, a
> >>> geological feature characterised by hexagonal basalt columns [3].  The
> >>> metaphor here is again "causeway" meaning bridge, but the hexagons also
> >> are
> >>> reminiscent of the hexagonal architecture common to DDD.
> >>>
> >>> *Kokoro* - is a Japanese word meaning something connecting heart, mind,
> >>> body and spirit [4].  It has been trendy in the past to use Japanese
> >> words.
> >>> In case anyone wants a reminder, our current name *Isis* comes from the
> >>> name of the River Thames as it wanders through Oxford  (the original
> >>> authors of the framework all used to live in Oxfordshire).  Isis of
> >> course
> >>> was an Egyptian goddess [5].
> >>>
> >>> For voting, hopefully there will be a clear winner, but it might make
> >> sense
> >>> to rank your preferences.  If there are no clear winners then, well,
> >> we'll
> >>> go round the loop - we don't want to force through a change that no-one
> >> is
> >>> happy with.
> >>>
> >>> Normally votes are at least 72 hours, but we intend to keep this one
> open
> >>> longer than that, at least we've had a few contributions to the thread.
> >>> Only committers to the framework have a formal vote, but it'd be good
> to
> >>> hear the views of as many users of the framework as we can.
> >>>
> >>> Thanks
> >>> Dan  (co-drafted with Johan).
> >>>
> >>>
> >>>
> >>> [1] https://issues.apache.org/jira/browse/ISIS-1303
> >>> [2]
> >>>
> >>>
> >>
> https://4.bp.blogspot.com/-odn0l-W5zow/Wmim3CiDJNI/G8c/ZiJPbHSbhHUEumzpxw1ZYNmIfb8IXnBjQCLcBGAs/s1600/20120919201309.jpg
> >>> [3]
> >>>
> >>>
> >>
> https://en.wikipedia.org/wiki/Giant%27s_Causeway#/media/File:Causeway-code_poet-4.jpg
> >>> [4]
> >>>
> >>>
> >>
> https://qz.com/946438/kokoro-a-japanese-word-connecting-mind-body-and-spirit-is-also-driving-scientific-discovery/
> >>> [5]
> >>>
> >>>
> >>
> https://simple.wikipedia.org/wiki/Isis#:~:text=Isis%20is%20a%20goddess%20in,greatest%20goddesses%20of%20Ancient%20Egypt
> >>> .
> >>>
>
> --
> Thanks
> Andrew
>
>


Re: Action for selected items

2019-11-29 Thread Stephen Cameron
Have you looked at bulk actions?

On Wednesday, November 27, 2019, Sandro Guimarães de Brito <
sgbr...@hotmail.com> wrote:

> Hi all,
>
> I didn’t find any examples on how to present a collection (list of items),
> allow the user to select only some of them, and to execute an Action which
> will be applied only to the selected ones.
>
> Is it possible to be done?
>
> Thanks
>


Re: Semantics enabled ESB / EAI

2019-07-18 Thread Stephen Cameron
I was interested in somewhat similar ideas before. In my case I used the
W3C XForms 'engine' both to create a forms designer and forms renderer via
an XML Schema based metamodel.  That engine creates standard model change
events and may be of interest.  Have a look at Orbeon Forms product which
is open-source.

On a general note I'd be looking at doing something with Apache Camel or an
ESB (maybe you are), to build on an existing user base.



On Thursday, July 18, 2019, Sebastian Samaruga  wrote:

> Hi, wonder if this are the correct lists. I'm a Java developer in the
> quest of finding declarative means for enterprise applications merging and
> integration. In my first attempts I've found Semantic Web models (RDF /
> OWL) as a valuable cornerstone for what is called "ontology matching".
>
> Now I realize I need a "runtime" / container for all those models and
> their "reactive" interactions. Skimming through the docs I'm considering
> Apache Isis as an option for deployment. From my part, now I'm only trying
> to keep updated some fuzzy analysis documents in a GitHub repo:
>
> https://github.com/snxama/scrapbook
>
> The idea is applications (services / data sources) are "glued together"
> homogenizing their contexts data and interactions (roles / IO events) in a
> common event bus driven metamodel with "smart" dispatch of events due the
> "signatures" (state) of client / consumer actors.
>
> If one could feed Isis with such a "dynamic" model, it will be great for
> prototyping, to use it as Web / REST Facade or as an Interaction Protocol
> layer with "dialog" semantics.
>
> I'm currently planning a "metamodel" in terms of layers of (aggregated /
> inferred from lower layers) data, schema and behavior which may map to some
> of the components I've seen so far.
>
> Please allow me to paste two documents (the rest are in the repository).
> They are not finished or completed. The purpose is to read between lines
> and to see if some of this sounds possible.
>
> Best Regards,
> Sebastián.
>
>


Re: Major changes with Isis v2

2019-03-29 Thread Stephen Cameron
I'm not doing much programming these days, but did have a thought today
about name change, for what's it's worth, 'Apache Sisi'. Maybe 'yes yes' in
Spanish?

Major change maybe good time to bump the old name?

On Friday, March 29, 2019, Martin Grigorov  wrote:

> Hi,
>
> On Thu, Mar 28, 2019 at 3:43 PM Rade, Joerg / Kuehne + Nagel / HAM GI-DP <
> joerg.r...@kuehne-nagel.com> wrote:
>
> > Hi Andi,
> >
> > my 2c:
> >
> > The move to Spring (Boot?) will very likely popularize the framework and
> > therefore is the right thing to do.
> >
> > I never really had an issue with JDO and found it's debugging output
> > helpful. I hope Hibernate can keep up with that.
> >
> > CMIIW: Spring's CDI relies on the ComponentScan (CS) at start up time and
> > does not allow for easy changes at runtime.
> >
>
> What kind of changes do you mean ?
> Spring will use component scan only if you tell it to do it. You can
> bootstrap the application from a @Configuration class(es) without using any
> stereotype annotations like @Component, @Service, etc.
>
>
> > But this is probably not an issue for existing applications, nor do most
> > web applications require such a feature.
> >
> > Years ago I saw CS entering a second round, ending with multiple
> instances
> > of Singletons - ROTFL.
> > Admittedly this was as well due to the size of the project (~ 1.5M LOC)
> > and excessive use of applicationContext.xml's - but hey: a basic
> constraint
> > was not enforced.
> >
> > I don't care too much about how the eventing mechanism of the framework
> is
> > implemented (same degree of ignorance as with persistence) as long as the
> > features are available ;-)
> >
> > After all: Apache projects are meritocratic societies - so go ahead and
> > keep up the good work!
> >
> > Thx -j
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Kühne + Nagel (AG & Co.) KG
> > Rechtsform: Kommanditgesellschaft, Bremen HRA 21928, USt-IdNr.: DE
> > 812773878.
> > Geschäftsleitung Kühne + Nagel (AG & Co.) KG: Holger Ketz (Vors. ), Tom
> > Ban, Martin Brinkmann, Matthias Knicky, Nicholas Minde, Johannes
> Trimborn,
> > Lars Wedel, Matthias Weiner.
> > Persönlich haftende Gesellschafterin: Kühne & Nagel A.G., Rechtsform:
> > Aktiengesellschaft nach luxemburgischem Recht, HR-Nr.: B 18745,
> > Geschäftsführendes Verwaltungsratsmitglied: Karl Gernandt.
> > Geschäftsleitung Region Europa: Dr. Hansjörg Rodi (Vors.), Mart Ambur,
> Tom
> > Ban, Dominic Edmonds, Thierry Held, Uwe Hött, Richard Huhn, Jan-Hendrik
> > Köstergarten, Heiko Schuhmacher.
> >
> > Wir arbeiten ausschließlich auf Grundlage der Allgemeinen Deutschen
> > Spediteurbedingungen 2017 (ADSp 2017). Hinweis: Die ADSp 2017 weichen in
> > Ziffer 23 hinsichtlich des Haftungshöchstbetrages für Güterschäden (§ 431
> > HGB) vom Gesetz ab, indem sie die Haftung bei multimodalen Transporten
> > unter Einschluss einer Seebeförderung und bei unbekanntem Schadenort auf
> 2
> > SZR/kg und im Übrigen die Regelhaftung von 8,33 SZR/kg zusätzlich auf
> 1,25
> > Millionen Euro je Schadenfall sowie 2,5 Millionen Euro je
> Schadenereignis,
> > mindestens aber 2 SZR/kg, beschränken. Die ADSp sind auf unserer Webseite
> > als Download erhältlich. Auf Anfrage senden wir Ihnen diese auch gerne
> zu.
> >
>


Re: Concurrency Problem

2018-10-29 Thread Stephen Cameron
https://docs.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html

On Tue, Oct 30, 2018 at 5:25 AM Aída Betzabeth Dávila Sotelo <
aida.dav...@vortech-it.com> wrote:

> Hi!
>
> Is there something in apache isis that I could use or configure for
> concurrency management?
>
> Currently I have a problem, I call a function that returns a consecutive
> number, but if I call them at the same time twice, I get the same number as
> a result.
>
> Can anyone tell me how to solve my problem?
>
> Thanks in Advance.
> Aida Davila
>


Re: We'd like to remove "isis.deploymentType" ... any objections?

2018-10-28 Thread Stephen Cameron
No problem

On Mon, Oct 29, 2018 at 2:47 AM Jayesh Prajapati 
wrote:

> No problem from my side.
>
> @Anisha ... Do you see any problem?
>
> On Sun, Oct 28, 2018, 16:28 Patrick Pliessnig  wrote:
>
> > No problem
> >
> > Am 28.10.2018 um 10:29 schrieb Andi Huber:
> > > Hello everyone!
> > >
> > > Dan and I discussed [1], whether we should remove the config option
> > 'isis.deploymentType'.
> > >
> > > Remember, we are having this, in order for developers to decide,
> whether
> > an Apache Isis App should be deployed in PROTOTYPING mode or not
> > (PRODUCTION).
> > >
> > > In the advent of Docker, we had to introduce support for a system
> > environment variable (PROTOTYPING), that serves the exact same purpose.
> > >
> > > Now, instead of having to support 2 possible ways to configure the
> > deployment type, we would like to discontinue the first one. This
> relieves
> > us from the burden of having to decide, which one has precedence over the
> > other, and also having to document this somewhere. As a positive
> > side-effect, developers are not encouraged to provide different war files
> > for different deployment scenarios.
> > >
> > > So we are asking you, do you have any strong objections regarding this
> > move?
> > >
> > > Cheers Andi!
> > >
> > > [1]
> >
> https://github.com/apache/isis/commit/4ea76029e097e3e8b94f5602ca430dfcd6ee9dac
> >
> >
>


Re: Can't do a 1-1 relation between 2 classes

2018-08-28 Thread Stephen Cameron
Case sensitive file names?

On Wednesday, August 29, 2018, chidii@live.com.ar <
chidii@live.com.ar> wrote:

>
>
> On 2018/08/28 22:14:11, Stephen Cameron 
> wrote:
> > You have to use setters everywhere, that is the way DataNucleus does its
> > magic, at the class level it has enhanced the getters and setters to
> manage
> > persistence.
> >
> > so instead of
> > this.domicilio = domicilio;
> >
> > use
> > this.setDomicilio(domicilio);
> >
> > On Wed, Aug 29, 2018 at 7:44 AM chidii@live.com.ar <
> > chidii@live.com.ar> wrote:
> >
> > > We’re trying to do a 1-1 relation between a class Person and a class
> > > Address but when we make this relation and we prove it on the Web
> Layout
> > > the Addres value stay at “none” no mather what we do even if we first
> > > créate the object Address.
> > >
> > > You can see our Project at:
> > > https://github.com/Practica2-Ifes/MantenimientoPredictivo/
> tree/ClasePersona
> > >
> > > Thanks for the help.
> > >
> > >
> > Hi thenks for replying, we just changed all the setters and getter and
> the constructors (we were using lombok but we didn't know if it is good
> we're newbies at isis) still the domicilio layout don't show when we create
> an object of the type Domicilio. Any others ideas? Thanks again.
>


Re: Can't do a 1-1 relation between 2 classes

2018-08-28 Thread Stephen Cameron
You have to use setters everywhere, that is the way DataNucleus does its
magic, at the class level it has enhanced the getters and setters to manage
persistence.

so instead of
this.domicilio = domicilio;

use
this.setDomicilio(domicilio);

On Wed, Aug 29, 2018 at 7:44 AM chidii@live.com.ar <
chidii@live.com.ar> wrote:

> We’re trying to do a 1-1 relation between a class Person and a class
> Address but when we make this relation and we prove it on the Web Layout
> the Addres value stay at “none” no mather what we do even if we first
> créate the object Address.
>
> You can see our Project at:
> https://github.com/Practica2-Ifes/MantenimientoPredictivo/tree/ClasePersona
>
> Thanks for the help.
>
>


Re: dependent class not found.

2018-07-15 Thread Stephen Cameron
It is referenced in homepage view model too.

On Sunday, July 15, 2018, Dan Haywood  wrote:

> Hi Gerrie,
>
> The application is bootstrapped using an AppManifest - DomainAppAppManifest
> in this case [1].   This references DomainAppApplicationModule which in
> turn [2] references SimpleModule.  The set of modules that are loaded is
> transitive, similar to Maven.  Each module is used to locate domain
> services and entities from which the Isis metamodel is built.
>
> When you say "deploy to tomcat", are you doing this through the IDE, or are
> you doing a build using mvn and then taking the resultant .war file and
> deploying that?  If it works in the latter then we know that the code isn't
> wrong, just a stale computed classpath with the IDE.  If even mvn fails,
> then there's a problem in the code itself.
>
> If you wish, create an example on github to demonstrate the problem, and
> describe how to reproduce in the README
>
> Thx
> Dan
>
>
> https://github.com/apache/isis/blob/master/example/application/simpleapp/
> application/src/main/java/domainapp/application/
> manifest/DomainAppAppManifest.java#L31
> https://github.com/apache/isis/blob/master/example/application/simpleapp/
> application/src/main/java/domainapp/application/
> DomainAppApplicationModule.java#L37
>
>
> On Sun, 15 Jul 2018 at 08:30 Gerrie Myburgh
>  wrote:
>
> > Hi,
> > I took simple app, removed simple module and added another module. When I
> > run the app in the IDE it run's fine but the moment I deploy to tomcat I
> > get a :
> > java.lang.ClassNotFoundException: domainapp.modules.simple.SimpleModule
> >
> > What is frustrating is that I cannot find any reference to SimpleModule
> > anywhere in my code.
> > Here is the error message in the catalina log:
> > 1) Error in custom provider,
> > org.apache.isis.core.commons.factory.InstanceCreationClassException:
> Class
> > 'class domainapp.application.manifest.DomainAppAppManifest'found , but
> is
> > missing a dependent class: domainapp/modules/simple/SimpleModule  at
> > org.apache.isis.core.runtime.runner.IsisInjectModule.
> provideIsisSessionFactory(IsisInjectModule.java:109)
> > at
> > org.apache.isis.core.runtime.runner.IsisInjectModule.
> provideIsisSessionFactory(IsisInjectModule.java:109)
> > while locating
> > org.apache.isis.core.runtime.system.session.IsisSessionFactoryfor
> field
> > at
> > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.
> isisSessionFactory(IsisWicketApplication.java:155)
> > while locating domainapp.webapp.DomainApplication
> > And first exception stackstace
> > Caused by: java.lang.ClassNotFoundException:
> > domainapp.modules.simple.SimpleModule at
> > org.apache.catalina.loader.WebappClassLoaderBase.loadClass(
> WebappClassLoaderBase.java:1308)
> > at
> > org.apache.catalina.loader.WebappClassLoaderBase.loadClass(
> WebappClassLoaderBase.java:1136)
> > ... 81 more
> > Has anyone had a similar problem and how did they find the reference to
> > SimpleModule in order to remove it.
> > Thanks
> > Gerrie
> >
> > --
> DISCLAIMER: This e-mail is from Haywood Associates Ltd (Registered Number
> 3525455) and it and its attachments may be confidential and are intended
> solely for the use of the individual to whom it is addressed.  Any
> unauthorised use or dissemination of this communication is strictly
> prohibited. Any information provided to Haywood Associates Ltd shall be
> retained and used in accordance with our Privacy Statement at
> http://www.haywood-associates.co.uk/privacy.  If you have received this
> communication in error, please immediately notify the sender by return
> e-mail message and delete all copies of the original communication.
>


Re: Faster development turnaround times

2018-05-30 Thread Stephen Cameron
Interesting idea Andi, cheers

On Wednesday, May 30, 2018, Andi Huber  wrote:

> Hi François,
>
> I'm using a different approach called Skinny-WAR deployment:
>
> In my IDE I've prepared a payara (others like tomcat should work as well)
> with shared libraries, such that my actual WAR files are usually less then
> 2MB in size.
> So the entire Apache Isis ecosystem's libraries are not included with the
> WAR file and the servlet-engine is up and running during the entire
> development session, no need to restart.
>
> That way, when I change a java file in the IDE, a redeployment happens
> automatically and does not take longer than 4-6 sec on my machine.
>
> We are working hard on the coming 2.0.0-M1 pre-release. While code is
> almost ready for production, documentation still lags behind. But we will
> (sooner or later) include documentation on how to setup such a Skinny-WAR
> deployment.
>
> Cheers, Andi!
>
> On 2018/05/29 07:39:35, Francois Dumas 
> wrote:
> > Hi all,
> >
> > Having discovered Apache Isis last year and having been very impressed
> by it,  I'm now attempting to use it for my next work project.
> >
> > On my last Java project, I got a JRebel license which means I am now
> quite spoiled and have become rather intolerant to the "code/stop
> server/build/deploy/start server" cycle.  ;-)
> >
> > I'm trying the different methods explained in the Developers' Guide [1]
> to decrease dev turnaround times using the SimpleApp archetype but I have
> not succeeded so far.
> >
> [...]
> >
> > Thanks!
> > François
> > [1] https://isis.apache.org/guides/dg/dg.html
> > [2]  intellij_advanced> https://isis.apache.org/guides/dg/dg.html#_setting_up_
> jrebel
> > [3] https://github.com/danhaywood/isis-jrebel-plugin/issues/3
> > [4] https://isis.apache.org/guides/dg/dg.html#__dg_ide_
> intellij_advanced_gradle-compile-enhance
> > [5] https://isis.apache.org/guides/dg/dg.html#__dg_ide_
> intellij_advanced_dcevm
>
>


Re: menu file problem

2018-05-27 Thread Stephen Cameron
I just confimed that changing au.com.scds.chats.reports  to
au.com.scds.chats.dom.reports  does make the 'Reports' item appear on the
screen as it has actions to display under it of course.

But I still don't see why this is necessary as my Module class is in under
package au.com.scds.chats of which au.com.scds.chats.dom and
au.com.scds.chats.reports are subpackages.


On Sun, May 27, 2018 at 4:25 PM, Stephen Cameron  wrote:

> Hi,
>
> I have a problem with my menubars.layout.xml file, not all the domain
> services appear on the menu.
>
> I have a single package with structure
>
> au.com.scds.chats
> au.com.scds.chats.dom
> au.com.scds.chats.fixture
> au.com.scds.chats.reports
>
> where there is a single Module file
> au.com.scds.chats.ChatsModule
>
> All the NatureOfService.VIEW_MENU_ONLY domain services under
> au.com.scds.chats.dom  appear on the menu but all those under
> au.com.scds.chats.reports don't appear.
>
> If I generate a new menubars file using the Type=Fallback parameter, all
> the services in au.com.scds.chats.reports  are  included into the menu, but
> again aren't displayed, not even in the unreferencedActions="true" section.
>
> Seems like a bug, or am i missing something? Previously the reports where
> in a different module/project and I'm refactoring it all into one.
>
> Cheers
>
>
>
>
>
>
>
>


menu file problem

2018-05-26 Thread Stephen Cameron
Hi,

I have a problem with my menubars.layout.xml file, not all the domain
services appear on the menu.

I have a single package with structure

au.com.scds.chats
au.com.scds.chats.dom
au.com.scds.chats.fixture
au.com.scds.chats.reports

where there is a single Module file
au.com.scds.chats.ChatsModule

All the NatureOfService.VIEW_MENU_ONLY domain services under
au.com.scds.chats.dom  appear on the menu but all those under
au.com.scds.chats.reports don't appear.

If I generate a new menubars file using the Type=Fallback parameter, all
the services in au.com.scds.chats.reports  are  included into the menu, but
again aren't displayed, not even in the unreferencedActions="true" section.

Seems like a bug, or am i missing something? Previously the reports where
in a different module/project and I'm refactoring it all into one.

Cheers


Re: build error

2018-04-06 Thread Stephen Cameron
Thanks guys, that is the issue.



On Fri, Apr 6, 2018 at 10:52 PM, Johan Doornenbal 
wrote:

> Oops. My answer was redundant. I missed Dan's.
> Best regards,
> Johan Doornenbal+31 6 227 666 28
>
>
>
>
> On Fri, Apr 6, 2018 2:50 PM, Johan Doornenbal jdoornen...@incode.org
> wrote:
> Hi Steve,
> I think your super class needs a public no-arg constructor as well
> Best regards,
> Johan Doornenbal+31 6 227 666 28
>
>
>
>
> On Fri, Apr 6, 2018 2:48 PM, Dan Haywood d...@haywood-associates.co.uk
> wrote:
> Hi Steve,
>
>
>
>
> the DN enhancer will generate a default constructor if there is none
>
> defined explicitly, and so I think that your ChatsParticipant is actually:
>
>
>
>
> ChatsParticipant has only
>
>
>
>
> public class ChatsParticipant extends Attendee {
>
>
>
>
>  public ChatsParticipant() {
>
>  super();
>
>  }
>
>  public ChatsParticipant(ChatsPerson person) {
>
>  super(person);
>
>  }
>
>  ...
>
> }
>
>
>
>
>
>
>
> The error you have is:
>
>
>
>
> java.lang.IllegalAccessError: tried to access method
>
> au.com.scds.eventschedule.base.impl.Attendee.()V from class
>
> au.com.scds.chats.dom.participant.ChatsParticipant
>
>
>
>
> .In this the Attendee.()V is a reference to your private constructor
>
> of Attendee.
>
>
>
>
> The fix will be to change the visibility of Attendee's constructor to
>
> protected or public.
>
>
>
>
> HTH
>
> Dan
>
>
>
>
> [1] http://www.datanucleus.org/products/accessplatform/jdo/enhancer.html
>
>
>
>
>
>
>
> On Fri, 6 Apr 2018 at 13:41 Stephen Cameron 
>
> wrote:
>
>
>
>
> I am refactoring an existing project so it is based on a simpler more
>>
>
> generic project.
>>
>
>
>>
> The simple generic project is all good, but when I look to create a new
>>
>
> version of the old project, based on the new, I get an validation error
>>
>
> (see below). It seems to be an issue with constructors, ChatsParticipant
>>
>
> extends Attendee
>>
>
>
>>
> Attendee has constructors
>>
>
>
>>
> private Attendee() {
>>
>
> }
>>
>
>
>>
> public Attendee(Person person) {
>>
>
> this.setPerson(person);
>>
>
> }
>>
>
>
>>
> ChatsParticipant has only
>>
>
>
>>
> public ChatsParticipant(ChatsPerson person) {
>>
>
> super(person);
>>
>
> }
>>
>
>
>>
> where ChatsPerson extends Person
>>
>
>
>>
> Any thoughts?
>>
>
>
>>
>
>>
> ***
>>
>
>
>>
> [INFO]
>>
>
> 
>>
>
> [INFO] BUILD FAILURE
>>
>
> [INFO]
>>
>
> 
>>
>
> [INFO] Total time: 28.723 s
>>
>
> [INFO] Finished at: 2018-04-06T22:21:14+10:00
>>
>
> [INFO] Final Memory: 74M/592M
>>
>
> [INFO]
>>
>
> 
>>
>
> [ERROR] Failed to execute goal
>>
>
> org.apache.isis.tool:isis-maven-plugin:1.16.2:validate (default) on
>> project
>>
>
> chats-dom: Execution default of goal
>>
>
> org.apache.isis.tool:isis-maven-plugin:1.16.2:validate failed: An API
>>
>
> incompatibility was encountered while executing
>>
>
> org.apache.isis.tool:isis-maven-plugin:1.16.2:validate:
>>
>
> java.lang.IllegalAccessError: tried to access method
>>
>
> au.com.scds.eventschedule.base.impl.Attendee.()V from class
>>
>
> au.com.scds.chats.dom.participant.ChatsParticipant
>>
>
> [ERROR] -
>>
>
> [ERROR] realm = plugin>org.apache.isis.tool:isis-maven-plugin:1.16.2
>>
>
> [ERROR] strategy =
>>
>
> org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
>>
>
> [ERROR] urls[0] =
>>
>
>
>>
>
>> file:/D:/maven/repository/org/apache/isis/tool/isis-maven-pl
> ugin/1.16.2/isis-maven-plugin-1.16.2.jar
>
> [ERROR] urls[1] = file:/D:/temp3/chats/dom/target/classes/
>>
>
> [ERROR] urls[2] =
>>
>
>
>>
>
>> file:/D:/maven/repository/org/apache/isis/core/isis-core-app
> lib/1.16.2/isis-core-applib-1.16.2.jar
>
> [ERROR] urls[3] =
>>
>
>
>>
>

build error

2018-04-06 Thread Stephen Cameron
I am refactoring an existing project so it is based on a simpler more
generic project.

The simple generic project is all good, but when I look to create a new
version of the old project, based on the new, I get an validation error
(see below). It seems to be an issue with constructors, ChatsParticipant
extends Attendee

Attendee has constructors

private Attendee() {
}

public Attendee(Person person) {
this.setPerson(person);
}

ChatsParticipant has only

public ChatsParticipant(ChatsPerson person) {
super(person);
}

where ChatsPerson extends Person

Any thoughts?


***

[INFO]

[INFO] BUILD FAILURE
[INFO]

[INFO] Total time: 28.723 s
[INFO] Finished at: 2018-04-06T22:21:14+10:00
[INFO] Final Memory: 74M/592M
[INFO]

[ERROR] Failed to execute goal
org.apache.isis.tool:isis-maven-plugin:1.16.2:validate (default) on project
chats-dom: Execution default of goal
org.apache.isis.tool:isis-maven-plugin:1.16.2:validate failed: An API
incompatibility was encountered while executing
org.apache.isis.tool:isis-maven-plugin:1.16.2:validate:
java.lang.IllegalAccessError: tried to access method
au.com.scds.eventschedule.base.impl.Attendee.()V from class
au.com.scds.chats.dom.participant.ChatsParticipant
[ERROR] -
[ERROR] realm =plugin>org.apache.isis.tool:isis-maven-plugin:1.16.2
[ERROR] strategy =
org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] =
file:/D:/maven/repository/org/apache/isis/tool/isis-maven-plugin/1.16.2/isis-maven-plugin-1.16.2.jar
[ERROR] urls[1] = file:/D:/temp3/chats/dom/target/classes/
[ERROR] urls[2] =
file:/D:/maven/repository/org/apache/isis/core/isis-core-applib/1.16.2/isis-core-applib-1.16.2.jar
[ERROR] urls[3] =
file:/D:/maven/repository/org/apache/geronimo/specs/geronimo-atinject_1.0_spec/1.0/geronimo-atinject_1.0_spec-1.0.jar
[ERROR] urls[4] =
file:/D:/maven/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar
[ERROR] urls[5] =
file:/D:/maven/repository/org/apache/geronimo/specs/geronimo-jta_1.1_spec/1.1.1/geronimo-jta_1.1_spec-1.1.1.jar
[ERROR] urls[6] =
file:/D:/maven/repository/org/apache/geronimo/specs/geronimo-jcdi_1.0_spec/1.0/geronimo-jcdi_1.0_spec-1.0.jar
[ERROR] urls[7] =
file:/D:/maven/repository/org/jboss/spec/javax/ws/rs/jboss-jaxrs-api_2.0_spec/1.0.0.Final/jboss-jaxrs-api_2.0_spec-1.0.0.Final.jar
[ERROR] urls[8] =
file:/D:/maven/repository/javax/jdo/jdo-api/3.1/jdo-api-3.1.jar
[ERROR] urls[9] =
file:/D:/maven/repository/javax/transaction/transaction-api/1.1/transaction-api-1.1.jar
[ERROR] urls[10] =
file:/D:/maven/repository/org/datanucleus/datanucleus-api-jdo/4.1.1/datanucleus-api-jdo-4.1.1.jar
[ERROR] urls[11] =
file:/D:/maven/repository/org/datanucleus/datanucleus-jdo-query/4.0.5/datanucleus-jdo-query-4.0.5.jar
[ERROR] urls[12] =
file:/D:/maven/repository/org/reflections/reflections/0.9.10/reflections-0.9.10.jar
[ERROR] urls[13] =
file:/D:/maven/repository/com/google/code/findbugs/annotations/2.0.1/annotations-2.0.1.jar
[ERROR] urls[14] =
file:/D:/maven/repository/org/axonframework/axon-core/2.4.4/axon-core-2.4.4.jar
[ERROR] urls[15] =
file:/D:/maven/repository/com/lmax/disruptor/3.2.0/disruptor-3.2.0.jar
[ERROR] urls[16] =
file:/D:/maven/repository/cglib/cglib-nodep/2.2.2/cglib-nodep-2.2.2.jar
[ERROR] urls[17] =
file:/D:/maven/repository/joda-time/joda-time/2.9.4/joda-time-2.9.4.jar
[ERROR] urls[18] =
file:/D:/maven/repository/commons-io/commons-io/2.4/commons-io-2.4.jar
[ERROR] urls[19] =
file:/D:/maven/repository/com/thoughtworks/xstream/xstream/1.4.9/xstream-1.4.9.jar
[ERROR] urls[20] = file:/D:/maven/repository/xmlpull/xmlpull/
1.1.3.1/xmlpull-1.1.3.1.jar
[ERROR] urls[21] =
file:/D:/maven/repository/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar
[ERROR] urls[22] =
file:/D:/maven/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
[ERROR] urls[23] =
file:/D:/maven/repository/org/datanucleus/datanucleus-core/4.1.7/datanucleus-core-4.1.7.jar
[ERROR] urls[24] =
file:/D:/maven/repository/org/isisaddons/wicket/fullcalendar2/isis-wicket-fullcalendar2-cpt/1.16.0/isis-wicket-fullcalendar2-cpt-1.16.0.jar
[ERROR] urls[25] =
file:/D:/maven/repository/net/ftlines/wicket-fullcalendar/wicket-fullcalendar-core/2.2.0/wicket-fullcalendar-core-2.2.0.jar
[ERROR] urls[26] =
file:/D:/maven/repository/org/codehaus/jackson/jackson-core-asl/1.7.5/jackson-core-asl-1.7.5.jar
[ERROR] urls[27] =
file:/D:/maven/repository/org/codehaus/jackson/jackson-mapper-asl/1.7.5/jackson-mapper-asl-1.7.5.jar
[ERROR] urls[28] =
file:/D:/maven/repository/org/apache/wicket/wicket-core/7.9.0/wicket-core-7.9.0.jar
[ERROR] urls[29] =
file:/D:/maven/repository/org/apache/commons/comm

Re: Fixtures location

2018-04-03 Thread Stephen Cameron
Yes, it does need a Module to include that package

On Tue, Apr 3, 2018 at 5:05 PM, Stephen Cameron 
wrote:

> Hi,
>
> I've a small project based on SimpleApp archetype.
>
> I want to present a list of fixtures in the Prototype menu, but am having
> trouble reconfiguring.
>
> I change the default fixture specification provider class as follows:
>
> /**
>  * Specifies where to find fixtures, and other settings.
>  */
> @DomainService(
> nature = NatureOfService.DOMAIN
> )
> public class DomainAppFixtureScriptsSpecificationProvider implements
> FixtureScriptsSpecificationProvider {
> public FixtureScriptsSpecification getSpecification() {
> return FixtureScriptsSpecification
> 
> .builder(/*DomainAppFixtureScriptsSpecificationProvider.class*/
> "au.com.scds.eventschedule.fixture")
> .with(FixtureScripts.MultipleExecutionStrategy.EXECUTE)
> //.withRunScriptDefault(DomainAppDemo.class)
> .withRunScriptDropDown(FixtureScriptsSpecification.
> DropDownPolicy.CHOICES)
> .withRecreate(/*DomainAppDemo.class*/
> CreateScheduledEvents.class)
> .build();
> }
>
> }
>
> Then when I go to the menu item Prototyping > Run Fixture Script its
> disabled and a message telling me there are no fixture scripts under the
> package " au.com.scds.eventschedule.fixture" is visible. This is
> incorrect there are 4 scripts.
>
> Maybe it needs a Module to have included that package too?
>
>
>
>
>


Fixtures location

2018-04-03 Thread Stephen Cameron
Hi,

I've a small project based on SimpleApp archetype.

I want to present a list of fixtures in the Prototype menu, but am having
trouble reconfiguring.

I change the default fixture specification provider class as follows:

/**
 * Specifies where to find fixtures, and other settings.
 */
@DomainService(
nature = NatureOfService.DOMAIN
)
public class DomainAppFixtureScriptsSpecificationProvider implements
FixtureScriptsSpecificationProvider {
public FixtureScriptsSpecification getSpecification() {
return FixtureScriptsSpecification

.builder(/*DomainAppFixtureScriptsSpecificationProvider.class*/
"au.com.scds.eventschedule.fixture")
.with(FixtureScripts.MultipleExecutionStrategy.EXECUTE)
//.withRunScriptDefault(DomainAppDemo.class)

.withRunScriptDropDown(FixtureScriptsSpecification.DropDownPolicy.CHOICES)
.withRecreate(/*DomainAppDemo.class*/
CreateScheduledEvents.class)
.build();
}

}

Then when I go to the menu item Prototyping > Run Fixture Script its
disabled and a message telling me there are no fixture scripts under the
package " au.com.scds.eventschedule.fixture" is visible. This is incorrect
there are 4 scripts.

Maybe it needs a Module to have included that package too?


Re: [ANNOUNCE] New Committer - Johan Doornenbal

2018-03-25 Thread Stephen Cameron
My congratulation Johan

On Sun, Mar 25, 2018 at 9:34 PM, Dan Haywood 
wrote:

> I'm delighted to announce that Johan Doornenbal has been voted in as a
> committer on Apache Isis, and also as a member of the Isis PMC.  The first
> gives Johan the right to commit changes directly to the Apache Isis
> codebase, the second gives him the right to be involved in future votes.
>
> Johan has an abundance of real-world experience in using the framework for
> delivering business solutions.  He's been working with Jeroen and I for
> several years now on Estatio [1], and is now responsible for specifying and
> implementing the great proportion of the new functionality of that app.
>
> For Apache Isis he contributed an extended version of the PetClinic
> tutorial [2], and in terms of code has provided numerous contributions to
> the companion Incode Platform, most notably for the Excel module [4] and on
> a integration with mailchimp.  Informally he's provided great insight and
> feedback on new features for the framework, the most recent example being
> the implementation of checkboxes for parented collections [4].
>
> I've really enjoyed working with Johan over the last few years, and I'm
> very pleased he's joining as a committer and onto the PMC; he'll be a great
> addition to our team.  Please join me in welcoming him to our happy band!
>
> Dan Haywood
> Apache Isis Committer
>
> [1] http://github.com/estatio/estatio
> [2]
> http://isis.apache.org/versions/1.13.2/guides/tg.
> html#3.-pet-clinic-(extended)
> [3] http://platform.incode.org/modules/lib/excel/lib-excel.html
> [4]
> http://isis.apache.org/guides/rgant/rgant.html#_rgant-Action_associateWith
>


Re: Using database Views

2018-02-15 Thread Stephen Cameron
The SQL is not liked by HSQLDB, works fine with MySQL as you say, what
happens if you just remove 'AS'?

I've not used mine against  HSQLDB .



On Thu, Feb 15, 2018 at 10:49 PM, Smitha N  wrote:

> Hello Steve,
>
> Thanks for the input. I tried creating viewModel in similar fashion.
>
> But I face issues when I try to run the integration tests for this class.
>
> I get issues creating the view with the below mentioned errors:
>
>
> Error thrown executing CREATE VIEW `usersforportal` AS SELECT `users`.id AS
> id,`users`.helenaam AS helenaam,`users`.email AS email FROM `users` WHERE
> `users`.actief = 1 AND `users`.bedrijf_id = 1 AND `users`.email is not null
> : unexpected token:  required: AS
> java.sql.SQLSyntaxErrorException: unexpected token:  required: AS
> at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
> at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
> at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
> at org.hsqldb.jdbc.JDBCStatement.execute(Unknown Source)
>
>
> When I try the same syntax on MYSQL workbench , it works fine and there are
> no errors.
>
> Somehow these issues occur while running the integration tests with
> in-memory database.
>
> Any help is much appreciated.
>
> Regards
> Smitha
>
> On Wed, Feb 14, 2018 at 10:17 PM, Stephen Cameron <
> steve.cameron...@gmail.com> wrote:
>
> > Hi,
> >
> > Using a DataNucleus capability rather than an Apache Isis one.
> >
> > http://www.datanucleus.org/products/accessplatform_3_1/rdbms/views.html
> >
> > You can use annotations in your class instead of a jdo config file, I
> > copied examples from Estatio to get started.
> >
> > But here is one I've created:
> > https://github.com/Stephen-Cameron-Data-Services/isis-
> > chats/blob/master/reports/src/main/java/au/com/scds/chats/
> dom/report/view/
> > ActivityAttendanceSummary.java
> >
> > The class can be seen by making your view class a ViewModel.
> >
> > I don't think you can use persistable views, may be wrong on that.
> >
> > I've had a problem with views, that DN tries to create them before the
> > underlying tables are created, never resolved that but I should.
> >
> > If I were to start afresh I'd not use them unless absolutely necessary
> for
> > performance, instead use queries on my domain objects and write code,
> then
> > you have easier refactoring.
> >
> > Steve
> >
> >
> >
> > On Thu, Feb 15, 2018 at 2:26 AM, Smitha N 
> wrote:
> >
> > > Hi,
> > >
> > > In our application, there is a need to use database views and I was
> > > wondering what is the best way to implement it using the framework.
> > >
> > > How do we map the database view fields to the Object? Can we use
> > ViewModels
> > > with persistanceCapability and refer to the view?
> > >
> > > If above scenario is valid, how do we make such scenarios work for
> > > integration testing?
> > > If not please advise on how to use database views.
> > >
> > > Regards
> > > Smitha
> > >
> >
>


Re: Using database Views

2018-02-14 Thread Stephen Cameron
Hi,

Using a DataNucleus capability rather than an Apache Isis one.

http://www.datanucleus.org/products/accessplatform_3_1/rdbms/views.html

You can use annotations in your class instead of a jdo config file, I
copied examples from Estatio to get started.

But here is one I've created:
https://github.com/Stephen-Cameron-Data-Services/isis-chats/blob/master/reports/src/main/java/au/com/scds/chats/dom/report/view/ActivityAttendanceSummary.java

The class can be seen by making your view class a ViewModel.

I don't think you can use persistable views, may be wrong on that.

I've had a problem with views, that DN tries to create them before the
underlying tables are created, never resolved that but I should.

If I were to start afresh I'd not use them unless absolutely necessary for
performance, instead use queries on my domain objects and write code, then
you have easier refactoring.

Steve



On Thu, Feb 15, 2018 at 2:26 AM, Smitha N  wrote:

> Hi,
>
> In our application, there is a need to use database views and I was
> wondering what is the best way to implement it using the framework.
>
> How do we map the database view fields to the Object? Can we use ViewModels
> with persistanceCapability and refer to the view?
>
> If above scenario is valid, how do we make such scenarios work for
> integration testing?
> If not please advise on how to use database views.
>
> Regards
> Smitha
>


Re: Interface support

2018-01-19 Thread Stephen Cameron
Seems so:
http://www.datanucleus.org/products/accessplatform_3_1/jdo/jdoql_interfaces.html

On Fri, Jan 19, 2018 at 10:57 PM, Dan Haywood 
wrote:

> Hi Steve,
>
> Do we know that this is valid in DN, that @PersistenceCapable can be
> applied to interfaces?
> If so, then I guess we need to fix the metamodel validator to allow this
> use-case.
>
> Thx
> Dan
>
>
> On Fri, 19 Jan 2018 at 11:27 Stephen Cameron 
> wrote:
>
> > Hi,
> >
> > I'm trying to make use of Java interfaces, seems they are supported by
> > DataNucleus, but may not by Apache Isis from the follow build error
> > message?
> >
> > [ERROR] Failed to execute goal
> > org.apache.isis.tool:isis-maven-plugin:1.16.0:validate (default) on
> project
> > event-schedule-module-base: Execution default of goal
> > org.apache.isis.tool:isis-maven-plugin:1.16.0:validate failed:
> Non-enhanced
> > @PersistenceCapable classes found, will abort.  The classes in error are:
> > [ERROR]
> > [ERROR] * au.com.scds.eventschedule.base.EventAttendance
> > [ERROR]
> > [ERROR] Did the DataNucleus enhancer run correctly?
> >
> >
> > Where EventAttendance is an interface
> >
> > @PersistenceCapable(identityType=IdentityType.DATASTORE)
> > public interface EventAttendance {
> >
> > @Persistent
> > public Event getEvent();
> > @Persistent
> > public Attendee getAttendee();
> > }
> >
> > Not a critical issue, I'm just experimenting.
> >
> > Steve
> >
>


Interface support

2018-01-19 Thread Stephen Cameron
Hi,

I'm trying to make use of Java interfaces, seems they are supported by
DataNucleus, but may not by Apache Isis from the follow build error message?

[ERROR] Failed to execute goal
org.apache.isis.tool:isis-maven-plugin:1.16.0:validate (default) on project
event-schedule-module-base: Execution default of goal
org.apache.isis.tool:isis-maven-plugin:1.16.0:validate failed: Non-enhanced
@PersistenceCapable classes found, will abort.  The classes in error are:
[ERROR]
[ERROR] * au.com.scds.eventschedule.base.EventAttendance
[ERROR]
[ERROR] Did the DataNucleus enhancer run correctly?


Where EventAttendance is an interface

@PersistenceCapable(identityType=IdentityType.DATASTORE)
public interface EventAttendance {

@Persistent
public Event getEvent();
@Persistent
public Attendee getAttendee();
}

Not a critical issue, I'm just experimenting.

Steve


Re: Issue in moving to 1.16.0

2018-01-10 Thread Stephen Cameron
Oops, me doing something silly again, have to do mvn clean and then mvn
install in Eclipse to get a valid war

On Thu, Jan 11, 2018 at 3:41 PM, Dan Haywood 
wrote:

> This looks like you have a pre-1.16.0 version of AppManifestAbstract on
> your classpath.  It's possible that the IDE and Tomcat load JARs in a
> different order, so you're getting "jar hell".
>
> If you inspect the dependency tree using m2e in Eclipse, do you see any
> conflicts on the isis-core-applib?  If so, use  to make sure
> the correct one is loaded.
>
> As an aside: this is though a mistake on my part.  It looks like 1.16.0 has
> broken binary compatibility of AppManifestAbstract.  The pre-1.16.0 release
> had a constructor that took an AppManifest.Builder, whereas 1.16.0 takes
> only an AppManifestAbstract.BuilderAbstract.  So apologies about that.
>
> HTH
> Dan
>
> On Thu, 11 Jan 2018 at 04:27 Stephen Cameron 
> wrote:
>
> > Hi,
> >
> > I can run an App in Eclipse OK, but when I try to install it on a test
> > server in Tomcat i get an error perventing the app starting
> >
> > Caused by: java.lang.NoSuchMethodError:
> >
> > org.apache.isis.applib.AppManifestAbstract.(
> Lorg/apache/isis/applib/AppManifestAbstract$BuilderAbstract;)V
> > at
> >
> > org.apache.isis.applib.AppManifestAbstract2.(
> AppManifestAbstract2.java:36)
> > at
> >
> > cooperation.application.manifest.CooperationAppAppManifest.(
> CooperationAppAppManifest.java:58)
> >
> > the relevant CooperationAppAppManifest.java is:
> >
> > package cooperation.application.manifest;
> >
> > import org.apache.isis.applib.AppManifestAbstract2;
> >
> > import com.google.common.collect.ImmutableMap;
> >
> > import
> > au.org.cooperation.modules.base.dom.CooperationBaseModuleDomSubmodule;
> > import cooperation.application.CooperationAppApplicationModule;
> > import
> >
> > cooperation.application.fixture.CooperationAppApplicationModul
> eFixtureSubmodule;
> > import
> >
> > cooperation.application.services.CooperationAppApplicationModul
> eServicesSubmodule;
> >
> >
> > /**
> >  * Bootstrap the application.
> >  */
> > public class CooperationAppAppManifest extends AppManifestAbstract2 {
> >
> > public static final Builder BUILDER = Builder.forModule(new
> > CooperationAppApplicationModule())
> > .withAdditionalModules(
> > CooperationBaseModuleDomSubmodule.class,
> > CooperationAppApplicationModul
> eServicesSubmodule.class,
> > CooperationAppApplicationModul
> eFixtureSubmodule.class,
> > org.isisaddons.module.security.SecurityModule.class
> > )
> >
> > .withConfigurationPropertiesFile(CooperationAppAppManifest.class,
> > "isis.properties",
> > "authentication_shiro.properties",
> > "persistor_datanucleus.properties",
> > "viewer_restfulobjects.properties",
> > "viewer_wicket.properties"
> > ).withAuthMechanism("shiro")
> > .withAdditionalServices(
> >
> >
> > org.isisaddons.module.security.dom.password.
> PasswordEncryptionServiceUsingJBcrypt.class,
> >
> >
> > org.isisaddons.module.security.dom.permission.
> PermissionsEvaluationServiceAllowBeatsVeto.class
> > ).withConfigurationProperties(ImmutableMap.of(
> > "isis.reflector.facets.include",
> >
> >
> > "org.isisaddons.module.security.facets.TenantedAuthorizationFacetFact
> ory"));
> >
> > public CooperationAppAppManifest() {
> > super(BUILDER); //*line 58*
> > }
> >
> > }
> >
>


Issue in moving to 1.16.0

2018-01-10 Thread Stephen Cameron
Hi,

I can run an App in Eclipse OK, but when I try to install it on a test
server in Tomcat i get an error perventing the app starting

Caused by: java.lang.NoSuchMethodError:
org.apache.isis.applib.AppManifestAbstract.(Lorg/apache/isis/applib/AppManifestAbstract$BuilderAbstract;)V
at
org.apache.isis.applib.AppManifestAbstract2.(AppManifestAbstract2.java:36)
at
cooperation.application.manifest.CooperationAppAppManifest.(CooperationAppAppManifest.java:58)

the relevant CooperationAppAppManifest.java is:

package cooperation.application.manifest;

import org.apache.isis.applib.AppManifestAbstract2;

import com.google.common.collect.ImmutableMap;

import
au.org.cooperation.modules.base.dom.CooperationBaseModuleDomSubmodule;
import cooperation.application.CooperationAppApplicationModule;
import
cooperation.application.fixture.CooperationAppApplicationModuleFixtureSubmodule;
import
cooperation.application.services.CooperationAppApplicationModuleServicesSubmodule;


/**
 * Bootstrap the application.
 */
public class CooperationAppAppManifest extends AppManifestAbstract2 {

public static final Builder BUILDER = Builder.forModule(new
CooperationAppApplicationModule())
.withAdditionalModules(
CooperationBaseModuleDomSubmodule.class,
CooperationAppApplicationModuleServicesSubmodule.class,
CooperationAppApplicationModuleFixtureSubmodule.class,
org.isisaddons.module.security.SecurityModule.class
)

.withConfigurationPropertiesFile(CooperationAppAppManifest.class,
"isis.properties",
"authentication_shiro.properties",
"persistor_datanucleus.properties",
"viewer_restfulobjects.properties",
"viewer_wicket.properties"
).withAuthMechanism("shiro")
.withAdditionalServices(

org.isisaddons.module.security.dom.password.PasswordEncryptionServiceUsingJBcrypt.class,

org.isisaddons.module.security.dom.permission.PermissionsEvaluationServiceAllowBeatsVeto.class
).withConfigurationProperties(ImmutableMap.of(
"isis.reflector.facets.include",

"org.isisaddons.module.security.facets.TenantedAuthorizationFacetFactory"));

public CooperationAppAppManifest() {
super(BUILDER); //*line 58*
}

}


Re: [ANN] Apache Isis version 1.16.0 Released

2018-01-09 Thread Stephen Cameron
Thanks Dan,

On Tue, Jan 9, 2018 at 10:36 AM, Dan Haywood 
wrote:

> The Apache Isis team is pleased to announce the release of Apache Isis
> v1.16.0.
>
> New features in this release include:
> * modules and simplified bootstrapping (of the application, integration
> tests and BDD specs)
> * improvements to fixture scripts
> * dynamic menu layouts (menubars.layout.xml)
> * support for explicitly-defined actions rather than implicit (ie use
> @Action, no need for @Programmatic)
>
> Full release notes are available on the Apache Isis website at [1].
> Please also read the migration notes [2].
>
> You can access this release directly from the Maven central repo [3].
> Alternatively, download the release and build it from source [4].
>
> Enjoy!
>
> --The Apache Isis team
>
> [1]
> http://isis.apache.org/release-notes/release-notes.
> html#_release-notes_1.16.0
> [2]
> http://isis.apache.org/migration-notes/migration-
> notes.html#_migration-notes_1.15.0-to-1.16.0
> [3] http://search.maven.org
> [4] http://isis.apache.org/downloads.html
>


Re: clearing bookmarks from code?

2017-12-23 Thread Stephen Cameron
Yes I came to same conclusions, thanks

On Sat, Dec 23, 2017 at 8:11 PM, Dan Haywood 
wrote:

> Hi Steve,
>
> You are right, I don't think anything is exposed, but it should be easy
> enough to implement.
>
> The BookmarkService probably isn't the right place for this functionality
> though; that service is generic whereas functionality for clearing out the
> Wicket bookmarks obviously is specific only to the Wicket viewer.  I
> imagine that the breadcrumbs also need clearing.
>
> I've raised a ticket [1] for this, should be able to put it into 1.16.0 I
> think.
>
> Cheers, and Happy Christmas too!
>
> Dan
>
>
> [1] https://issues.apache.org/jira/browse/ISIS-1801
>
> On Fri, 22 Dec 2017 at 21:15 Stephen Cameron 
> wrote:
>
> > Hi,
> >
> > I am wondering if there is a way to clear all bookmarks from inside an
> > action? The BookmarkService doesn't provide for it.
> >
> > I'm experimenting with a contextual approach, where a basic user has
> > limited menu options that all relate to a current organisation, and I
> allow
> > them to switch organisations (contexts, from a list of Organisations they
> > have been given access to).
> >
> > I think this can work if in the process of switching organisations all
> > current bookmarks are cleared from the 'Switch Organisation' menu option.
> >
> > Happy Christmas
> > Steve
> >
>


clearing bookmarks from code?

2017-12-22 Thread Stephen Cameron
Hi,

I am wondering if there is a way to clear all bookmarks from inside an
action? The BookmarkService doesn't provide for it.

I'm experimenting with a contextual approach, where a basic user has
limited menu options that all relate to a current organisation, and I allow
them to switch organisations (contexts, from a list of Organisations they
have been given access to).

I think this can work if in the process of switching organisations all
current bookmarks are cleared from the 'Switch Organisation' menu option.

Happy Christmas
Steve


Re: Tenancy restriction - entity that relates to more thanoneOtherentity.

2017-12-12 Thread Stephen Cameron
Hi Nikhil, Good to hear, thanks for the feedback.
I think that the Apache Isis security module is great.


On Tue, Dec 12, 2017 at 8:27 PM, Patrick Pliessnig 
wrote:

> :-)
>
> Am 12.12.2017 8:39 vorm. schrieb "Nikhil Dhamapurkar" <
> nikhil.dhamapur...@healthengine.com.au>:
>
> > Hi Patrick, Steve
> >
> > Thank for your responses, I have made the changes similar to what you
> guys
> > have suggested.
> > The context relating to desk / Org  was helpful.
> >
> > I have flattened the many to many relation entity  (practicePractitioner)
> > which relates a practice and a patient, the admin or a super user will
> link
> > a practitioner with a practice in this entity this way not exposing all
> > Practitioners to every user and this entity can have their own version of
> > Practitioner Name or Shortname as well.
> >
> > Also, to relate the Desk / Context instead of extending the
> > ApplicationUser class to save the current login information, I am saving
> > the UserRole and Practice its Organization in a separate table
> > (RoleMapping). I read the role mapping in the ApplicationTenancyEvaluator
> > and Hide or disable the entity based on this information
> >
> > Completed most of the changes yesterday and I can see I have the control
> > as needed for the entity based on these changes thank you for your
> > suggestions.
> >
> > Regards
> > Nikhil
> >
> > From: Patrick Pliessnig
> > Sent: 07 December 2017 11:42
> > To: users@isis.apache.org
> > Subject: Re: Tenancy restriction - entity that relates to more
> > thanoneOtherentity.
> >
> > I wonder whether a metaphor for context could do a better job?
> >
> > Say, 'desk' instead of context. Then the user would have a currentDesk on
> > login
> >
> > To model the desk an interesting question might be, who organizes the
> desk?
> > Is it the practice for more standardization or rather the practitioner
> for
> > more individualization?
> >
> >
> > Am 06.12.2017 11:35 nachm. schrieb "Stephen Cameron" <
> > steve.cameron...@gmail.com>:
> >
> > > Oops, ignore that comment in the Person about tenancy paths, they
> aren't
> > > needed (yet).
> > >
> > > On Thu, Dec 7, 2017 at 9:33 AM, Stephen Cameron <
> > > steve.cameron...@gmail.com>
> > > wrote:
> > >
> > > > Hi Nikil,
> > > >
> > > > The context switching that Patrick is speaking of is what I was
> > > suggesting
> > > > before, but to make this work I think you have to extend the default
> > > > application user and record the current context on your extended
> > > > ApplicationUser. I've just done a test on this for my cooperation
> > > project.
> > > > In my situatioin there is a many-to-many relationship between
> > > Organisation
> > > > and Person, ( I have an OrganisationPerson entity for the join, so
> can
> > > set
> > > > a status property for each, either active or inactive)
> > > >
> > > > So I have a Person that references a current Organisation (context)
> > > >
> > > > @PersistenceCapable(identityType = IdentityType.DATASTORE, schema =
> > > > "cooperation")
> > > > @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
> > > > @DomainObject()
> > > > public class Person extends ApplicationUser {
> > > >
> > > > /*
> > > >  * Allow a default Organisation to be set on the current user.
> > > >  *
> > > >  * Organisations have a list of linked users/Persons, but one
> user
> > > > might link to
> > > >  * multiple Organisations, but we want to restrict the visibility
> > to
> > > > one Organisation at a time.
> > > >  *
> > > >  * We restrict access to all data usinf the security module
> tenancy
> > > > path, but this requires
> > > >  * a current Organisation, that is set here a login, by the user
> > > > having only one link to an
> > > >  * Organisation, or, the user selecting one specifically. In the
> > > later
> > > > case the currently operating
> > > >  * one will be saved from session to session.
> > > >  *
> > > >  */
> > > > @Column(allowsNull="true", name="organisation_id")
> > > > @Getter

Re: Overriding default Repositories

2017-12-10 Thread Stephen Cameron
Hi Dan,

I cannot make the connection between what you have described and my need
for someone else to be able to add a few extra properties to a persistable
class.

New actions/methods can be added by to a class using mixins but how can
someone add properties?

I can use Java inheritance and the support of that in Datanucleus, but then
my question is how to get the new subclass (created by someone else) to be
created by an injected repository instead of my original class?

Maybe the module mechanism means use the last added implementation of a
repository interface in the module hierarchy?

Cheers


On Mon, Dec 11, 2017 at 2:34 AM, Dan Haywood 
wrote:

> Hi Steve,
>
> We've been working on some stuff regarding the app manifest recently that I
> think will be relevant and useful for you.  (We've done this in Estatio
> originally, but I've been pushing down into the framework for the benefit
> of all).
>
> The main new concept is Module, which is now an actual applib-defined
> interface along with a no-op default implementation, ModuleAbstract.  A
> Module can declare its immediate dependencies, and from this we calculate
> the full set of transitive dependencies.  A Module might be one-to-one with
> Maven modules (in which case the declared dependencies will mirror the
> compile-time dependencies within the respective Maven pom.xml files) or
> alternatively a Module might be "logical", with several defined within a
> single src/mina/java Maven module (ie Maven is merely the compilation
> unit).  (Aside: this latter design is much less boilerplate, and is
> probably the way in which we see Java 9 modules being used within Isis once
> we get there).
>
> Along with the new Module and ModuleAbstract, I've also subclassed
> AppManifest and AppManifestAbstract, namely AppManifest2 and
> AppManifestAbstract2.  The latter has its own Builder.  The main idea of
> these variants of AppManifest is that they are bootstrapped with a single
> Module, but can then customise if necessary.
>
> With respect to your requirement, yes, you would still have a custom
> AppManifest for each customisation, but the customisation would basically
> be delivered as a Module which is then defined as an additional dependency
> of your original AppManifest.
>
> For example, something like:
>
> package com.mycompany.myapp.standard;
> public class TopLevelModule extends ModuleAbstract {
> public Set getDependencies() { return Sets.newLinkedHashSet(new
> CustomerModule(), new OrderModule(), new ProductModule());
> }
>
> public class StandardAppManifest extends AppManifestAbstract2 {
> public static class Bulder BUILDER =  Builder.for(new TopLevelModule);
> public StandardAppManifest(BUILDER);
> }
>
> Then, suppose your customisations for "client A" go into
> CustomisationsModuleForClientA
>
> package com.mycompany.myapp.clientA;
> public class CustomisationsModuleForClientA [ ... }
>
> You would then do:
>
> public class AppManifestForClientA extends AppManifestAbstract2 {
> public static class Bulder BUILDER =
> StandardAppManifest.BUILDER.withAdditionalDependency(new
> CustomisationsForClientA());
> public AppManifestForClientA(BUILDER);
> }
>
> How does this sound?
>
> Cheers
> Dan
>
> On Sun, 10 Dec 2017 at 02:10 Stephen Cameron 
> wrote:
>
> > Hi,
> >
> > I want to provide an Apache Isis application and I expect others to
> extend
> > the default entities, I think that the way to acheive this is for
> > 'repository' domain services to be overridden, the new versions will
> create
> > the extended custom entities  instead of the default ones.
> >
> > In the security module this is done by creating an implementation of
> > 'ApplicationUserFactory' that has a method 'newApplicationUser' where you
> > return your custom ApplicationUser. I can study this to see Apache Isis
> > knows to use the altenative factory implementation instead of the default
> > one.
> >
> > However, I am wondering if the is different way to do this that I can
> use?
> > I'm thinking of how the app manifest can be used for this purpose. So the
> > person wishing to extend creates an new app manifest and changes
> > isis.properties for the framework to pick this class for startup. This
> then
> > hase the effect of injecting alternative repository (or 'factory')
> classes.
> > All such factory classes will have to implement one or other interface
> > obviously.
> >
> > Thanks
> > Steve
> >
>


Overriding default Repositories

2017-12-09 Thread Stephen Cameron
Hi,

I want to provide an Apache Isis application and I expect others to extend
the default entities, I think that the way to acheive this is for
'repository' domain services to be overridden, the new versions will create
the extended custom entities  instead of the default ones.

In the security module this is done by creating an implementation of
'ApplicationUserFactory' that has a method 'newApplicationUser' where you
return your custom ApplicationUser. I can study this to see Apache Isis
knows to use the altenative factory implementation instead of the default
one.

However, I am wondering if the is different way to do this that I can use?
I'm thinking of how the app manifest can be used for this purpose. So the
person wishing to extend creates an new app manifest and changes
isis.properties for the framework to pick this class for startup. This then
hase the effect of injecting alternative repository (or 'factory') classes.
All such factory classes will have to implement one or other interface
obviously.

Thanks
Steve


Re: Tenancy restriction - entity that relates to more than oneOtherentity.

2017-12-06 Thread Stephen Cameron
Oops, ignore that comment in the Person about tenancy paths, they aren't
needed (yet).

On Thu, Dec 7, 2017 at 9:33 AM, Stephen Cameron 
wrote:

> Hi Nikil,
>
> The context switching that Patrick is speaking of is what I was suggesting
> before, but to make this work I think you have to extend the default
> application user and record the current context on your extended
> ApplicationUser. I've just done a test on this for my cooperation project.
> In my situatioin there is a many-to-many relationship between Organisation
> and Person, ( I have an OrganisationPerson entity for the join, so can set
> a status property for each, either active or inactive)
>
> So I have a Person that references a current Organisation (context)
>
> @PersistenceCapable(identityType = IdentityType.DATASTORE, schema =
> "cooperation")
> @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
> @DomainObject()
> public class Person extends ApplicationUser {
>
> /*
>  * Allow a default Organisation to be set on the current user.
>  *
>  * Organisations have a list of linked users/Persons, but one user
> might link to
>  * multiple Organisations, but we want to restrict the visibility to
> one Organisation at a time.
>  *
>  * We restrict access to all data usinf the security module tenancy
> path, but this requires
>  * a current Organisation, that is set here a login, by the user
> having only one link to an
>  * Organisation, or, the user selecting one specifically. In the later
> case the currently operating
>  * one will be saved from session to session.
>  *
>  */
> @Column(allowsNull="true", name="organisation_id")
> @Getter
> @Setter(value=AccessLevel.PACKAGE)
> private Organisation organisation;
>
> ...
>
> }
>
> Person is used by the security module instead of default ApplicationUser
> by having a domain service as follows:
>
> @DomainService(nature=NatureOfService.DOMAIN)
> public class MyApplicationUserFactory implements ApplicationUserFactory {
>
> @Override
> public ApplicationUser newApplicationUser() {
> final ApplicationUser object = new Person();
> serviceRegistry.injectServicesInto(object);
> return object;
> }
>
> @javax.inject.Inject
> RepositoryService repositoryService;
> @javax.inject.Inject
> ServiceRegistry2 serviceRegistry;
> }
>
> Then to control what Organisation a person can see at any one time I have:
>
> @DomainService(nature = NatureOfService.DOMAIN)
> public class TenancyPathEvaluatorForCooperation implements
> ApplicationTenancyEvaluator {
> @Override
> public boolean handles(final Class cls) {
> return Organisation.class == cls;
> }
>
> @Override
> public String disables(Object arg0, ApplicationUser arg1) {
> return null;
> }
>
> @Override
> public String hides(Object arg0, ApplicationUser arg1) {
> if (((Organisation) arg0).equals(((Person)
> arg1).getOrganisation()))
> return null;
> else
> return "Organisation access prevented";
> }
> }
>
>
> Note: This has yet to be extended to handle all classes that are linked to
> an Organisation!
>
> One thing I  have not done is to allow a user to switch their Organisation
> context, this is simply done by presenting a list of Organisations based on
> the list of OrganisationPerson entities that reference their Person entity,
> which is what the security module returns as the logged in user. I think
> this is how this should be accessed:
>
> Person user = (Person) userRepo.findByUsernameCached(
> users.getUser().getName());
>
> @Inject
> ApplicationUserRepository userRepo;
> @Inject
> UserService users;
>
> Steve
>
>
>
> On Thu, Dec 7, 2017 at 2:33 AM, Patrick Pliessnig 
> wrote:
>
>> Hi Nikhil
>>
>> This note is not about tenancy but about domain model.
>>
>> It seems to me that your practitioners (users) switch contexts according
>> to their current needs. Such a context could define the practice which is
>> used to filter patients or it could define a location out in the outback if
>> it is a flying doctor. In the case of a location the context defines a
>> collection of local practices to filter patients.
>>
>> If you model contexts as domain entities you could use them to filter the
>> patients the way you want. The practitioner could create his own contexts
>> and everytime he logs in he activates the context he needs or the last
>> activated context is used. If he then wants to

Re: Tenancy restriction - entity that relates to more than oneOtherentity.

2017-12-06 Thread Stephen Cameron
il Dhamapurkar
>> Sent: 01 December 2017 11:27
>> To: users@isis.apache.org
>> Subject: RE: Tenancy restriction - entity that relates to more than
>> oneOtherentity.
>>
>> Hi Steve, Patrick
>>
>> As Steve suggested I had a table where I had Practice to Role mapping
>> instead of user as one of the use case is to see all Patients belonging to
>> a role / Org which if we switch user and Practice we wont see all patients
>> belonging to an org but my approach can display or restrict based on one
>> role if the user belongs to more than one role hence its not entirely
>> useful as well.
>>
>> Based on the input I am planning to make below changes :
>>
>> As Patrick has suggested I will be creating an entity  Patient (
>> PatientInternalDetails, PracticePatients) - internal details as things
>> like Medical records etc.
>> PracticePatients will have  additional fields which are Ok to be
>> displayed to user with permissions, and we have taken a call that entity
>> Patient is Ok to be visible only to admin users ( say “/”).
>>
>> Also will be exploring : https://isis.apache.org/guides
>> /rgcms/rgcms.html#_rgcms_classes_super_AbstractViewModel
>> If I can make changes in view instead of Domain Model.
>>
>> Regards
>> Nikhil
>>
>> From: Stephen Cameron
>> Sent: 01 December 2017 03:37
>> To: users@isis.apache.org
>> Subject: Re: Tenancy restriction - entity that relates to more than one
>> Otherentity.
>>
>> Or, maybe just switching the role and setting a practice value after
>> logging in, then you have to switch the role back to the simple 'login'
>> one
>> on logout, so that the next time they login they'll see that simple
>> practice selection menu again.
>>
>> On Fri, Dec 1, 2017 at 7:49 AM, Stephen Cameron <
>> steve.cameron...@gmail.com>
>> wrote:
>>
>> I think that making use of a custom ApplicationUser (explained in the
>>> security module notes) with a property practice may be necessary.
>>>
>>> Then Practioners would either log in as a specific user depending on what
>>> practice they are working at, or you might be able to make a switch
>>> happen
>>> behind the scenes, such that they always login as one application user,
>>> with only 1 menu option allowing them to choose a practice and the system
>>> switches their application user to a practice specific generated user
>>> with
>>> a role giving full menu access.
>>>
>>>
>>> On Fri, Dec 1, 2017 at 1:58 AM, Patrick Pliessnig >> >
>>> wrote:
>>>
>>> Hi Nikhil
>>>>
>>>> I guess this ultimately relates to the question how a practice knows
>>>> about
>>>> its patients and the related access path.
>>>>
>>>> With tenancy the answer is: the patients are the ones with access rights
>>>> for the practice.
>>>>
>>>> Maybe you could use a practice attribute 'practicePatients'. Then the
>>>> answer is: the patients are the ones that use the services of the
>>>> practice.
>>>> (Many to many).
>>>>
>>>> Patrick
>>>>
>>>>
>>>> Am 30.11.2017 12:58 nachm. schrieb "Nikhil Dhamapurkar"
>>>> >>> healthengine.com.au>:
>>>>
>>>> Hi,
>>>>
>>>> I am working on supporting Multi Tenancy in Apache ISIS I have tried
>>>> both
>>>> 1) ApplicationTenancyEvaluator and 2) HasAtPath interfaces to control
>>>> what
>>>> the  logged in user can see or execute.
>>>>
>>>> I have been able to make them work to an acceptable state but I face
>>>> issue
>>>> when I come across collections that are part of the entity I am
>>>> evaluating.
>>>>
>>>> My Domain model has Patient  / Practitioner entity both these entity can
>>>> be
>>>> associated with Different Practices at the same time.
>>>>
>>>>
>>>> Example :PractitionerA belongs to PracticeA and PracticeB both,
>>>> logged
>>>> in User has “Role” to Access PracticeA.
>>>>
>>>> Issue with ApplicationTenancyEvaluator : since Practitioner and Practice
>>>> have many to many relation even if the role has access to only one
>>>> practice
>>>> I’ll end up displaying PracticeB on wicket viewer which I want to
>>>> prevent,
>>>> Is it possible ?
>>>>
>>>>
>>>> Issue with HasAtPath :
>>>>
>>>> I am creating  Path programmatically with pattern as :
>>>> ORG/org/PRACTICE//  pattern which models a tree, then I
>>>> can
>>>> control user access to more than one Patient data if user at path is
>>>> /ORG/org Or restrict  access to one practice
>>>> /ORG/org/PRACTICE/practiceA
>>>> If the Patient Entity is associated with more than one practice My logic
>>>> will Break as I would not know what should be the context for the for
>>>> ORG/org/PRACTICE/
>>>>
>>>> Does anyone have a better solution to tackle tenancy for a Collection
>>>> within an entity?
>>>>
>>>> Regards
>>>> Nikhil
>>>>
>>>>
>>>
>>
>>
>


Re: Maven mixins in eclipse

2017-12-05 Thread Stephen Cameron
I see the same but have not tried hard to fix, I just manually reset the
code level to 1.8.
I need to reset the "JRE System Library" on the build path before that.
I don't use mixins as yet.

On Wed, Dec 6, 2017 at 5:29 PM, Martin Hesse  wrote:

> Hi,
>
> I recently tried to bootstrap a new project using the 1.15.1 simple
> archetype. After importing the project into eclipse I found that the
> compiler settings (source/target level) in the parent project are not
> detected by the compiler plugin in the child projects, even though they do
> appear in the respective "effective POM" views. In the library dependencies
> of the child projects in eclipse I see the code level set to 1.5, which of
> course can't work.
>
> Then I tried to locate the definition of the compiler plugin and it seems
> to come with one of the maven mixins (standard?).
>
> Currently it seems I can't get the project to run as I used to back when
> relying on archetype versions that didn't use the mixins.
>
> Anyone experienced this before or knows a solution for this?
>
> On a side note: I would rather continue using eclipse and consider
> materializing the mixins directly into the POM, or in other words replace
> the mixin dependency with the mixin contents (if that makes sense?).
>
> Thanks and regards
> Martin
>


Re: Tenancy restriction - entity that relates to more than one Other entity.

2017-11-30 Thread Stephen Cameron
Or, maybe just switching the role and setting a practice value after
logging in, then you have to switch the role back to the simple 'login' one
on logout, so that the next time they login they'll see that simple
practice selection menu again.

On Fri, Dec 1, 2017 at 7:49 AM, Stephen Cameron 
wrote:

> I think that making use of a custom ApplicationUser (explained in the
> security module notes) with a property practice may be necessary.
>
> Then Practioners would either log in as a specific user depending on what
> practice they are working at, or you might be able to make a switch happen
> behind the scenes, such that they always login as one application user,
> with only 1 menu option allowing them to choose a practice and the system
> switches their application user to a practice specific generated user with
> a role giving full menu access.
>
>
> On Fri, Dec 1, 2017 at 1:58 AM, Patrick Pliessnig 
> wrote:
>
>> Hi Nikhil
>>
>> I guess this ultimately relates to the question how a practice knows about
>> its patients and the related access path.
>>
>> With tenancy the answer is: the patients are the ones with access rights
>> for the practice.
>>
>> Maybe you could use a practice attribute 'practicePatients'. Then the
>> answer is: the patients are the ones that use the services of the
>> practice.
>> (Many to many).
>>
>> Patrick
>>
>>
>> Am 30.11.2017 12:58 nachm. schrieb "Nikhil Dhamapurkar"
>> > healthengine.com.au>:
>>
>> Hi,
>>
>> I am working on supporting Multi Tenancy in Apache ISIS I have tried both
>> 1) ApplicationTenancyEvaluator and 2) HasAtPath interfaces to control what
>> the  logged in user can see or execute.
>>
>> I have been able to make them work to an acceptable state but I face issue
>> when I come across collections that are part of the entity I am
>> evaluating.
>>
>> My Domain model has Patient  / Practitioner entity both these entity can
>> be
>> associated with Different Practices at the same time.
>>
>>
>> Example :PractitionerA belongs to PracticeA and PracticeB both, logged
>> in User has “Role” to Access PracticeA.
>>
>> Issue with ApplicationTenancyEvaluator : since Practitioner and Practice
>> have many to many relation even if the role has access to only one
>> practice
>> I’ll end up displaying PracticeB on wicket viewer which I want to prevent,
>> Is it possible ?
>>
>>
>> Issue with HasAtPath :
>>
>> I am creating  Path programmatically with pattern as :
>> ORG/org/PRACTICE//  pattern which models a tree, then I can
>> control user access to more than one Patient data if user at path is
>> /ORG/org Or restrict  access to one practice  /ORG/org/PRACTICE/practiceA
>> If the Patient Entity is associated with more than one practice My logic
>> will Break as I would not know what should be the context for the for
>> ORG/org/PRACTICE/
>>
>> Does anyone have a better solution to tackle tenancy for a Collection
>> within an entity?
>>
>> Regards
>> Nikhil
>>
>
>


Re: Tenancy restriction - entity that relates to more than one Other entity.

2017-11-30 Thread Stephen Cameron
I think that making use of a custom ApplicationUser (explained in the
security module notes) with a property practice may be necessary.

Then Practioners would either log in as a specific user depending on what
practice they are working at, or you might be able to make a switch happen
behind the scenes, such that they always login as one application user,
with only 1 menu option allowing them to choose a practice and the system
switches their application user to a practice specific generated user with
a role giving full menu access.

On Fri, Dec 1, 2017 at 1:58 AM, Patrick Pliessnig 
wrote:

> Hi Nikhil
>
> I guess this ultimately relates to the question how a practice knows about
> its patients and the related access path.
>
> With tenancy the answer is: the patients are the ones with access rights
> for the practice.
>
> Maybe you could use a practice attribute 'practicePatients'. Then the
> answer is: the patients are the ones that use the services of the practice.
> (Many to many).
>
> Patrick
>
>
> Am 30.11.2017 12:58 nachm. schrieb "Nikhil Dhamapurkar"
>  healthengine.com.au>:
>
> Hi,
>
> I am working on supporting Multi Tenancy in Apache ISIS I have tried both
> 1) ApplicationTenancyEvaluator and 2) HasAtPath interfaces to control what
> the  logged in user can see or execute.
>
> I have been able to make them work to an acceptable state but I face issue
> when I come across collections that are part of the entity I am evaluating.
>
> My Domain model has Patient  / Practitioner entity both these entity can be
> associated with Different Practices at the same time.
>
>
> Example :PractitionerA belongs to PracticeA and PracticeB both, logged
> in User has “Role” to Access PracticeA.
>
> Issue with ApplicationTenancyEvaluator : since Practitioner and Practice
> have many to many relation even if the role has access to only one practice
> I’ll end up displaying PracticeB on wicket viewer which I want to prevent,
> Is it possible ?
>
>
> Issue with HasAtPath :
>
> I am creating  Path programmatically with pattern as :
> ORG/org/PRACTICE//  pattern which models a tree, then I can
> control user access to more than one Patient data if user at path is
> /ORG/org Or restrict  access to one practice  /ORG/org/PRACTICE/practiceA
> If the Patient Entity is associated with more than one practice My logic
> will Break as I would not know what should be the context for the for
> ORG/org/PRACTICE/
>
> Does anyone have a better solution to tackle tenancy for a Collection
> within an entity?
>
> Regards
> Nikhil
>


Re: Accessing confidential data - 2 step authentication support

2017-11-30 Thread Stephen Cameron
Not that I understand much of this, but its interesting.
https://en.wikipedia.org/wiki/MUMPS

I think the issue is that in a large hospital people can be accessing many
complex individual health records at one time, but queries across records
aren't that important.

On Thu, Nov 30, 2017 at 5:06 PM, Nikhil Dhamapurkar <
nikhil.dhamapur...@healthengine.com.au> wrote:

> Thanks for your responses, Currently speed is not of much concern but its
> worth noting the elastic search example for future.
>
> Steve Good to know you work on Apache ISIS will check on Shiro
> authentication, will get in touch if we are looking for help in Apache ISIS.
>
> Regards
> Nikhil
>
> From: Rade, Joerg / Kuehne + Nagel / Ham GI-DP
> Sent: 29 November 2017 18:08
> To: users@isis.apache.org
> Subject: AW: Accessing confidential data - 2 step authentication support
>
> Hi down there!
>
> Erik de Hair has implemented an isis-module using Elastic Search [1].
>
> Probably worth a look if speed matters.
>
> HTH -j
> [1] https://github.com/erikdehair/isis-module-elasticsearch
>
> -Ursprüngliche Nachricht-
> Von: Stephen Cameron [mailto:steve.cameron...@gmail.com]
> Gesendet: Mittwoch, 29. November 2017 12:37
> An: users@isis.apache.org
> Betreff: Re: Accessing confidential data - 2 step authentication support
>
> Hi Nikil,
>
> Good to know someone else is using Apache Isis in Australia, if you need
> another resource I am in Hobart.
>
> I started to look a two factor authentication via Apache Shiro, maybe an
> external authentication server/service/product already has the capacity to
> have separate kinds of authentication for the same user and its just a case
> of in Apache Isis forcing a reauthentication (using the two level protocol
> with the external service if the user attempts to access a medical record ?
>
> I think its difficult to store and update very complex medical records in
> a relational database model. Hospital systems make use of specialised
> databases i read, for performance reasons. So you are looking at a second
> system to do that well, but that is not to say that Apache Isis cannot have
> functionality added.
>
> Just my two bits.
>
> Steve Cameron
>
> On Wed, Nov 29, 2017 at 10:13 PM, Nikhil Dhamapurkar < nikhil.dhamapurkar@
> healthengine.com.au> wrote:
>
> > Hi Everyone,
> >
> > We have a use case where an entity Patient has data with 2 parts.  1)
> > non confidential details ( like name, last name)  &  2) some
> > confidential data associated with it (like medical records).
> >
> > We want to enable a 2 factor Authentication when retrieving the
> > confidential data when calling ISIS from the REST based swagger API
> > has someone came across a similar use case ?
> >
> > I would like to know if it will be advisable to have apache ISIS own
> > the Model and have both the details confidential and non confidential
> > as part of the entity and do validation via ISIS or will be better To
> > keep the confidential data in an entity/data store outside of apache
> > ISIS ?
> >
> > Application requests → level 1 Authentication → (Gets  non
> > confidential
> > data) → based on the data and encrypted key → sends request to another
> > source to get confidential data from it.
> >
> > OR
> >
> > Application Requests → with level 1 and Level 2 access Identifiers→
> > apache ISIS Identifies it has both tokens → returns the confidential
> > data as well in the response.
> >
> > Regards
> > Nikhil
> >
> >
>
> Kühne + Nagel (AG & Co.) KG
> Rechtsform: Kommanditgesellschaft, Bremen HRA 21928, USt-IdNr.: DE
> 812773878.
> Geschäftsleitung Kühne + Nagel (AG & Co.) KG: Dr. Hansjörg Rodi (Vors. ),
> Martin Brinkmann, Holger Ketz, Jan-Hendrik Köstergarten, Nicholas Minde,
> Michael Nebel, Lars Wedel, Matthias Weiner.
> Persönlich haftende Gesellschafterin: Kühne & Nagel A.G., Rechtsform:
> Aktiengesellschaft nach luxemburgischem Recht, HR-Nr.: B 18745,
> Geschäftsführendes Verwaltungsratsmitglied: Karl Gernandt.
> Geschäftsleitung Region Zentral- und Osteuropa: Dr. Hansjörg Rodi (Vors.),
> Thierry Held, Uwe Hött, Richard Huhn, Holger Ketz, Jan-Hendrik
> Köstergarten, Jan Kunze, Michael Nebel, Guillaume Sauzedde, Mustafa Sener.
>
> Wir arbeiten ausschließlich auf Grundlage der Allgemeinen Deutschen
> Spediteurbedingungen 2017 (ADSp 2017). Hinweis: Die ADSp 2017 weichen in
> Ziffer 23 hinsichtlich des Haftungshöchstbetrages für Güterschäden (§ 431
> HGB) vom Gesetz ab, indem sie die Haftung bei multimodalen Transporten
> unter Einschluss einer Seebeförderung und bei unbekanntem Schadenort auf 2
> SZR/kg und im Übrigen die Regelhaftung von 8,33 SZR/kg zusätzlich auf 1,25
> Millionen Euro je Schadenfall sowie 2,5 Millionen Euro je Schadenereignis,
> mindestens aber 2 SZR/kg, beschränken. Die ADSp sind auf unserer Webseite
> als Download erhältlich. Auf Anfrage senden wir Ihnen diese auch gerne zu.
>
>


Re: Accessing confidential data - 2 step authentication support

2017-11-29 Thread Stephen Cameron
Hi Nikil,

Good to know someone else is using Apache Isis in Australia, if you need
another resource I am in Hobart.

I started to look a two factor authentication via Apache Shiro, maybe an
external authentication server/service/product already has the capacity to
have separate kinds of authentication for the same user and its just a case
of in Apache Isis forcing a reauthentication (using the two level protocol
with the external service if the user attempts to access a medical record ?

I think its difficult to store and update very complex medical records in a
relational database model. Hospital systems make use of specialised
databases i read, for performance reasons. So you are looking at a second
system to do that well, but that is not to say that Apache Isis cannot have
functionality added.

Just my two bits.

Steve Cameron

On Wed, Nov 29, 2017 at 10:13 PM, Nikhil Dhamapurkar <
nikhil.dhamapur...@healthengine.com.au> wrote:

> Hi Everyone,
>
> We have a use case where an entity Patient has data with 2 parts.  1) non
> confidential details ( like name, last name)  &  2) some confidential data
> associated with it (like medical records).
>
> We want to enable a 2 factor Authentication when retrieving the
> confidential data when calling ISIS from the REST based swagger API has
> someone came across a similar use case ?
>
> I would like to know if it will be advisable to have apache ISIS own the
> Model and have both the details confidential and non confidential as part
> of the entity and do validation via ISIS or will be better
> To keep the confidential data in an entity/data store outside of apache
> ISIS ?
>
> Application requests → level 1 Authentication → (Gets  non confidential
> data) → based on the data and encrypted key → sends request to another
> source to get confidential data from it.
>
> OR
>
> Application Requests → with level 1 and Level 2 access Identifiers→ apache
> ISIS Identifies it has both tokens → returns the confidential data as well
> in the response.
>
> Regards
> Nikhil
>
>


Re: Customize UI behavior

2017-11-26 Thread Stephen Cameron
I am not a expert by any means, but I do encourage you to stick with Apache
Isis if *you* think the fit is good!

Others will have more ideas but
have you looked at Estatio? That would have to be the 'gold standard'
project. https://github.com/estatio/estatio

I have an application here:
https://github.com/Stephen-Cameron-Data-Services/isis-chats
I've just moved that to Apache Isis 1.15.1 (and am starting to 'retrofit'
it with more tests this week).

I've started another open-source project here:
https://github.com/Stephen-Cameron-Data-Services/isis-agri
(I'll move that to the 'obatchi' project when I get some spare time, its a
much more complex domain model than isis-chats).

My approach is somewhat based on Domain Driven Design (Eric Evan's), but
starting from a conceptual data-model. I can explain that more if your
interested to follow it.

Maybe do a small learning/demo project in Github, one that you can share
code with easily here on the mailing list? My Chats project is for a
non-profit so easy to share, your project maybe not so easy.








On Mon, Nov 27, 2017 at 4:35 PM, SE Song  wrote:

> Hi Stephen Cameron,
>
> Do you have any sample application that use Custom View, which is similar
> to Sandas GRC? I don't know how to start from scratch, I am a noob in Java
> EE world.
>
> Thank!
>
> On Mon, Nov 27, 2017 at 11:53 AM, Stephen Cameron <
> steve.cameron...@gmail.com> wrote:
>
> > You could develop a custom viewer, it has been done:
> >
> >
> > https://github.com/apache/isis/blob/master/adocs/documentation/src/main/
> > asciidoc/pages/powered-by/_powered-by_gesconsultor-grc.adoc
> >
> > On Mon, Nov 27, 2017 at 2:47 PM, SE Song  wrote:
> >
> > > Thank for your advice,
> > >
> > > First, I though that integrating Isis with ZK is an easy task, but I
> > spend
> > > many days without any task done. Now I don't know what should I do
> next,
> > > last option is using restful object, but I hate writing UI (Javascript
> +
> > > HTML + CSS), it's a lot of time consuming.
> > >
> > > I have started develop without any knowledge base even Java EE(JDO,
> CDI,
> > > ORM,...), So I decide to learn Apache Wicket and Java EE, before I
> start
> > > Apache Isis again.
> > >
> > > On Thu, Nov 23, 2017 at 5:14 PM, Stephen Cameron <
> > > steve.cameron...@gmail.com
> > > > wrote:
> > >
> > > > Regarding ZK 'Presentation Layer' seems this is the ability to use ZK
> > > > components in a template context, eg JSP, Struts. That is doing
> things
> > > at a
> > > > lower level, but interesting to ask if such a lower level exists in
> > > Apache
> > > > Isis.
> > > >
> > > > I see there is a Freemaker templates module in the Incode Platform.
> > I've
> > > no
> > > > experience with it but maybe it's worth checking out?
> > > >
> > > > I've a perceived need that is related, essentially a presentation
> layer
> > > on
> > > > top of my domain model, which is detached forms. This is a common
> > > business
> > > > need that Apache Isis, I feel, shouldn't necessarily cater for, but
> > which
> > > > could perhaps be integrated via the functionality in its meta-model.
> I
> > > say
> > > > this because of a perceived similarity in how the meta-model is used
> to
> > > > bind the Java domain object model to the UI and a similar thing in
> the
> > > W3C
> > > > XForms standard. In the first case via name conventions, in the later
> > > more
> > > > like a spreadsheet.
> > > >
> > > > Some forms can be very complex, but are a process follower idiom
> rather
> > > > than a problem solver one. Ultimately the data collected in a form
> has
> > to
> > > > find a use, maybe this will be simply for analysis via queries on a
> > > > database,  However, to have the two idioms coexisting when
> > necessary,
> > > > seems nice to have.
> > > >
> > > > I had a potential project recently that was more of a content
> > management
> > > > system need, lots safety documents, and of forms for people to fill
> in
> > to
> > > > prove they had read and understood. Apache Isis didn't seem that
> good a
> > > fit
> > > > in total, but for parts it was  very good, the management parts.
> Using
> > > the
> > > > se

Re: Customize UI behavior

2017-11-26 Thread Stephen Cameron
You could develop a custom viewer, it has been done:


https://github.com/apache/isis/blob/master/adocs/documentation/src/main/asciidoc/pages/powered-by/_powered-by_gesconsultor-grc.adoc

On Mon, Nov 27, 2017 at 2:47 PM, SE Song  wrote:

> Thank for your advice,
>
> First, I though that integrating Isis with ZK is an easy task, but I spend
> many days without any task done. Now I don't know what should I do next,
> last option is using restful object, but I hate writing UI (Javascript +
> HTML + CSS), it's a lot of time consuming.
>
> I have started develop without any knowledge base even Java EE(JDO, CDI,
> ORM,...), So I decide to learn Apache Wicket and Java EE, before I start
> Apache Isis again.
>
> On Thu, Nov 23, 2017 at 5:14 PM, Stephen Cameron <
> steve.cameron...@gmail.com
> > wrote:
>
> > Regarding ZK 'Presentation Layer' seems this is the ability to use ZK
> > components in a template context, eg JSP, Struts. That is doing things
> at a
> > lower level, but interesting to ask if such a lower level exists in
> Apache
> > Isis.
> >
> > I see there is a Freemaker templates module in the Incode Platform. I've
> no
> > experience with it but maybe it's worth checking out?
> >
> > I've a perceived need that is related, essentially a presentation layer
> on
> > top of my domain model, which is detached forms. This is a common
> business
> > need that Apache Isis, I feel, shouldn't necessarily cater for, but which
> > could perhaps be integrated via the functionality in its meta-model. I
> say
> > this because of a perceived similarity in how the meta-model is used to
> > bind the Java domain object model to the UI and a similar thing in the
> W3C
> > XForms standard. In the first case via name conventions, in the later
> more
> > like a spreadsheet.
> >
> > Some forms can be very complex, but are a process follower idiom rather
> > than a problem solver one. Ultimately the data collected in a form has to
> > find a use, maybe this will be simply for analysis via queries on a
> > database,  However, to have the two idioms coexisting when necessary,
> > seems nice to have.
> >
> > I had a potential project recently that was more of a content management
> > system need, lots safety documents, and of forms for people to fill in to
> > prove they had read and understood. Apache Isis didn't seem that good a
> fit
> > in total, but for parts it was  very good, the management parts. Using
> the
> > security module, via the meta-model, was very powerful in getting a MVP
> > done quickly.
> >
> > Thinking outside the box in regards to a presentation layer, I am a fan
> of
> > XQuery, which though originating to manipulate XML documents, is designed
> > around a more general meta-model (of sequences) essentially. So the data
> > source can be anything. This flexibility led to a platform called XRX
> > (XForms, REST, XQuery) that sadly went nowhere.
> >
> > On Wed, Nov 22, 2017 at 10:43 PM, SE Song  > > wrote:
> >
> > > Moving off isn't my option, because I love Apache Isis anyways. Only
> one
> > > thing that I doesn't like is UI, that's why I try to use ZK as my UI. I
> > > know I'm going to throws out one of the framework's key features, but
> > > Apache
> > > Isis isn't just a tool for generate UI, there are a lot more features.
> > >
> > > ZK isn't just a viewer or Frontend Layer, it also has Presentation
> Layer,
> > > On my previous project I use ZK & JDBC using Constructor. while Apache
> > Isis
> > > using Dependency Injection @Inject, But I don't have a lot of
> experience
> > on
> > > this. I also doubt what I'm trying to do the wrong ways. But If this
> > > possible, I will be able to build a greate development environment. So
> I
> > > try all options that maybe possible for me and meet my requirement.
> > >
> > > It also has advantage for a Framework which be able to integrate with
> > other
> > > Framework for multiple options.
> > >
> > > On Wed, Nov 22, 2017 at 4:21 PM, Stephen Cameron <
> > > steve.cameron...@gmail.com
> > > 
> > > > wrote:
> > >
> > > > Hi,
> > > >
> > > > I seriously doubt this can work in the way you imagine.
> > > >
> > > > You'd have to write a whole new ZK based viewer (like the standard
> > Wicket
> > > > one).  See the org.apache.isis.viewer.

Customize UI behavior

2017-11-23 Thread Stephen Cameron
Regarding ZK 'Presentation Layer' seems this is the ability to use ZK
components in a template context, eg JSP, Struts. That is doing things at a
lower level, but interesting to ask if such a lower level exists in Apache
Isis.

I see there is a Freemaker templates module in the Incode Platform. I've no
experience with it but maybe it's worth checking out?

I've a perceived need that is related, essentially a presentation layer on
top of my domain model, which is detached forms. This is a common business
need that Apache Isis, I feel, shouldn't necessarily cater for, but which
could perhaps be integrated via the functionality in its meta-model. I say
this because of a perceived similarity in how the meta-model is used to
bind the Java domain object model to the UI and a similar thing in the W3C
XForms standard. In the first case via name conventions, in the later more
like a spreadsheet.

Some forms can be very complex, but are a process follower idiom rather
than a problem solver one. Ultimately the data collected in a form has to
find a use, maybe this will be simply for analysis via queries on a
database,  However, to have the two idioms coexisting when necessary,
seems nice to have.

I had a potential project recently that was more of a content management
system need, lots safety documents, and of forms for people to fill in to
prove they had read and understood. Apache Isis didn't seem that good a fit
in total, but for parts it was  very good, the management parts. Using the
security module, via the meta-model, was very powerful in getting a MVP
done quickly.

Thinking outside the box in regards to a presentation layer, I am a fan of
XQuery, which though originating to manipulate XML documents, is designed
around a more general meta-model (of sequences) essentially. So the data
source can be anything. This flexibility led to a platform called XRX
(XForms, REST, XQuery) that sadly went nowhere.

On Wed, Nov 22, 2017 at 10:43 PM, SE Song > wrote:

> Moving off isn't my option, because I love Apache Isis anyways. Only one
> thing that I doesn't like is UI, that's why I try to use ZK as my UI. I
> know I'm going to throws out one of the framework's key features, but
> Apache
> Isis isn't just a tool for generate UI, there are a lot more features.
>
> ZK isn't just a viewer or Frontend Layer, it also has Presentation Layer,
> On my previous project I use ZK & JDBC using Constructor. while Apache Isis
> using Dependency Injection @Inject, But I don't have a lot of experience on
> this. I also doubt what I'm trying to do the wrong ways. But If this
> possible, I will be able to build a greate development environment. So I
> try all options that maybe possible for me and meet my requirement.
>
> It also has advantage for a Framework which be able to integrate with other
> Framework for multiple options.
>
> On Wed, Nov 22, 2017 at 4:21 PM, Stephen Cameron <
> steve.cameron...@gmail.com
> 
> > wrote:
>
> > Hi,
> >
> > I seriously doubt this can work in the way you imagine.
> >
> > You'd have to write a whole new ZK based viewer (like the standard Wicket
> > one).  See the org.apache.isis.viewer.wicket.* packages (4 jars) in the
> > Maven dependencies of the webapp.
> >
> > Maybe Dan is suggesting to move off Apache Isis once you are happy with
> > your domain model, so Apache Isis is only used for prototyping?
> >
> > Steve
> >
> > On Wed, Nov 22, 2017 at 5:57 PM, SE Song  > wrote:
> >
> > > I already create a repository here https://github.com/sesong11/
> > > ApacheIsisZK
> > > and create ZK VM here
> > > https://github.com/sesong11/ApacheIsisZK/blob/master/
> > webapp/src/main/java/
> > > domainapp/webapp/zkvm/SampleVM.java
> > >
> > > Now another issue on integrating ZK, I can't Inject my repository on ZK
> > VM,
> > > Everything ok, excepted Injecting Service, it always null.
> > >
> > > The problem is ZK initiate VM using Contructor, @PostConstruct on ZK VM
> > has
> > > never been called. Can you please help me how to Inject service outside
> > of
> > > container, or guide me another possible ways
> > >
> > > On Wed, Nov 22, 2017 at 10:48 AM, SE Song  > wrote:
> > >
> > > > I'm building an business process application, we manage staff
> > information
> > > > and request form such as Leave Request, OT, IT Form...
> > > > each form mush has at least employee info, and form detail...
> > > >
> > > > Auto generate UI is very good idea, e.s it's testable too. But
> > Management
> > > > are not deve

Customize UI behavior

2017-11-23 Thread Stephen Cameron
On Wed, Nov 22, 2017 at 10:43 PM, SE Song > wrote:

> Moving off isn't my option, because I love Apache Isis anyways. Only one
> thing that I doesn't like is UI, that's why I try to use ZK as my UI. I
> know I'm going to throws out one of the framework's key features, but
> Apache
> Isis isn't just a tool for generate UI, there are a lot more features.
>
> ZK isn't just a viewer or Frontend Layer, it also has Presentation Layer,
> On my previous project I use ZK & JDBC using Constructor. while Apache Isis
> using Dependency Injection @Inject, But I don't have a lot of experience on
> this. I also doubt what I'm trying to do the wrong ways. But If this
> possible, I will be able to build a greate development environment. So I
> try all options that maybe possible for me and meet my requirement.
>
> It also has advantage for a Framework which be able to integrate with other
> Framework for multiple options.
>
> On Wed, Nov 22, 2017 at 4:21 PM, Stephen Cameron <
> steve.cameron...@gmail.com
> 
> > wrote:
>
> > Hi,
> >
> > I seriously doubt this can work in the way you imagine.
> >
> > You'd have to write a whole new ZK based viewer (like the standard Wicket
> > one).  See the org.apache.isis.viewer.wicket.* packages (4 jars) in the
> > Maven dependencies of the webapp.
> >
> > Maybe Dan is suggesting to move off Apache Isis once you are happy with
> > your domain model, so Apache Isis is only used for prototyping?
> >
> > Steve
> >
> > On Wed, Nov 22, 2017 at 5:57 PM, SE Song  > wrote:
> >
> > > I already create a repository here https://github.com/sesong11/
> > > ApacheIsisZK
> > > and create ZK VM here
> > > https://github.com/sesong11/ApacheIsisZK/blob/master/
> > webapp/src/main/java/
> > > domainapp/webapp/zkvm/SampleVM.java
> > >
> > > Now another issue on integrating ZK, I can't Inject my repository on ZK
> > VM,
> > > Everything ok, excepted Injecting Service, it always null.
> > >
> > > The problem is ZK initiate VM using Contructor, @PostConstruct on ZK VM
> > has
> > > never been called. Can you please help me how to Inject service outside
> > of
> > > container, or guide me another possible ways
> > >
> > > On Wed, Nov 22, 2017 at 10:48 AM, SE Song  > wrote:
> > >
> > > > I'm building an business process application, we manage staff
> > information
> > > > and request form such as Leave Request, OT, IT Form...
> > > > each form mush has at least employee info, and form detail...
> > > >
> > > > Auto generate UI is very good idea, e.s it's testable too. But
> > Management
> > > > are not developer, it's very difficult to convince them about
> changing
> > > > their ideas, they always ask what they want.
> > > > They always concern about look and feel at first.
> > > >
> > > > I will create a repository for integrate  Apache Isis and ZK
> framework
> > > for
> > > > UI, If everything go well, I will use ZK for Frontend Layer and
> > > > Presentation Layer,
> > > > and Apache Isis for Business Logic, Business Model and Data Layer. I
> > also
> > > > concern about integrating ZK VM to Isis Repository too, because ZK
> use
> > > > Constructor out site container,
> > > > so Inject Service maybe impossible or difficult. But I will try and
> > post
> > > > on Github
> > > >
> > > > On Wed, Nov 22, 2017 at 12:00 AM, Dan Haywood <
> > > > d...@haywood-associates.co.uk
> > wrote:
> > > >
> > > >> If the behaviour of the text field in particular is problematic,
> then
> > > you
> > > >> can develop and plug in a different implementation using the Wicket
> > > >> framework.  The Wicket viewer guide has details on how to do this
> > > >> (fullcalendar2, gmap3 use this API).
> > > >>
> > > >> That said...
> > > >>
> > > >> You said your pages are form heavy, and are all view models. I
> wonder
> > > >> therefore whether you are fighting the framework too much.  Why are
> > you
> > > >> using view models rather than just surface entities? Why do your
> users
> > > >> need
> > > >> so much  information on a single page - what use cases are you
> trying
> > to
> > > >> support? Where is this app on

Re: Customize UI behavior

2017-11-22 Thread Stephen Cameron
Hi,

I seriously doubt this can work in the way you imagine.

You'd have to write a whole new ZK based viewer (like the standard Wicket
one).  See the org.apache.isis.viewer.wicket.* packages (4 jars) in the
Maven dependencies of the webapp.

Maybe Dan is suggesting to move off Apache Isis once you are happy with
your domain model, so Apache Isis is only used for prototyping?

Steve

On Wed, Nov 22, 2017 at 5:57 PM, SE Song  wrote:

> I already create a repository here https://github.com/sesong11/
> ApacheIsisZK
> and create ZK VM here
> https://github.com/sesong11/ApacheIsisZK/blob/master/webapp/src/main/java/
> domainapp/webapp/zkvm/SampleVM.java
>
> Now another issue on integrating ZK, I can't Inject my repository on ZK VM,
> Everything ok, excepted Injecting Service, it always null.
>
> The problem is ZK initiate VM using Contructor, @PostConstruct on ZK VM has
> never been called. Can you please help me how to Inject service outside of
> container, or guide me another possible ways
>
> On Wed, Nov 22, 2017 at 10:48 AM, SE Song  wrote:
>
> > I'm building an business process application, we manage staff information
> > and request form such as Leave Request, OT, IT Form...
> > each form mush has at least employee info, and form detail...
> >
> > Auto generate UI is very good idea, e.s it's testable too. But Management
> > are not developer, it's very difficult to convince them about changing
> > their ideas, they always ask what they want.
> > They always concern about look and feel at first.
> >
> > I will create a repository for integrate  Apache Isis and ZK framework
> for
> > UI, If everything go well, I will use ZK for Frontend Layer and
> > Presentation Layer,
> > and Apache Isis for Business Logic, Business Model and Data Layer. I also
> > concern about integrating ZK VM to Isis Repository too, because ZK use
> > Constructor out site container,
> > so Inject Service maybe impossible or difficult. But I will try and post
> > on Github
> >
> > On Wed, Nov 22, 2017 at 12:00 AM, Dan Haywood <
> > d...@haywood-associates.co.uk> wrote:
> >
> >> If the behaviour of the text field in particular is problematic, then
> you
> >> can develop and plug in a different implementation using the Wicket
> >> framework.  The Wicket viewer guide has details on how to do this
> >> (fullcalendar2, gmap3 use this API).
> >>
> >> That said...
> >>
> >> You said your pages are form heavy, and are all view models. I wonder
> >> therefore whether you are fighting the framework too much.  Why are you
> >> using view models rather than just surface entities? Why do your users
> >> need
> >> so much  information on a single page - what use cases are you trying to
> >> support? Where is this app on the "problem solver Vs process follower"
> >> axis?
> >>
> >> One option for you might be to use Isis as a development environment (to
> >> build a good quality domain model) but then write a custom UI, eg in ZK
> on
> >> top of it. Obviously this throws out one of the framework's key
> features,
> >> but you get full flexibility to do whatever. Or, you could use the Rest
> >> api
> >> to accomplish the same.
> >>
> >> But, I do suggest you also try to work within the constraints of the
> >> framework, and see what that gives you. We know of plenty of "problem
> >> solver" type apps that are out there that work well enough without lots
> of
> >> customisations.
> >>
> >> Hth,
> >> Dan.
> >>
> >>
> >> On Tue, 21 Nov 2017, 12:11 SE Song,  wrote:
> >>
> >> > Yes, I am learning about it. And another option for me is using ZK
> >> > framework for UI
> >> >
> >> > On Tue, Nov 21, 2017 at 6:27 PM, Rade, Joerg / Kuehne + Nagel / Ham
> >> GI-DP <
> >> > joerg.r...@kuehne-nagel.com> wrote:
> >> >
> >> > > Have you considered using the RestfulObjects interface [1] yet?
> >> > >
> >> > > -j
> >> > > [1] https://isis.apache.org/guides/ugvro/ugvro.html
> >> > >
> >> > > -Ursprüngliche Nachricht-
> >> > > Von: SE Song [mailto:seson...@gmail.com]
> >> > > Gesendet: Dienstag, 21. November 2017 11:28
> >> > > An: users@isis.apache.org
> >> > > Betreff: Re: Customize UI behavior
> >> > >
> >> > > My issue isn't just scrolling, but also behavior 

Re: Apache ISIS - Multiple entities in Single Calendar View

2017-11-21 Thread Stephen Cameron
Simple answer is no

I've done something similar with a recurring activity, but in that case the
users define one such recurring activity and that has an action to create
new child activities, each one a set time from the last child created. In
your case it could create children for a three month block of time.

It is useful to differentiate these children from "one-off" activities via
a different coloured icon, changing the icon file used via some state of
the object is easy. In my case if there is parent then show a different
icon.

The icons aren't visible in the calendar though, use a different calendar
name to get different coloured entities in the display.

Steve

On Tue, Nov 21, 2017 at 9:22 PM, Roshan Vishwakarma <
roshan.vishwaka...@celeritio.com> wrote:

> Hello,
>
> I have a use case related to Full Calendar which I am currently researching
> on it.
> Below is the use case:
> 1. There are two entity class:
>  a. Appointment  &
>  b. Schedule
>
> Schedule entity has default values stored which is use to display the fixed
> appointments on all day till 3 months. Example: lunch time this will be
> fixed for all days.
> This Schedule entity will contain only one row into database which has
> multiple columns with fixed start & end time also with "break name"
>
> Appointment entity is used to store the appointments that user has created.
> Usually it will stored appointment date with start and end time
>
>
>- So now I have to create a Calendar view which will show both Schedule
>& Appointment in a single Calendar.
>
>
>
>- Is it possible to achieve this? If possible please can I get
> reference.
>
>
>
> Thanks
> Roshan
>


Re: Customize UI behavior

2017-11-21 Thread Stephen Cameron
Ok,  but using tabs via layout.xml is still an option.

Maybe using a JAXB VM causes a full page reload?

Do you have to use them?

On Tue, Nov 21, 2017 at 9:13 PM, SE Song  wrote:

> It always scroll like this.
>
> ​
>
> On Tue, Nov 21, 2017 at 5:10 PM, SE Song  wrote:
>
>> Sorry that I did not specified that I am using JAXB VM. It just submit to
>> VM
>>
>> On Tue, Nov 21, 2017 at 4:48 PM, Stephen Cameron <
>> steve.cameron...@gmail.com> wrote:
>>
>>> More details here: https://www.youtube.com/watch?v=MxewC5Pve5k
>>>
>>> On Tue, Nov 21, 2017 at 8:46 PM, Stephen Cameron <
>>> steve.cameron...@gmail.com
>>> > wrote:
>>>
>>> > Have you tried using tabs via the xxx.layout.xml?
>>> >
>>> > My pages aren't more than one screen height and I've not had the other
>>> > problems that you indicate, Apache Isis doesn't submit a form in the
>>> sense
>>> > of an HTML  element, each click of OK submits the updated value
>>> to
>>> > the database.
>>> >
>>> >
>>> >
>>> >
>>> > On Tue, Nov 21, 2017 at 8:36 PM, SE Song  wrote:
>>> >
>>> >> Dear All,
>>> >>
>>> >> After presentation Apache Isis to my manager, what he doesn't like is
>>> UI,
>>> >> Because the application which I am developing is HR System, which has
>>> a
>>> >> lot
>>> >> of form, so UX is very important for us.
>>> >>
>>> >> After Using Apache Isis for a while I have some problem on UI
>>> behavior as
>>> >> bellow:
>>> >> 1. When I click on the control it always scroll to top, so if my from
>>> has
>>> >> 2x of screen high, user will very difficult for input data.
>>> >> 2. When user click on a textbox it always show "OK" and "Cancel"
>>> button,
>>> >> OK
>>> >> button use submit, this make my form refresh every time I press Enter
>>> or
>>> >> Click "OK", so it always scroll back to top and destroy another field
>>> that
>>> >> I did not submit.
>>> >> 3. I want to change behavior of textbox from Clicking Submit to use
>>> jQuery
>>> >> (ZK like) to send data to my VM when user Lost Focus on textbox.
>>> >>
>>> >> Please help to guide me what should I do/learn to solve this problem.
>>> >>
>>> >>
>>> >> Another option for me is to integrate Apache Isis with ZK Framework.
>>> ZK
>>> >> framework for implement presentation layer and fronted layer. Is this
>>> >> option possible?
>>> >>
>>> >
>>> >
>>>
>>
>>
>


Re: Customize UI behavior

2017-11-21 Thread Stephen Cameron
Another idea that might be useful is to use mass update actions, simply an
action with many parameters, each one corresponding to a property of the
class. If you position these actions in the header panel of fieldsets they
can be used in a more standard 'form filling out' manner. They do take a
bit of work to create, do them last I suggest, once all your validation
logic is defined for individual properties.

On Tue, Nov 21, 2017 at 8:48 PM, Stephen Cameron  wrote:

> More details here: https://www.youtube.com/watch?v=MxewC5Pve5k
>
> On Tue, Nov 21, 2017 at 8:46 PM, Stephen Cameron <
> steve.cameron...@gmail.com> wrote:
>
>> Have you tried using tabs via the xxx.layout.xml?
>>
>> My pages aren't more than one screen height and I've not had the other
>> problems that you indicate, Apache Isis doesn't submit a form in the sense
>> of an HTML  element, each click of OK submits the updated value to
>> the database.
>>
>>
>>
>>
>> On Tue, Nov 21, 2017 at 8:36 PM, SE Song  wrote:
>>
>>> Dear All,
>>>
>>> After presentation Apache Isis to my manager, what he doesn't like is UI,
>>> Because the application which I am developing is HR System, which has a
>>> lot
>>> of form, so UX is very important for us.
>>>
>>> After Using Apache Isis for a while I have some problem on UI behavior as
>>> bellow:
>>> 1. When I click on the control it always scroll to top, so if my from has
>>> 2x of screen high, user will very difficult for input data.
>>> 2. When user click on a textbox it always show "OK" and "Cancel" button,
>>> OK
>>> button use submit, this make my form refresh every time I press Enter or
>>> Click "OK", so it always scroll back to top and destroy another field
>>> that
>>> I did not submit.
>>> 3. I want to change behavior of textbox from Clicking Submit to use
>>> jQuery
>>> (ZK like) to send data to my VM when user Lost Focus on textbox.
>>>
>>> Please help to guide me what should I do/learn to solve this problem.
>>>
>>>
>>> Another option for me is to integrate Apache Isis with ZK Framework. ZK
>>> framework for implement presentation layer and fronted layer. Is this
>>> option possible?
>>>
>>
>>
>


Re: Customize UI behavior

2017-11-21 Thread Stephen Cameron
More details here: https://www.youtube.com/watch?v=MxewC5Pve5k

On Tue, Nov 21, 2017 at 8:46 PM, Stephen Cameron  wrote:

> Have you tried using tabs via the xxx.layout.xml?
>
> My pages aren't more than one screen height and I've not had the other
> problems that you indicate, Apache Isis doesn't submit a form in the sense
> of an HTML  element, each click of OK submits the updated value to
> the database.
>
>
>
>
> On Tue, Nov 21, 2017 at 8:36 PM, SE Song  wrote:
>
>> Dear All,
>>
>> After presentation Apache Isis to my manager, what he doesn't like is UI,
>> Because the application which I am developing is HR System, which has a
>> lot
>> of form, so UX is very important for us.
>>
>> After Using Apache Isis for a while I have some problem on UI behavior as
>> bellow:
>> 1. When I click on the control it always scroll to top, so if my from has
>> 2x of screen high, user will very difficult for input data.
>> 2. When user click on a textbox it always show "OK" and "Cancel" button,
>> OK
>> button use submit, this make my form refresh every time I press Enter or
>> Click "OK", so it always scroll back to top and destroy another field that
>> I did not submit.
>> 3. I want to change behavior of textbox from Clicking Submit to use jQuery
>> (ZK like) to send data to my VM when user Lost Focus on textbox.
>>
>> Please help to guide me what should I do/learn to solve this problem.
>>
>>
>> Another option for me is to integrate Apache Isis with ZK Framework. ZK
>> framework for implement presentation layer and fronted layer. Is this
>> option possible?
>>
>
>


Re: Customize UI behavior

2017-11-21 Thread Stephen Cameron
Have you tried using tabs via the xxx.layout.xml?

My pages aren't more than one screen height and I've not had the other
problems that you indicate, Apache Isis doesn't submit a form in the sense
of an HTML  element, each click of OK submits the updated value to
the database.




On Tue, Nov 21, 2017 at 8:36 PM, SE Song  wrote:

> Dear All,
>
> After presentation Apache Isis to my manager, what he doesn't like is UI,
> Because the application which I am developing is HR System, which has a lot
> of form, so UX is very important for us.
>
> After Using Apache Isis for a while I have some problem on UI behavior as
> bellow:
> 1. When I click on the control it always scroll to top, so if my from has
> 2x of screen high, user will very difficult for input data.
> 2. When user click on a textbox it always show "OK" and "Cancel" button, OK
> button use submit, this make my form refresh every time I press Enter or
> Click "OK", so it always scroll back to top and destroy another field that
> I did not submit.
> 3. I want to change behavior of textbox from Clicking Submit to use jQuery
> (ZK like) to send data to my VM when user Lost Focus on textbox.
>
> Please help to guide me what should I do/learn to solve this problem.
>
>
> Another option for me is to integrate Apache Isis with ZK Framework. ZK
> framework for implement presentation layer and fronted layer. Is this
> option possible?
>


Re: Apache ISIS - Time picker not shown on UI

2017-11-17 Thread Stephen Cameron
I've used String and a regex for validation.

On Sat, Nov 18, 2017 at 12:37 AM, Andi Huber  wrote:

> I'm afraid, we have no time-picker in Isis yet!
>
> That said, unless I'm missing something, we might add support for ...
> * org.joda.time.LocalTime
> * java.time.LocalTime
> in a future release of Isis.
>
> Regards, Andi
>
> On 2017-11-17 11:47, Roshan Vishwakarma
>  wrote:
> > Hi All,
> >
> > I am need of Time picker same as Date picker. Date picker is working fine
> > which shows only dates using the "org.joda.time.LocalDate".
> >
> > For Time picker I have used the "org.joda.time.LocalTime" for picking
> time
> > from the UI but it is showing (None)
> >
> > Then I used "java.sql.Time" and it is showing a text field but not the
> time
> > picker.
> >
> > How to declare a time picker?
> >
> > Please can anyone suggest
> >
> >
> > Thanks
> > Roshan
> >
>
>


Re: Integration of Apache Isis and postgresql

2017-11-09 Thread Stephen Cameron
Can you create an JDBC connection independantly of Apache Isis? It does
seem like the basic connection is the problem?

On Fri, Nov 10, 2017 at 2:21 AM, Paul Benedict Jabines  wrote:

> Hi,
>
> This is in connection to my previous message about ResultSet is closed.
> This time I already created a repo in github.com[1]. I am just wondering
> why there is a problem when the only thing I have done is
>
> (1) adding a dependency in my pom.xml:
>
> 
> postgresql
> postgresql
> 9.1-901.jdbc4
> 
>
> (2) and uncomment this part in isis.properties:
>
> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=org.
> postgresql.Driver
> isis.persistor.datanucleus.impl.javax.jdo.option.
> ConnectionURL=jdbc:postgresql://192.168.99.100:5432/mubuss
> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=root
> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=root
>
> The full stacktrace of the error is this:
>
> 21:58:57,818  [IsisWicketApplication main   ERROR]  Failed to
> initialize
> com.google.inject.ProvisionException: Unable to provision, see the
> following errors:
>
> 1) Error in custom provider,
> org.datanucleus.exceptions.NucleusDataStoreException: This ResultSet
> is closed.
>   at org.apache.isis.core.runtime.runner.IsisInjectModule.
> provideIsisSessionFactory(IsisInjectModule.java:109)
>   at org.apache.isis.core.runtime.runner.IsisInjectModule.
> provideIsisSessionFactory(IsisInjectModule.java:109)
>   while locating org.apache.isis.core.runtime.system.session.
> IsisSessionFactory
> for field at
> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.
> isisSessionFactory(IsisWicketApplication.java:155)
>   while locating domainapp.webapp.DomainApplication
>
> 1 error
> at com.google.inject.internal.Errors.
> throwProvisionExceptionIfErrorsExist(Errors.java:486)
> at com.google.inject.internal.MembersInjectorImpl.injectMembers(
> MembersInjectorImpl.java:67)
> at com.google.inject.internal.InjectorImpl.injectMembers(
> InjectorImpl.java:987)
> at org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.
> init(IsisWicketApplication.java:368)
> at domainapp.webapp.DomainApplication.init(
> DomainApplication.java:59)
> at org.apache.wicket.Application.initApplication(Application.
> java:953)
> at org.apache.wicket.protocol.http.WicketFilter.init(
> WicketFilter.java:429)
> at org.apache.wicket.protocol.http.WicketFilter.init(
> WicketFilter.java:353)
> at org.eclipse.jetty.servlet.FilterHolder.initialize(
> FilterHolder.java:139)
> at org.eclipse.jetty.servlet.ServletHandler.initialize(
> ServletHandler.java:725)
> at org.eclipse.jetty.servlet.ServletContextHandler.startContext(
> ServletContextHandler.java:348)
> at org.eclipse.jetty.webapp.WebAppContext.startWebapp(
> WebAppContext.java:1480)
> at org.eclipse.jetty.webapp.WebAppContext.startContext(
> WebAppContext.java:1442)
> at org.eclipse.jetty.server.handler.ContextHandler.
> doStart(ContextHandler.java:799)
> at org.eclipse.jetty.servlet.ServletContextHandler.doStart(
> ServletContextHandler.java:261)
> at org.eclipse.jetty.webapp.WebAppContext.doStart(
> WebAppContext.java:540)
> at org.eclipse.jetty.util.component.AbstractLifeCycle.
> start(AbstractLifeCycle.java:68)
> at org.eclipse.jetty.util.component.ContainerLifeCycle.
> start(ContainerLifeCycle.java:131)
> at org.eclipse.jetty.server.Server.start(Server.java:452)
> at org.eclipse.jetty.util.component.ContainerLifeCycle.
> doStart(ContainerLifeCycle.java:105)
> at org.eclipse.jetty.server.handler.AbstractHandler.
> doStart(AbstractHandler.java:113)
> at org.eclipse.jetty.server.Server.doStart(Server.java:419)
> at org.eclipse.jetty.util.component.AbstractLifeCycle.
> start(AbstractLifeCycle.java:68)
> at org.apache.isis.core.webserver.WebServer.start(
> WebServer.java:179)
> at org.apache.isis.core.webserver.WebServer.run(
> WebServer.java:131)
> at org.apache.isis.core.webserver.WebServer.main(
> WebServer.java:98)
> at org.apache.isis.WebServer.main(WebServer.java:25)
> Caused by: org.datanucleus.exceptions.NucleusDataStoreException: This
> ResultSet is closed.
> at org.datanucleus.store.rdbms.ConnectionFactoryImpl$
> ManagedConnectionImpl.getConnection(ConnectionFactoryImpl.java:459)
> at org.datanucleus.store.rdbms.AbstractSchemaTransaction.
> getCurrentConnection(AbstractSchemaTransaction.java:87)
> at org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.
> performTablesValidation(RDBMSStoreManager.java:3365)
> at org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.
> run(RDBMSStoreManager.java:2877)
> at org.datanucleus.store.rdbms.AbstractSchemaTransaction.execute(
> AbstractSchemaTransaction.java:119)
> at org.datanucleus.store.rdbms.RDBMSSto

Re: Apache ISIS custom view similar to calendar view

2017-10-31 Thread Stephen Cameron
Hi Roshan,

I found the book 'Wicket in Action' from Manning a good read.

On Wed, Nov 1, 2017 at 3:18 PM, Roshan Vishwakarma <
roshan.vishwaka...@celeritio.com> wrote:

> Thanks Dan for your valuable information
>
> Regards,
> Roshan Vishwakarma
>
> On Tue, Oct 31, 2017 at 1:15 PM, Dan Haywood  >
> wrote:
>
> > Hi Roshan,
> >
> > If you can make changes to fullcalendar2 so that it continues to support
> > its current capabilities (ie is backwardly compatible), then do that and
> > raise a PR.
> >
> > But if you're not sure how to do that, then you could just take a copy of
> > the fullcalendar2 code and modify/hack around as necessary.  In that case
> > you'll need to register your new implementation of ComponentFactory (look
> > for the META-INF/services file which we pick up using Java's
> ServiceLoader
> > API).
> >
> > HTH
> > Dan
> >
> >
> > On Tue, 31 Oct 2017 at 07:41 Roshan Vishwakarma <
> > roshan.vishwaka...@celeritio.com> wrote:
> >
> > > Hi Dan,
> > >
> > > Thanks for the information
> > >
> > > From your text below:
> > > "*You might find it easiest*
> > > *to extend fullcalendar2 in order to support your use case.*"
> > >
> > > Actually I didn't get this one, what should I follow here.
> > > I think you mean to say override the class and write my own
> > implementation.
> > > or
> > > Do some changes in the fullcalendar2 class as per the need.
> > >
> > > Is it correct?
> > >
> > > Please can you provide some example on it.
> > >
> > > I have gone through some below links:
> > > 1] https://github.com/isisaddons/isis-app-todoapp
> > >
> > >
> > > Thanks,
> > > Roshan Vishwakarma
> > >
> > > On Tue, Oct 31, 2017 at 11:50 AM, Dan Haywood <
> > > d...@haywood-associates.co.uk>
> > > wrote:
> > >
> > > > Hi Roshan,
> > > >
> > > > You'll need to learn some Wicket in order to do this.
> > > >
> > > > Take a look at our docs [1], and also at some of the implementations
> in
> > > the
> > > > Incode Platform, specifically fullcalendar2 [2].  You might find it
> > > easiest
> > > > to extend fullcalendar2 in order to support your use case.
> > > >
> > > > HTH
> > > > Dan
> > > >
> > > >
> > > > [1]
> > > > http://isis.apache.org/guides/ugvw/ugvw.html#_ugvw_
> > > > extending_replacing-page-elements
> > > > [2]
> > > > https://github.com/incodehq/incode-platform/tree/master/
> > > > modules/wkt/fullcalendar2/impl
> > > >
> > > >
> > > >
> > > > On Mon, 30 Oct 2017 at 11:14 Roshan Vishwakarma <
> > > > roshan.vishwaka...@celeritio.com> wrote:
> > > >
> > > > > Hello,
> > > > >
> > > > > I wan to develop a custom view which is similar to calendar view.
> > > > > In each day i want to club the schedule of more than one users to
> > tell
> > > > on a
> > > > > particular hour who's schedule or slot is free or occupied with
> > > different
> > > > > colour coding.
> > > > >
> > > > > I want to have navigation similar to a calendar where I can fetch
> > > > > additional schedules if needed.
> > > > >
> > > > >
> > > > > Below is the example:
> > > > >
> > > > > 10/30/2017  Today November 2017
> > > > > Time Slot/Member Name Member 1 Member 2 Member 3 Member 4 Member 5
> > > > > 1.00-2.00 am
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > 2.00- 3.00 am
> > > > >
> > > >
> > >
> >
>


Re: Developing using Eclipse

2017-10-12 Thread Stephen Cameron
 I now have to add this dependency in the webapp pom.xml


org.apache.isis.core
isis-core-webserver


On Fri, Oct 6, 2017 at 5:10 PM, Jayesh Prajapati 
wrote:

> I use below command to build my projects using maven.
>
> echo Build command [mvn clean install -Dskip.isis.standalone=true $*]
> mvn clean install -Dskip.isis.standalone=true $*
> I hope above helps.
>
> Thanks,
> Jayesh
>
> On Fri, Oct 6, 2017 at 6:48 AM, Jayesh Prajapati 
> wrote:
>
> > Hi,
> >
> > While building you need to use maven profile or -D option named something
> > like standalone.
> >
> > As soon as I find time I will check and share more detail with you.
> >
> > Cheers,
> > Jayesh
> >
> >
> >
> > On 06-Oct-2017 5:25 AM, "Stephen Cameron" 
> > wrote:
> >
> >> You now need to add a dependency to your pom.xml to be able to use
> >> org.apache.isis.WebServer. Thats changed. Don't have details at hand
> >> sorry.
> >> Just running an application with that as the main class seems
> sufficient,
> >> so the launch file is not needed I'd say.
> >>
> >> On Friday, October 6, 2017, Fernando Medeiros Junior <
> >> fernando.medei...@gmail.com> wrote:
> >>
> >> > I tried to run the simpleapp, using the archetype and followed the
> >> guide in
> >> > https://isis.apache.org/guides/dg/dg.html#_dg_ide_eclipse but it
> did't
> >> > work.
> >> > My first problem was that the ".launch" file, referenced by guide,
> >> does't
> >> > exists in archetype.
> >> > I have tried to run the org.apache.isis.WebServer but the eclipse
> didn't
> >> > found it in project, that I have imported in eclipse following the
> >> guide.
> >> > My workaround was running it using a new launch configurating,
> lauching
> >> a
> >> > maven command, goal jetty:run.
> >> > Did I do something wrong?
> >> >
> >> > Thank you.
> >> >
> >>
> >
>


Re: Quartz | ISIS Metamodel Validation errors

2017-10-09 Thread Stephen Cameron
It seems a small detail, but having the explicit use of @Action probably
would be better. I often have to add @Programmatic to make unexpected
things go from the UI, its not the focus and so you forget it.

On Mon, Oct 9, 2017 at 9:26 PM, Dan Haywood 
wrote:

> Do we think that Isis should require that public methods be annotated as
> @Action in order to be picked up?  Put another way, that @Programmatic is
> assumed unless @Action is specified?
>
> Maybe we could introduce a configuration property to make this
> configurable, with the default currently as is?
>
> Thoughts?
> Dan
>
>
> On Mon, 9 Oct 2017 at 07:08 Jayesh Prajapati  wrote:
>
> > Thank you Oscar.
> >
> > Cheers,
> > Jayesh
> >
> > On 08-Oct-2017 8:28 PM, "Óscar Bou"  wrote:
> >
> >
> > Dear Jayesh,
> >
> > As you’ve discovered, Isis will automatically add to the metamodel as
> > actions all public methods on Domain Entities and Services.
> >
> > When those public methods are intended as internal methods, but you need
> > them to be public (due to package scope, etc.) you can annotate them with
> > @Programmatic, telling Apache Isis that they’re not part of your app’s
> > Domain metamodel.
> >
> > HTH,
> >
> > Oscar
> >
> >
> > > El 8 oct 2017, a las 12:15, Jayesh Prajapati 
> > escribió:
> > >
> > > Hi,
> > >
> > > I figured that above validation were applied on quartz objects because
> > they
> > > were used as argument in one of the public method of a domain service.
> > >
> > > public JobDetail createJobDetail(String name, String group, JobDataMap
> > > jobDataMap) {
> > >
> > > After making this method private it started working fine. Any more
> > > clarification/detail on above behavior is much appreciated.
> > >
> > > Cheers,
> > > Jayesh
> > >
> > > On Sun, Oct 8, 2017 at 2:21 PM, Jayesh Prajapati 
> > > wrote:
> > >
> > >> Hi,
> > >>
> > >> I am using v1.15.0 along with quartz addon. While starting below
> errors
> > >> are reported.
> > >>
> > >>  ISIS METAMODEL
> > >> VALIDATION ERRORS ##
> > >> ##
> > >>
> > >> org.quartz.JobDataMap#clearDirtyFlag: has prefix clear, is probably
> > >> intended as a supporting method for a property, collection or action.
> > If
> > >> the method is intended to be an action, then rename and use
> > >> @ActionLayout(named="...") or ignore completely using @Programmatic
> > >> org.quartz.utils.DirtyFlagMap#clearDirtyFlag: has prefix clear, is
> > >> probably intended as a supporting method for a property, collection or
> > >> action.  If the method is intended to be an action, then rename and
> use
> > >> @ActionLayout(named="...") or ignore completely using @Programmatic
> > >> org.quartz.utils.StringKeyDirtyFlagMap#clearDirtyFlag: has prefix
> clear,
> > >> is probably intended as a supporting method for a property, collection
> > or
> > >> action.  If the method is intended to be an action, then rename and
> use
> > >> @ActionLayout(named="...") or ignore completely using @Programmatic
> > >>
> > >> Please inspect the above messages and correct your domain model.
> > >>
> > >>  ISIS METAMODEL
> > >> VALIDATION ERRORS ##
> > >> ##
> > >>
> > >>
> > >> These classes are part of Quartz library and hence I cannot attach
> > >> Programmatic annotation.
> > >>
> > >> Question is why metamodel validations are applied on classes under
> > >> org.quartz package?
> > >>
> > >> Any way to skip this validation will help greatly. As of now this is
> > >> blocking access to Wicket UI. As a workaround I am initializing quartz
> > on
> > >> click of an action/button.
> > >>
> > >> Thanks,
> > >> Jayesh
> > >>
> >
>


Re: New Member joins the Apache Isis Team

2017-10-05 Thread Stephen Cameron
More good news, congrats to Andi, and thanks.

On Friday, October 6, 2017, Kevin Meyer  wrote:

> Hello all,
>
> I am pleased to announce that Andi Huber has joined the Apache Isis team!
>
> Andi has been submitting pull requests since April last year, ranging from
> bug fixes to enhancements. He has also learned about how Apache Isis
> works, and used this knowledge to improve the core framework code to
> everyone's benefit.
>
> We notice those of you who contribute to our project, and we invite those
> who consistently contribute to join our team.
>
> Thank you for your support!
>
> Kind regards,
> Kevin
>
> --
> Kevin Meyer,
> Chair, Apache Isis Project Management Committee
>
>
>


Re: Developing using Eclipse

2017-10-05 Thread Stephen Cameron
You now need to add a dependency to your pom.xml to be able to use
org.apache.isis.WebServer. Thats changed. Don't have details at hand sorry.
Just running an application with that as the main class seems sufficient,
so the launch file is not needed I'd say.

On Friday, October 6, 2017, Fernando Medeiros Junior <
fernando.medei...@gmail.com> wrote:

> I tried to run the simpleapp, using the archetype and followed the guide in
> https://isis.apache.org/guides/dg/dg.html#_dg_ide_eclipse but it did't
> work.
> My first problem was that the ".launch" file, referenced by guide, does't
> exists in archetype.
> I have tried to run the org.apache.isis.WebServer but the eclipse didn't
> found it in project, that I have imported in eclipse following the guide.
> My workaround was running it using a new launch configurating, lauching a
> maven command, goal jetty:run.
> Did I do something wrong?
>
> Thank you.
>


Re: Prototyping menu item disappearing

2017-10-03 Thread Stephen Cameron
Let me read up on TERTIARY menu and get back to you.

On Wed, Oct 4, 2017 at 4:04 PM, Stephen Cameron 
wrote:

> I see no such evidence of being in prototyping mode. Seems like the
> web.xml setting is being ignored?
> I was confused as the wicket session & memory status box is in the top
> right and I'd assumed that is there if configuration=development. After
> changing configuration it stay's there either way.
>
>
>
>
> On Wed, Oct 4, 2017 at 3:41 PM, Dan Haywood 
> wrote:
>
>> Hi Steve,
>> Some things to try...
>>
>> In the wicket viewer, on the footer, do you see the warning icon saying
>> that you are running in prototype mode?
>>
>> If you inspect the configuration properties (from tertiary menu), what is
>> the setting of Isis.deploymentType?
>>
>> Do you see prototype actions on other domain objects?
>>
>> Cheers,
>> Dan.
>>
>> On Tue, 3 Oct 2017, 22:22 Stephen Cameron, 
>> wrote:
>>
>> > Thanks Jeroen, my mistake it's 'configuration' I do have that setting,
>> so
>> > I'll have to dig around, maybe some interaction with security module
>> being
>> > used?
>> >
>> > Steve
>> >
>> > On Wed, Oct 4, 2017 at 12:16 AM, Jeroen van der Wal <
>> jer...@stromboli.it>
>> > wrote:
>> >
>> > > Hi Stephen,
>> > >
>> > > To enable prototyping this is what we have in web.xml:
>> > >
>> > >  
>> > >  configuration
>> > >  development
>> > >  
>> > >
>> > > HTH
>> > >
>> > > Jeroen
>> > >
>> > >
>> > > On 2 October 2017 at 09:22, Stephen Cameron <
>> steve.cameron...@gmail.com>
>> > > wrote:
>> > >
>> > > > Hi,
>> > > >
>> > > > Before I go looking can anyone suggest why this might occur? I am in
>> > > > development mode but the 'Prototyping' menu item has disappeared a
>> > while
>> > > > back. Is there anything else that affects its visiblity other than
>> the
>> > > > deployment param in web.xml?
>> > > >
>> > > > Thanks
>> > > > Steve
>> > > >
>> > >
>> >
>>
>
>


Re: Prototyping menu item disappearing

2017-10-03 Thread Stephen Cameron
I see no such evidence of being in prototyping mode. Seems like the web.xml
setting is being ignored?
I was confused as the wicket session & memory status box is in the top
right and I'd assumed that is there if configuration=development. After
changing configuration it stay's there either way.



On Wed, Oct 4, 2017 at 3:41 PM, Dan Haywood 
wrote:

> Hi Steve,
> Some things to try...
>
> In the wicket viewer, on the footer, do you see the warning icon saying
> that you are running in prototype mode?
>
> If you inspect the configuration properties (from tertiary menu), what is
> the setting of Isis.deploymentType?
>
> Do you see prototype actions on other domain objects?
>
> Cheers,
> Dan.
>
> On Tue, 3 Oct 2017, 22:22 Stephen Cameron, 
> wrote:
>
> > Thanks Jeroen, my mistake it's 'configuration' I do have that setting, so
> > I'll have to dig around, maybe some interaction with security module
> being
> > used?
> >
> > Steve
> >
> > On Wed, Oct 4, 2017 at 12:16 AM, Jeroen van der Wal  >
> > wrote:
> >
> > > Hi Stephen,
> > >
> > > To enable prototyping this is what we have in web.xml:
> > >
> > >  
> > >  configuration
> > >  development
> > >  
> > >
> > > HTH
> > >
> > > Jeroen
> > >
> > >
> > > On 2 October 2017 at 09:22, Stephen Cameron <
> steve.cameron...@gmail.com>
> > > wrote:
> > >
> > > > Hi,
> > > >
> > > > Before I go looking can anyone suggest why this might occur? I am in
> > > > development mode but the 'Prototyping' menu item has disappeared a
> > while
> > > > back. Is there anything else that affects its visiblity other than
> the
> > > > deployment param in web.xml?
> > > >
> > > > Thanks
> > > > Steve
> > > >
> > >
> >
>


Re: Non-cached view models

2017-10-03 Thread Stephen Cameron
Thanks

I'm now working on an alternative solution (that in fact may be better,
which is to add derived properites on an existing entity), but for future
reference you provide a means, it's come up before.

Cheers

On Wed, Oct 4, 2017 at 3:50 PM, Dan Haywood 
wrote:

> We do something similar to this in Estatio... take a look at
> IncomingDocAsInvoiceViewModel (or something like that).
>
> If you use Jaxb view models, then it simply requires a property referencing
> the underlying domain entity (which should be annotated with
> XmlAdapter(PersistentEntityAdapter.class) so that Jaxb can serialize the
> reference into an oid.
>
> HTH,
> Dan.
>
> On Wed, 4 Oct 2017, 04:45 Stephen Cameron, 
> wrote:
>
> > Hi,
> >
> > I want to use view models as a wrapper around a persisted domain entity
> to
> > simply present an alternative view of that entity. The idea of caching
> such
> > a view model doesn't make sense to me, rather I want the persisted domain
> > entity to be cached and the view model (representation of it) to be
> > recreated each time that its needed, probably by having a constructor
> that
> > includes the domain entity as a parameter.
> >
> > I can create a DomainObject with nature = Nature.INMEMORY_ENTITY, and
> make
> > it non bookmarkable, how the title is still a link to a now cached entity
> > that cannot be recreated.
> >
> > Stack trace:
> >
> >- org.apache.wicket.WicketRuntimeException
> >- Can't instantiate page using constructor 'public
> >
> >  org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage(
> org.apache.wicket.request.mapper.parameter.PageParameters)'
> >and argument
> >
> >  'objectOid=[*one.projectviewmodel:PD94bWwgdmVyc2lvbj0iMS4wIiBlbm
> NvZGluZz0iVVRGLTgiPz4KPG1lbWVudG8vPg==]'.
> >An exception has been thrown during construction!
> >-
> > org.apache.wicket.session.DefaultPageFactory#newPage(
> DefaultPageFactory.java:194)
> >
> >
> > I can see a way to do what I want by creating a persistent domain entity
> > that references the persistent domain entity of interest, and then just
> has
> > getters that refer to the equivalent getter of the domain entity of
> > interest.
> >
> > This need has been created my desire to have a very simple view of a
> domain
> > entity without using tabs in the layout.xml and the admin view that does
> > use layout.xml, but I suspect its a more general need.
> >
> > Steve
> >
>


Non-cached view models

2017-10-03 Thread Stephen Cameron
Hi,

I want to use view models as a wrapper around a persisted domain entity to
simply present an alternative view of that entity. The idea of caching such
a view model doesn't make sense to me, rather I want the persisted domain
entity to be cached and the view model (representation of it) to be
recreated each time that its needed, probably by having a constructor that
includes the domain entity as a parameter.

I can create a DomainObject with nature = Nature.INMEMORY_ENTITY, and make
it non bookmarkable, how the title is still a link to a now cached entity
that cannot be recreated.

Stack trace:

   - org.apache.wicket.WicketRuntimeException
   - Can't instantiate page using constructor 'public
   
org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage(org.apache.wicket.request.mapper.parameter.PageParameters)'
   and argument
   
'objectOid=[*one.projectviewmodel:PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPG1lbWVudG8vPg==]'.
   An exception has been thrown during construction!
   - 
org.apache.wicket.session.DefaultPageFactory#newPage(DefaultPageFactory.java:194)


I can see a way to do what I want by creating a persistent domain entity
that references the persistent domain entity of interest, and then just has
getters that refer to the equivalent getter of the domain entity of
interest.

This need has been created my desire to have a very simple view of a domain
entity without using tabs in the layout.xml and the admin view that does
use layout.xml, but I suspect its a more general need.

Steve


Re: Prototyping menu item disappearing

2017-10-03 Thread Stephen Cameron
Thanks Jeroen, my mistake it's 'configuration' I do have that setting, so
I'll have to dig around, maybe some interaction with security module being
used?

Steve

On Wed, Oct 4, 2017 at 12:16 AM, Jeroen van der Wal 
wrote:

> Hi Stephen,
>
> To enable prototyping this is what we have in web.xml:
>
>  
>  configuration
>  development
>  
>
> HTH
>
> Jeroen
>
>
> On 2 October 2017 at 09:22, Stephen Cameron 
> wrote:
>
> > Hi,
> >
> > Before I go looking can anyone suggest why this might occur? I am in
> > development mode but the 'Prototyping' menu item has disappeared a while
> > back. Is there anything else that affects its visiblity other than the
> > deployment param in web.xml?
> >
> > Thanks
> > Steve
> >
>


Prototyping menu item disappearing

2017-10-02 Thread Stephen Cameron
Hi,

Before I go looking can anyone suggest why this might occur? I am in
development mode but the 'Prototyping' menu item has disappeared a while
back. Is there anything else that affects its visiblity other than the
deployment param in web.xml?

Thanks
Steve


Re: 'red star' mandatory property icon (1.15.0 feature/issue?)

2017-08-24 Thread Stephen Cameron
Yes, I'll do that ticket and one other.

On Thu, Aug 24, 2017 at 7:30 PM, Dan Haywood 
wrote:

> There was a "bug fix" IIRC, that the mandatory indicator was missing in
> some cases.
>
> Currently, whether a property is mandatory or not is independent from
> whether it's read-only... what's editable or not varies on a per user
> basis, whereas the fact that a property is mandatory is an invariant.
>
> That said, an improvement might be to suppress the mandatory indicator if
> it is also read-only (on the grounds that the current user can do nothing
> to change its state).
>
> would you like to raise a ticket to this effect?
>
> Cheers
> Dan
>
>
> On Thu, 24 Aug 2017 at 10:24 Stephen Cameron 
> wrote:
>
> > I notice that the mandatory property 'red star' icon is appearing on the
> > ends of property labels almost everywhere, even if an object is made
> > read-only.
> >
> > I've not noticed it before in earlier versions. Any suggestions why?
> >
> > Thanks
> >
>


'red star' mandatory property icon (1.15.0 feature/issue?)

2017-08-24 Thread Stephen Cameron
I notice that the mandatory property 'red star' icon is appearing on the
ends of property labels almost everywhere, even if an object is made
read-only.

I've not noticed it before in earlier versions. Any suggestions why?

Thanks


Re: Can I make a specific class instance editable, all others not?

2017-08-24 Thread Stephen Cameron
Hi Dan,

I've used tenancies before to good effect to separate data by regions. In
this case I'll look to use them for different companies and then states
within companies (dreaming big!), your suggestion goes an extra step to
people within states within companies.

What I have done is to create a derived property which is a view-model of
the MyApplicationUser, this class is a conventional POJO, with public
getters and setters,  made read-only with @DomainObject(objectType =
"OneId.IndividualViewModel", nature = Nature.VIEW_MODEL, editing =
Editing.DISABLED).

Thanks all
Steve






On Thu, Aug 24, 2017 at 6:34 PM, Dan Haywood 
wrote:

> Hi Steve,
> As you point out, the user/role/permissions system of the security module
> is class-based, not instance-based.
>
> However, the security module also supports application tenancies.  So you
> could support these use case by defining an ApplicationTenancy for each
> user, and then associating their ApplicatoinUser with that same
> ApplicationTenancy.
>
> For example,
>
> ApplicationUser "bill" has associated ApplicationTenancy "/people/bill"
> ApplicationUser "mary" has associated ApplicationTenancy "/people/mary"
> ApplicationUser "superuser" has associated ApplicationTenancy "/"  (global)
>
> The out-of-the box ApplicationTenancyEvaluator would prevent bill from even
> seeing mary's user, and vice-versa, while "superuser" would be able to see
> and modify both.  However, you can provide a custom implementation of an
> evaluator that could do any other rules.
>
> One limitation of the security module is that ApplicationTenancy is an
> entity, so you will end up with these extra objects.  We've been discussing
> simply dropping this entity, so that a application tenancy path ("atPath")
> is simply a label.
>
> ~~
> An alternative approach would be to implement some sort of subscriber that
> would veto all edits for each user unless they are looking at their own
> object.  you can use the security module's MeService for that, I think (or
> Isis' UserService otherwise).
>
> HTH
> Dan
>
>
>
>
>
> On Thu, 24 Aug 2017 at 08:54 Stephen Cameron 
> wrote:
>
> > On Thu, Aug 24, 2017 at 4:17 PM, Kevin Meyer  wrote:
> >
> > > Hi Steve,
> > >
> > > Why not use the isis-addons security module to only authorise users to
> > > edit their own profile?
> > >
> >
> > Oh, apologies, that is what I am using, but I think that if you have
> > permission to edit your own profile you can edit anyones if you get
> access
> > to it. The editing permission is on that class.
> >
> > I am using the MyApplicationUser class to represent people in my domain
> > model, so that leads to the problem. But I want to have people self
> > register (which the security module provides) and then optionally be
> given
> > extra roles to enable them to do more than just edit their own profile.
> >
> >
> > > In the past, I have implemented such security directly in the domain
> > > objects by using the isVisible() and disabled() methods on actions (or
> > > class level, depending) and then working with the session username...
> > >
> >
> > If I could get a class level disabled to work that would be a solution,
> but
> > am now thinking a view-model approach is more flexible. I never make a
> > reference to a MyApplicationUser instance public (visible), and provide a
> > view-model of it instead. All except where I allow access to the current
> > users profile.
> >
> > >
> > > Cheers,
> > > Kevin
> > >
> > > On 24 August 2017 06:14:47 CEST, Stephen Cameron <
> > > steve.cameron...@gmail.com> wrote:
> > > >Hi,
> > > >
> > > >I have implemented and extended version of ApplicationUser class
> called
> > > >MyApplicationUser to allow users to add more information to their
> > > >'profile'
> > > >in my web-app. They self-enrol (via initial entry of an email address,
> > > >then
> > > >following a link in a email sent to that address [1] ) and then add
> > > >more
> > > >details once they've created a user account.
> > > >
> > > >I now make use of the class MyApplicationUser more widely in the
> > > >application but this leads to the problem that one user can modify the
> > > >profile of another. Using the security module we can make all classes,
> > > >instances of a class VIEWING or CHANGING. It must be the later

Re: Can I make a specific class instance editable, all others not?

2017-08-24 Thread Stephen Cameron
On Thu, Aug 24, 2017 at 4:17 PM, Kevin Meyer  wrote:

> Hi Steve,
>
> Why not use the isis-addons security module to only authorise users to
> edit their own profile?
>

Oh, apologies, that is what I am using, but I think that if you have
permission to edit your own profile you can edit anyones if you get access
to it. The editing permission is on that class.

I am using the MyApplicationUser class to represent people in my domain
model, so that leads to the problem. But I want to have people self
register (which the security module provides) and then optionally be given
extra roles to enable them to do more than just edit their own profile.


> In the past, I have implemented such security directly in the domain
> objects by using the isVisible() and disabled() methods on actions (or
> class level, depending) and then working with the session username...
>

If I could get a class level disabled to work that would be a solution, but
am now thinking a view-model approach is more flexible. I never make a
reference to a MyApplicationUser instance public (visible), and provide a
view-model of it instead. All except where I allow access to the current
users profile.

>
> Cheers,
> Kevin
>
> On 24 August 2017 06:14:47 CEST, Stephen Cameron <
> steve.cameron...@gmail.com> wrote:
> >Hi,
> >
> >I have implemented and extended version of ApplicationUser class called
> >MyApplicationUser to allow users to add more information to their
> >'profile'
> >in my web-app. They self-enrol (via initial entry of an email address,
> >then
> >following a link in a email sent to that address [1] ) and then add
> >more
> >details once they've created a user account.
> >
> >I now make use of the class MyApplicationUser more widely in the
> >application but this leads to the problem that one user can modify the
> >profile of another. Using the security module we can make all classes,
> >instances of a class VIEWING or CHANGING. It must be the later to be
> >able
> >to change their own record, but generally it should be VIEWING only. Is
> >there a way to achieve this.
> >
> >My alternative is to make use of the MyApplicationUser entity but to
> >display its property values as a read-only view-model when necessary,
> >that
> >is, as a derived property. At the moment, I am having some problems
> >with
> >this approach in terms of displaying collections of MyApplicationUser
> >as
> >collections (of more view models) in the view-model class.
> >
> >I was creating my view-model as a wrapper around a persistent entity,
> >it's
> >worked in the past but not working in this case, with some strange
> >effects,
> >like "Failed title". So setting actual properties in the view-model
> >class
> >(rather than making all getters call a getter of the wrapped object)
> >might
> >be necessary to take full advantage of session caching of view model
> >instances?
> >
> >I think using the view model approach might be the solution.
> >
> >Cheers
> >Steve
>
> --
> Sent from my Android device with K-9 Mail. Please excuse my brevity.


Can I make a specific class instance editable, all others not?

2017-08-23 Thread Stephen Cameron
Hi,

I have implemented and extended version of ApplicationUser class called
MyApplicationUser to allow users to add more information to their 'profile'
in my web-app. They self-enrol (via initial entry of an email address, then
following a link in a email sent to that address [1] ) and then add more
details once they've created a user account.

I now make use of the class MyApplicationUser more widely in the
application but this leads to the problem that one user can modify the
profile of another. Using the security module we can make all classes,
instances of a class VIEWING or CHANGING. It must be the later to be able
to change their own record, but generally it should be VIEWING only. Is
there a way to achieve this.

My alternative is to make use of the MyApplicationUser entity but to
display its property values as a read-only view-model when necessary, that
is, as a derived property. At the moment, I am having some problems with
this approach in terms of displaying collections of MyApplicationUser as
collections (of more view models) in the view-model class.

I was creating my view-model as a wrapper around a persistent entity, it's
worked in the past but not working in this case, with some strange effects,
like "Failed title". So setting actual properties in the view-model class
(rather than making all getters call a getter of the wrapped object) might
be necessary to take full advantage of session caching of view model
instances?

I think using the view model approach might be the solution.

Cheers
Steve


Re: caching value objects

2017-08-16 Thread Stephen Cameron
Hmm, I read that there are the autoCompleteRepository and
autoCompleteAction attributes for the @DomainObject annotation. I should be
making use of these! However, does this obviate the need for my
ClientIdentity class completely?

With a cached list of identity objects shared by all users maybe I can
avoid database queries completely and avoid the need to instanciate any of
the big linked class until a choice is made. The big class may be big in
the sense of having lots of children.

I note that DataNucleus uses identity classes for classes with a complex
primary key value, I've not gone there yet.





On Thu, Aug 17, 2017 at 3:41 PM, Stephen Cameron  wrote:

> Related to the discussion of value objects, they would seem to provide an
> opportunity to cache lists of such values in domain service 'repositories',
> (particularly if they are immutable and never deleted from a database?).
> Something like a list of suburbs that is of restricted size but used
> frequently would seem to be a good case for this.
>
> So my question is how best to do such caching?
>
> A similar caching question has arisen for me but not with value objects
> instead with 'identity' objects. I created such an identity class as a
> means of providing faster look-up of clients in a system. This is the most
> common task for the users: to find a person/client and read/change some
> aspect of their record. As the Client class is quite big, creating a list
> of all clients just to choose one of them was too slow. So, I created a
> 'ClientIdentity' class that has just the client id and the name of the
> client, the latter to present to the user via a choicesN method, and
> once that single ClientIdentity object has been chosen the related Client
> class is retrieved and used.
>
> I would seem that such identity objects would also be a good candidate for
> domain service caching.
>
> Just maybe this is not a good idea.
>
> Steve
>
>
>
>
>


Re: How to display value object

2017-08-16 Thread Stephen Cameron
Sorry, essentially the new ValueObject class is:

@DomainObject()
public class ValueObject {

public ValueObject(final String name, final String notes) {
setName(name);
setNotes(notes);
}

@javax.jdo.annotations.Column(allowsNull = "false", length = 40)
@Getter @Setter(AccessLevel.PRIVATE)
@Title(prepend = "Object: ")
private String name;

@javax.jdo.annotations.Column(allowsNull = "true", length = 4000)
@Getter @Setter(AccessLevel.PRIVATE)
private String notes;

But that its immutable (private setters) is not that important in the end
as its managed from a SimpleObject action and cannot be displayed via a
link. You might just guess its URL I suppose.



On Thu, Aug 17, 2017 at 2:56 PM, Stephen Cameron  wrote:

> Hi,
>
> In my hurried initial response to this question I suggested to create a
> value object with only getters. Isis will display such properties as read
> only, which is essentially what you are looking for. However, this won't
> work with DataNucleus if you are to persist it, but you can have public
> getters and private setters, which still works with DataNucleus.
>
> Trying this out with the simpleapp archetype, I created a second class
> 'ValueObject' (as a copy of the 'SimpleObject' class). This worked, but
> going one step further I made both getter and setter private and added a
> derived property so that the ValueObject will be displayed not as a link
> but as a String.
>
> So this was all that was needed in SimpleObject:
>
> @javax.jdo.annotations.Column(allowsNull = "true")
> @Getter(value=AccessLevel.PRIVATE) @Setter(value=AccessLevel.PRIVATE)
> private ValueObject valueObject;
>
> @javax.jdo.annotations.NotPersistent()
> public String getValueObjectAsString(){
> return getValueObject() != null ? getValueObject().toString() :
> null;
> }
>
> public SimpleObject updateValueObject(@ParameterLayout(named="Name")
> String name, @Parameter(optionality=Optionality.OPTIONAL)
> @ParameterLayout(named="Notes", multiLine=5) String notes){
> if(getValueObject() != null){
> ValueObject obj = getValueObject();
> setValueObject(null);
> SimpleObjectRepositoryService.deleteValueObject(obj);
> }
> setValueObject(SimpleObjectRepositoryService.createValueObject(name,
> notes));
> return this;
> }
>
> and:
>
> @javax.inject.Inject
> SimpleObjectRepository SimpleObjectRepositoryService;
>
> I also changed the SimpleObjectRepository to control the creation and
> deletion of both the SimpleObject and the ValueObject classes.
>
> Then in the SimpleObject.layout.xml I added:
>
> 
> Value Object
> 
> Sets the Value
> Object
> 
> 
>
> This all works very nicely to my mind, including the new inline updating
> of the ValueObject in Wicket Viewer in 1.15.0.
>
> I think this illustrates the gist of Kevin's reply. Regarding the need for
> distinct annotations for value objects, there may be arguments for not
> having a separate table for the persisting value object instances, but I'd
> be surprised if there is great benefits from that. DataNucleus does an
> outer join to find a SimpleObject and its ValueObject (if present), so that
> is quite efficient.
>
> So to me the main question is that raised by Kevin regarding shared (1-n)
> value objects and the need to manage these, adding a
> 'findOrCreateValueObject' method instead of the createValueObject would
> seem to be a simple answer for this. If the find part is effective then
> there is no need to delete any values ever.
>
> In terms of real world examples of the value of value objects, having a
> list of suburb and postcode value objects solved a range of data quality
> issues for me, preventing people from mis-spelling suburb names and getting
> many postcodes wrong. In that case though users browse the List of Suburb
> value objects and then the name and postcode of the chosen one are copied
> into the suburb and postcode properties of the address, meaning other
> systems looking at the address table see those values and don't have to do
> a join.
>
> Steve
>
>
>
> On Tue, Aug 15, 2017 at 7:55 PM, Kevin Meyer  wrote:
>
>> Hi Ekko,
>>
>> I believe Dan has answered the question that you asked. However I think it
>> is worth mentioning that (as I see it), Apache Isis does not treat the
>>

caching value objects

2017-08-16 Thread Stephen Cameron
Related to the discussion of value objects, they would seem to provide an
opportunity to cache lists of such values in domain service 'repositories',
(particularly if they are immutable and never deleted from a database?).
Something like a list of suburbs that is of restricted size but used
frequently would seem to be a good case for this.

So my question is how best to do such caching?

A similar caching question has arisen for me but not with value objects
instead with 'identity' objects. I created such an identity class as a
means of providing faster look-up of clients in a system. This is the most
common task for the users: to find a person/client and read/change some
aspect of their record. As the Client class is quite big, creating a list
of all clients just to choose one of them was too slow. So, I created a
'ClientIdentity' class that has just the client id and the name of the
client, the latter to present to the user via a choicesN method, and
once that single ClientIdentity object has been chosen the related Client
class is retrieved and used.

I would seem that such identity objects would also be a good candidate for
domain service caching.

Just maybe this is not a good idea.

Steve


Re: [ANN] Apache Isis version 1.15.0 Released

2017-08-16 Thread Stephen Cameron
It's excellent, my thanks to all those involved.

On Tue, Aug 15, 2017 at 5:50 PM, Johan Doornenbal 
wrote:

> Congrats Dan. Thank you for all your work!!
>
>
>
>
> On Mon, Aug 14, 2017 11:48 PM, Dan Haywood d...@haywood-associates.co.uk
> wrote:
> Thanks for the heads-up.
>
>
>
>
> The correct links are:
>
> -
>
> http://isis.apache.org/release-notes/release-notes.html#_
> release-notes_1.15.0
>
> -
>
> http://isis.apache.org/migration-notes/migration-notes.html#
> _migration-notes_1.14.0-to-1.15.0
>
>
>
>
>
>
>
> I'll update our release procedures so this doesn't happen next time.
>
>
>
>
> Thx
>
> DAn
>
>
>
>
>
>
>
>
>
>
> On Mon, 14 Aug 2017 at 22:46 Mariano Lahoz 
> wrote:
>
>
>
>
> Hello Dan, releases notes are not found when opening link.
>>
>
>
>>
>
>>
> On Mon, 14 Aug 2017 at 17:08 Dan Haywood 
>>
>
> wrote:
>>
>
>
>>
> > The Apache Isis team is pleased to announce the release of Apache Isis
>>
>
> > v1.15.0.
>>
>
> >
>>
>
> > New features in this release include:
>>
>
> > * inline prompts: the ability to edit a property or invoke an action
>>
>
> > (associated with a property)
>>
>
> > without requiring a modal dialog box.
>>
>
> > * a "hello world" archetype
>>
>
> > * upgrade of Apache Wicket from 6.x to 7.x.
>>
>
> > * allow applications and integration tests to be bootstrapped with less
>>
>
> > boilerplate
>>
>
> > * new metamodel validations for JAXB view models
>>
>
> > * rename isis-viewer-wicket artifacts to isis-core-viewer-wicket
>>
>
> > (for consistency with other core modules)
>>
>
> >
>>
>
> > Full release notes are available on the Apache Isis website at [1].
>>
>
> > Please also read the migration notes [2].
>>
>
> >
>>
>
> > You can access this release directly from the Maven central repo [3].
>>
>
> > Alternatively, or download the release and build it from source [4].
>>
>
> >
>>
>
> > Enjoy!
>>
>
> >
>>
>
> > --The Apache Isis team
>>
>
> >
>>
>
> > [1] http://isis.apache.org/release-notes.html#r1.15.0
>>
>
> > [2]
>>
>
> >
>>
>
> >
>>
>
> http://isis.apache.org/migration-notes.html#_migration-
>> notes_1.14.0-to-1.15.0
>>
>
> > [3] http://search.maven.org
>>
>
> > [4] http://isis.apache.org/downloads.html
>>
>
> >
>>
>
> --
>>
>
>
>>
> *Mariano Lahoz Administrador de sistemas*
>>
>
>


Re: How to display value object

2017-08-10 Thread Stephen Cameron
Hi Ekko, it's a user list where there may be some smart enough to offer
good advice (support), not sure I fall into that group, but my suggestion
would be that a value object only has getters, it's properties values are
set in a constructor and never change. If a property change is needed, that
implies a new instance and deletion of the old.

On Friday, August 11, 2017, 赵 敏  wrote:

> Hi support,
>
> I'm building project with Apache Isis,but I have some confusion.
>
> In DDD,I know there have two objects,entity & value object.
>
> When I plan a DomainObject,eg. Customer, a entity object. I think one
> Customer may be have many value objects,for example contact information or
> other value objects.
>
> So I plan a value object called CustomerContactInformation,may be have
> other value objects.
>
> For the database,a entity object and its value objects may be persist to
> diff tables.
>
> I think CustomerContactInformation just a value object,it can not have any
> actions and should be maintained by Customer.
>
> In fact,Customer-CustomerContactInfomation definitely is 1-1.
>
> Now,how should I display CustomerContactInformation in Customer's layout
> and be able to edit CustomerContactInformation?
>
> Any ideas?
>
> Ekko
>
>


overriding EmailServiceDefault

2017-08-07 Thread Stephen Cameron
Hi,

I'm configuring an Apache Isis app on Amazon EC2 and making use of the AWS
Simple Email Service (SES) SMTP server. There is a problem to make use of
the Isis EmailServiceDefault class as it doesn't allow you to set a
username for authentication this is not an email address, it assumes the
'senderEmailAddress' and the SMTP account username are the same. I think
this needs to be changed and will add a JIRA ticket to that effect.

However, it should be easy to add another EmailService implementation and I
have been trying to do this according to the documentation [1] but it
always uses the EmailServiceDefault class not my alternative implementation
as below.

I am using Apache Isis 1.14.0

Regards

[1]
http://isis.apache.org/guides/rgsvc/rgsvc.html#__rgsvc_intro_overriding-the-services


package domainapp.modules.oneid.dom.impl;


/*
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *
 *http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing,
 *  software distributed under the License is distributed on an
 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *  KIND, either express or implied.  See the License for the
 *  specific language governing permissions and limitations
 *  under the License.
 */

import java.util.Collections;
import java.util.List;
import java.util.Properties;

import javax.activation.DataSource;
import javax.annotation.PostConstruct;

import com.google.common.base.Strings;

import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.ImageHtmlEmail;
import org.apache.commons.mail.resolver.DataSourceClassPathResolver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.annotation.DomainServiceLayout;
import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.services.email.EmailService;
import org.apache.isis.core.commons.config.IsisConfiguration;

/**
 * A service that sends email notifications when specific events occur
 */
//@com.google.inject.Singleton // necessary because is registered in and
injected by google guice
@DomainService(
nature = NatureOfService.DOMAIN
)
@DomainServiceLayout(
menuOrder = "1"
)
public class MyEmailService implements EmailService {

private static final Logger LOG =
LoggerFactory.getLogger(MyEmailService.class);

public static class EmailServiceException extends RuntimeException {
static final long serialVersionUID = 1L;
public EmailServiceException(final EmailException cause) {
super(cause);
}
}

//region > constants
private static final String ISIS_SERVICE_EMAIL_SENDER_ADDRESS =
"isis.service.email.sender.address";
private static final String ISIS_SERVICE_EMAIL_SENDER_PASSWORD =
"isis.service.email.sender.password";

private static final String ISIS_SERVICE_EMAIL_SENDER_HOSTNAME =
"isis.service.email.sender.hostname";
private static final String ISIS_SERVICE_EMAIL_SENDER_HOSTNAME_DEFAULT
= "smtp.gmail.com";

private static final String ISIS_SERVICE_EMAIL_PORT =
"isis.service.email.port";
private static final int ISIS_SERVICE_EMAIL_PORT_DEFAULT = 587;

private static final String ISIS_SERVICE_EMAIL_TLS_ENABLED =
"isis.service.email.tls.enabled";
private static final boolean ISIS_SERVICE_EMAIL_TLS_ENABLED_DEFAULT =
true;

private static final String ISIS_SERVICE_EMAIL_THROW_EXCEPTION_ON_FAIL
= "isis.service.email.throwExceptionOnFail";
private static final boolean
ISIS_SERVICE_EMAIL_THROW_EXCEPTION_ON_FAIL_DEFAULT = true;

private static final String ISIS_SERVICE_EMAIL_SOCKET_TIMEOUT =
"isis.service.email.socketTimeout";
private static final int ISIS_SERVICE_EMAIL_SOCKET_TIMEOUT_DEFAULT =
2000;

private static final String
ISIS_SERVICE_EMAIL_SOCKET_CONNECTION_TIMEOUT =
"isis.service.email.socketConnectionTimeout";
private static final int
ISIS_SERVICE_EMAIL_SOCKET_CONNECTION_TIMEOUT_DEFAULT = 2000;

private static final String ISIS_SERVICE_EMAIL_OVERRIDE_TO = "
isis.service.email.override.to";
private static final String ISIS_SERVICE_EMAIL_OVERRIDE_CC = "
isis.service.email.override.cc";
private static final String ISIS_SERVICE_EMAIL_OVERRIDE_BCC =
"isis.service.email.override.bcc";

//endregion

//region > init
private boolean initialized;

/**
 * Loads responsive email templates borrowed from
http://zurb.com/ink/te

maven build issue in security module

2017-07-24 Thread Stephen Cameron
Hi,

I am getting the following error messages when I build my own module that
uses the Apache Isis secuirity module.

[INFO] introspecting
org.apache.isis.core.metamodel.services.jdosupport.Persistable_downloadJdoMetadata:
class-level details
[INFO] did *not* find config properties to use JNDI datasource; will use
JDBC
[INFO] introspecting org.apache.isis.applib.services.iactn.Interaction:
class-level details
[INFO] calling @PostConstruct on all domain services
[WARNING] NOT configured
[ERROR]
[ERROR]
[ERROR]
[ERROR] @DomainObject annotation on
org.isisaddons.module.security.dom.role.ApplicationRole specifies unknown
repository
'org.isisaddons.module.security.dom.role.ApplicationRoleRepository'
[ERROR] @DomainObject annotation on
org.isisaddons.module.security.dom.user.ApplicationUser specifies unknown
repository
'org.isisaddons.module.security.dom.user.ApplicationUserRepository'
[ERROR]
[ERROR]
[ERROR]
[INFO] calling @PreDestroy on all domain services
[INFO] shutting down
org.apache.isis.core.metamodel.specloader.SpecificationLoader@7b795db7
[INFO]

[INFO] BUILD FAILURE
[INFO]

[INFO] Total time: 28.171 s
[INFO] Finished at: 2017-07-24T17:47:03+10:00
[INFO] Final Memory: 36M/175M
[INFO]


It seems the error message is incorrect as the ApplicationRoleRepository
and ApplicationUserRepository classes are present and marked as being
repositories.

In my module I have implemented an extension of ApplicationUser, maybe this
is a clue to what might be going wrong.  I cannot share the project at this
stage.

Of courese the Role and User classes are to be found in the same package as
their respective repositories in the security module.

Any ideas?

Steve


Re: persistent metamodel validation error

2017-07-04 Thread Stephen Cameron
@Discriminator needed a value="" present

On Tue, Jul 4, 2017 at 10:17 PM, Stephen Cameron  wrote:

> Hi all,
>
> I am getting a metamodel validation error on the following class and
> cannot see a problem. I removed the same error message for multiple classes
> by adding a schema  param to @PersistenceCapable(), but for this class the
> message refuses to go.
>
> I'll debug it tomorrow evening, but maybe someone else has seen this.
>
>  ISIS METAMODEL
> VALIDATION ERRORS ##
> ##
>
> au.com.scds.obatchi.dom.base.Test: the object type must be specified
> explicitly ('isis.reflector.validator.explicitObjectType' config
> property).  Defaulting the object type from the package/class/package name
> can lead to data migration issues for apps deployed to production (if the
> class is subsequently refactored).  Use @Discriminator,
> @DomainObject(objectType=...) or @PersistenceCapable(schema=...) to
> specify explicitly.
>
> Please inspect the above messages and correct your domain model.
>
>  ISIS METAMODEL
> VALIDATION ERRORS ##
> ##
>
>
> package au.com.scds.obatchi.dom.base;
>
> import javax.jdo.annotations.Column;
> import javax.jdo.annotations.Discriminator;
> import javax.jdo.annotations.IdentityType;
> import javax.jdo.annotations.Inheritance;
> import javax.jdo.annotations.InheritanceStrategy;
> import javax.jdo.annotations.PersistenceCapable;
> import org.apache.isis.applib.annotation.DomainObject;
>
>
> @DomainObject(objectType="Test")
> @PersistenceCapable(identityType = IdentityType.DATASTORE,
> schema="obatchi")
> @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
> @Discriminator(column="discriminator")
> public class Test {
>
> //@XmlElement(name = "test-name", required = true)
> @Column(allowsNull = "false")
> protected String testName;
>
> /**
>  * Gets the value of the testName property.
>  *
>  * @return possible object is {@link String }
>  *
>  */
> public String getTestName() {
> return testName;
> }
>
> /**
>  * Sets the value of the testName property.
>  *
>  * @param value
>  *allowed object is {@link String }
>  *
>  */
> public void setTestName(String value) {
> this.testName = value;
> }
>
> }
>


persistent metamodel validation error

2017-07-04 Thread Stephen Cameron
Hi all,

I am getting a metamodel validation error on the following class and cannot
see a problem. I removed the same error message for multiple classes by
adding a schema  param to @PersistenceCapable(), but for this class the
message refuses to go.

I'll debug it tomorrow evening, but maybe someone else has seen this.

 ISIS METAMODEL VALIDATION
ERRORS 

au.com.scds.obatchi.dom.base.Test: the object type must be specified
explicitly ('isis.reflector.validator.explicitObjectType' config
property).  Defaulting the object type from the package/class/package name
can lead to data migration issues for apps deployed to production (if the
class is subsequently refactored).  Use @Discriminator,
@DomainObject(objectType=...) or @PersistenceCapable(schema=...) to specify
explicitly.

Please inspect the above messages and correct your domain model.

 ISIS METAMODEL VALIDATION
ERRORS 


package au.com.scds.obatchi.dom.base;

import javax.jdo.annotations.Column;
import javax.jdo.annotations.Discriminator;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.Inheritance;
import javax.jdo.annotations.InheritanceStrategy;
import javax.jdo.annotations.PersistenceCapable;
import org.apache.isis.applib.annotation.DomainObject;


@DomainObject(objectType="Test")
@PersistenceCapable(identityType = IdentityType.DATASTORE, schema="obatchi")
@Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
@Discriminator(column="discriminator")
public class Test {

//@XmlElement(name = "test-name", required = true)
@Column(allowsNull = "false")
protected String testName;

/**
 * Gets the value of the testName property.
 *
 * @return possible object is {@link String }
 *
 */
public String getTestName() {
return testName;
}

/**
 * Sets the value of the testName property.
 *
 * @param value
 *allowed object is {@link String }
 *
 */
public void setTestName(String value) {
this.testName = value;
}

}


Re: security module issue with 1.14.0

2017-06-27 Thread Stephen Cameron
It was due to an interaction with my layout.xml file, where I had added a
dummy property to avoid a schema validation error.





There as a WARN message in the logs about it, that I ignored, that should
have been a place to start looking.



On Tue, Jun 27, 2017 at 9:21 PM, Stephen Cameron  wrote:

>  I now have a class that does not give the error, so something I have done
> 'differently'.
>
> On Mon, Jun 26, 2017 at 10:42 PM, Stephen Cameron <
> steve.cameron...@gmail.com> wrote:
>
>> The routine below doesn't find a cached ObjectSpecification with
>> objectSpecId = "oneid.Account" though it seems to find it successfully
>> initially. So maybe the cache is being updated via the security module?
>>
>> @Programmatic
>> public ObjectSpecification lookupBySpecId(ObjectSpecId objectSpecId) {
>> final ObjectSpecification objectSpecification =
>> cache.getByObjectType(objectSpecId);
>> if(objectSpecification == null) {
>> // fallback
>> return loadSpecification(objectSpecId.asString());
>> }
>> return objectSpecification;
>> }
>>
>> On Mon, Jun 26, 2017 at 10:11 PM, Stephen Cameron <
>> steve.cameron...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I've created a demo app with Isis 1.14.0 and am adding the security
>>> module, I get an exception as below that seems to be consistent whatever
>>> the permissions of the users role are:
>>>
>>> It seems a little strange that the  SpecificationLoader.loadSpecification()
>>> method is being passed a class 'objectType' of "oneid.Account" and not the
>>> full class name.
>>>
>>> I'll investigate further tomorrow, but I don' think I have forgotten
>>> anything in the config of the module.
>>>
>>> Caused by: org.apache.isis.core.commons.exceptions.IsisException: No
>>> such class available: oneid.Account
>>> at org.apache.isis.core.metamodel.specloader.SpecificationLoade
>>> r.loadSpecification(SpecificationLoader.java:289)
>>> at org.apache.isis.core.metamodel.specloader.SpecificationLoade
>>> r.lookupBySpecId(SpecificationLoader.java:515)
>>> at org.apache.isis.viewer.wicket.model.models.EntityModel.getSp
>>> ecificationFor(EntityModel.java:317)
>>> at org.apache.isis.viewer.wicket.model.models.EntityModel.getTy
>>> peOfSpecification(EntityModel.java:313)
>>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.tabs.
>>> TabGroupPanel.tabsFor(TabGroupPanel.java:64)
>>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.tabs.
>>> TabGroupPanel.(TabGroupPanel.java:89)
>>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.col.C
>>> ol.buildGui(Col.java:212)
>>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.col.C
>>> ol.(Col.java:79)
>>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.row.R
>>> ow.buildGui(Row.java:69)
>>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.row.R
>>> ow.(Row.java:54)
>>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.BS3Gr
>>> idPanel.buildGui(BS3GridPanel.java:56)
>>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.BS3Gr
>>> idPanel.(BS3GridPanel.java:42)
>>> at org.apache.isis.viewer.wicket.ui.components.entity.selector.
>>> links.EntityLinksSelectorPanelFactory.createComponent(Entity
>>> LinksSelectorPanelFactory.java:57)
>>> at org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract.cr
>>> eateComponent(ComponentFactoryAbstract.java:98)
>>> at org.apache.isis.viewer.wicket.viewer.registries.components.C
>>> omponentFactoryRegistryDefault.createComponent(ComponentFact
>>> oryRegistryDefault.java:121)
>>> at org.apache.isis.viewer.wicket.viewer.registries.components.C
>>> omponentFactoryRegistryDefault.addOrReplaceComponent(Compone
>>> ntFactoryRegistryDefault.java:106)
>>> at org.apache.isis.viewer.wicket.ui.pages.PageAbstract.addCompo
>>> nent(PageAbstract.java:346)
>>> at org.apache.isis.viewer.wicket.ui.pages.PageAbstract.addChild
>>> Components(PageAbstract.java:341)
>>> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.bui
>>> ldPage(EntityPage.java:195)
>>> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.>> it>(EntityPage.java:114)
>>> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.>> it>(EntityPage.java:82)
>>> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.>> it>(EntityPage.java:94)
>>> at org.apache.isis.viewer.wicket.ui.actionresponse.ActionResult
>>> ResponseType$9.call(ActionResultResponseType.java:159)
>>> at org.apache.isis.viewer.wicket.ui.actionresponse.ActionResult
>>> ResponseType$9.call(ActionResultResponseType.java:157)
>>> at org.apache.isis.core.metamodel.adapter.mgr.AdapterManager$Co
>>> ncurrencyChecking.executeWithConcurrencyCheckingDisabled(Ada
>>> pterManager.java:88)
>>>
>>
>>
>


Re: security module issue with 1.14.0

2017-06-27 Thread Stephen Cameron
 I now have a class that does not give the error, so something I have done
'differently'.

On Mon, Jun 26, 2017 at 10:42 PM, Stephen Cameron <
steve.cameron...@gmail.com> wrote:

> The routine below doesn't find a cached ObjectSpecification with
> objectSpecId = "oneid.Account" though it seems to find it successfully
> initially. So maybe the cache is being updated via the security module?
>
> @Programmatic
> public ObjectSpecification lookupBySpecId(ObjectSpecId objectSpecId) {
> final ObjectSpecification objectSpecification =
> cache.getByObjectType(objectSpecId);
> if(objectSpecification == null) {
> // fallback
> return loadSpecification(objectSpecId.asString());
> }
> return objectSpecification;
> }
>
> On Mon, Jun 26, 2017 at 10:11 PM, Stephen Cameron <
> steve.cameron...@gmail.com> wrote:
>
>> Hi,
>>
>> I've created a demo app with Isis 1.14.0 and am adding the security
>> module, I get an exception as below that seems to be consistent whatever
>> the permissions of the users role are:
>>
>> It seems a little strange that the  SpecificationLoader.loadSpecification()
>> method is being passed a class 'objectType' of "oneid.Account" and not the
>> full class name.
>>
>> I'll investigate further tomorrow, but I don' think I have forgotten
>> anything in the config of the module.
>>
>> Caused by: org.apache.isis.core.commons.exceptions.IsisException: No
>> such class available: oneid.Account
>> at org.apache.isis.core.metamodel.specloader.SpecificationLoade
>> r.loadSpecification(SpecificationLoader.java:289)
>> at org.apache.isis.core.metamodel.specloader.SpecificationLoade
>> r.lookupBySpecId(SpecificationLoader.java:515)
>> at org.apache.isis.viewer.wicket.model.models.EntityModel.getSp
>> ecificationFor(EntityModel.java:317)
>> at org.apache.isis.viewer.wicket.model.models.EntityModel.getTy
>> peOfSpecification(EntityModel.java:313)
>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.tabs.
>> TabGroupPanel.tabsFor(TabGroupPanel.java:64)
>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.tabs.
>> TabGroupPanel.(TabGroupPanel.java:89)
>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.col.C
>> ol.buildGui(Col.java:212)
>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.col.C
>> ol.(Col.java:79)
>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.row.R
>> ow.buildGui(Row.java:69)
>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.row.R
>> ow.(Row.java:54)
>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.BS3Gr
>> idPanel.buildGui(BS3GridPanel.java:56)
>> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.BS3Gr
>> idPanel.(BS3GridPanel.java:42)
>> at org.apache.isis.viewer.wicket.ui.components.entity.selector.
>> links.EntityLinksSelectorPanelFactory.createComponent(Entity
>> LinksSelectorPanelFactory.java:57)
>> at org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract.cr
>> eateComponent(ComponentFactoryAbstract.java:98)
>> at org.apache.isis.viewer.wicket.viewer.registries.components.C
>> omponentFactoryRegistryDefault.createComponent(ComponentFact
>> oryRegistryDefault.java:121)
>> at org.apache.isis.viewer.wicket.viewer.registries.components.C
>> omponentFactoryRegistryDefault.addOrReplaceComponent(Compone
>> ntFactoryRegistryDefault.java:106)
>> at org.apache.isis.viewer.wicket.ui.pages.PageAbstract.addCompo
>> nent(PageAbstract.java:346)
>> at org.apache.isis.viewer.wicket.ui.pages.PageAbstract.addChild
>> Components(PageAbstract.java:341)
>> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.bui
>> ldPage(EntityPage.java:195)
>> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.> it>(EntityPage.java:114)
>> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.> it>(EntityPage.java:82)
>> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.> it>(EntityPage.java:94)
>> at org.apache.isis.viewer.wicket.ui.actionresponse.ActionResult
>> ResponseType$9.call(ActionResultResponseType.java:159)
>> at org.apache.isis.viewer.wicket.ui.actionresponse.ActionResult
>> ResponseType$9.call(ActionResultResponseType.java:157)
>> at org.apache.isis.core.metamodel.adapter.mgr.AdapterManager$Co
>> ncurrencyChecking.executeWithConcurrencyCheckingDisabled(
>> AdapterManager.java:88)
>>
>
>


Re: security module issue with 1.14.0

2017-06-26 Thread Stephen Cameron
The routine below doesn't find a cached ObjectSpecification with
objectSpecId = "oneid.Account" though it seems to find it successfully
initially. So maybe the cache is being updated via the security module?

@Programmatic
public ObjectSpecification lookupBySpecId(ObjectSpecId objectSpecId) {
final ObjectSpecification objectSpecification =
cache.getByObjectType(objectSpecId);
if(objectSpecification == null) {
// fallback
return loadSpecification(objectSpecId.asString());
}
return objectSpecification;
}

On Mon, Jun 26, 2017 at 10:11 PM, Stephen Cameron <
steve.cameron...@gmail.com> wrote:

> Hi,
>
> I've created a demo app with Isis 1.14.0 and am adding the security
> module, I get an exception as below that seems to be consistent whatever
> the permissions of the users role are:
>
> It seems a little strange that the  SpecificationLoader.loadSpecification()
> method is being passed a class 'objectType' of "oneid.Account" and not the
> full class name.
>
> I'll investigate further tomorrow, but I don' think I have forgotten
> anything in the config of the module.
>
> Caused by: org.apache.isis.core.commons.exceptions.IsisException: No such
> class available: oneid.Account
> at org.apache.isis.core.metamodel.specloader.SpecificationLoader.
> loadSpecification(SpecificationLoader.java:289)
> at org.apache.isis.core.metamodel.specloader.SpecificationLoader.
> lookupBySpecId(SpecificationLoader.java:515)
> at org.apache.isis.viewer.wicket.model.models.EntityModel.
> getSpecificationFor(EntityModel.java:317)
> at org.apache.isis.viewer.wicket.model.models.EntityModel.
> getTypeOfSpecification(EntityModel.java:313)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.tabs.
> TabGroupPanel.tabsFor(TabGroupPanel.java:64)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.tabs.
> TabGroupPanel.(TabGroupPanel.java:89)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.col.
> Col.buildGui(Col.java:212)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.col.
> Col.(Col.java:79)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.row.
> Row.buildGui(Row.java:69)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.row.
> Row.(Row.java:54)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.
> BS3GridPanel.buildGui(BS3GridPanel.java:56)
> at org.apache.isis.viewer.wicket.ui.components.layout.bs3.
> BS3GridPanel.(BS3GridPanel.java:42)
> at org.apache.isis.viewer.wicket.ui.components.entity.selector.links.
> EntityLinksSelectorPanelFactory.createComponent(
> EntityLinksSelectorPanelFactory.java:57)
> at org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract.
> createComponent(ComponentFactoryAbstract.java:98)
> at org.apache.isis.viewer.wicket.viewer.registries.components.
> ComponentFactoryRegistryDefault.createComponent(
> ComponentFactoryRegistryDefault.java:121)
> at org.apache.isis.viewer.wicket.viewer.registries.components.
> ComponentFactoryRegistryDefault.addOrReplaceComponent(
> ComponentFactoryRegistryDefault.java:106)
> at org.apache.isis.viewer.wicket.ui.pages.PageAbstract.
> addComponent(PageAbstract.java:346)
> at org.apache.isis.viewer.wicket.ui.pages.PageAbstract.
> addChildComponents(PageAbstract.java:341)
> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.
> buildPage(EntityPage.java:195)
> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.<
> init>(EntityPage.java:114)
> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.<
> init>(EntityPage.java:82)
> at org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.<
> init>(EntityPage.java:94)
> at org.apache.isis.viewer.wicket.ui.actionresponse.
> ActionResultResponseType$9.call(ActionResultResponseType.java:159)
> at org.apache.isis.viewer.wicket.ui.actionresponse.
> ActionResultResponseType$9.call(ActionResultResponseType.java:157)
> at org.apache.isis.core.metamodel.adapter.mgr.AdapterManager$
> ConcurrencyChecking.executeWithConcurrencyChecking
> Disabled(AdapterManager.java:88)
>


security module issue with 1.14.0

2017-06-26 Thread Stephen Cameron
Hi,

I've created a demo app with Isis 1.14.0 and am adding the security module,
I get an exception as below that seems to be consistent whatever the
permissions of the users role are:

It seems a little strange that the  SpecificationLoader.loadSpecification()
method is being passed a class 'objectType' of "oneid.Account" and not the
full class name.

I'll investigate further tomorrow, but I don' think I have forgotten
anything in the config of the module.

Caused by: org.apache.isis.core.commons.exceptions.IsisException: No such
class available: oneid.Account
at
org.apache.isis.core.metamodel.specloader.SpecificationLoader.loadSpecification(SpecificationLoader.java:289)
at
org.apache.isis.core.metamodel.specloader.SpecificationLoader.lookupBySpecId(SpecificationLoader.java:515)
at
org.apache.isis.viewer.wicket.model.models.EntityModel.getSpecificationFor(EntityModel.java:317)
at
org.apache.isis.viewer.wicket.model.models.EntityModel.getTypeOfSpecification(EntityModel.java:313)
at
org.apache.isis.viewer.wicket.ui.components.layout.bs3.tabs.TabGroupPanel.tabsFor(TabGroupPanel.java:64)
at
org.apache.isis.viewer.wicket.ui.components.layout.bs3.tabs.TabGroupPanel.(TabGroupPanel.java:89)
at
org.apache.isis.viewer.wicket.ui.components.layout.bs3.col.Col.buildGui(Col.java:212)
at
org.apache.isis.viewer.wicket.ui.components.layout.bs3.col.Col.(Col.java:79)
at
org.apache.isis.viewer.wicket.ui.components.layout.bs3.row.Row.buildGui(Row.java:69)
at
org.apache.isis.viewer.wicket.ui.components.layout.bs3.row.Row.(Row.java:54)
at
org.apache.isis.viewer.wicket.ui.components.layout.bs3.BS3GridPanel.buildGui(BS3GridPanel.java:56)
at
org.apache.isis.viewer.wicket.ui.components.layout.bs3.BS3GridPanel.(BS3GridPanel.java:42)
at
org.apache.isis.viewer.wicket.ui.components.entity.selector.links.EntityLinksSelectorPanelFactory.createComponent(EntityLinksSelectorPanelFactory.java:57)
at
org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract.createComponent(ComponentFactoryAbstract.java:98)
at
org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault.createComponent(ComponentFactoryRegistryDefault.java:121)
at
org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault.addOrReplaceComponent(ComponentFactoryRegistryDefault.java:106)
at
org.apache.isis.viewer.wicket.ui.pages.PageAbstract.addComponent(PageAbstract.java:346)
at
org.apache.isis.viewer.wicket.ui.pages.PageAbstract.addChildComponents(PageAbstract.java:341)
at
org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.buildPage(EntityPage.java:195)
at
org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.(EntityPage.java:114)
at
org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.(EntityPage.java:82)
at
org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage.(EntityPage.java:94)
at
org.apache.isis.viewer.wicket.ui.actionresponse.ActionResultResponseType$9.call(ActionResultResponseType.java:159)
at
org.apache.isis.viewer.wicket.ui.actionresponse.ActionResultResponseType$9.call(ActionResultResponseType.java:157)
at
org.apache.isis.core.metamodel.adapter.mgr.AdapterManager$ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(AdapterManager.java:88)


Re: Transcribed IsisCon 2017 write-up

2017-06-22 Thread Stephen Cameron
Hi Patrick
Thanks for the response, see answers & thoughts below

On Tue, Jun 20, 2017 at 1:27 AM, Patrick Pliessnig 
wrote:

> Hi, my comments are below.
> Patrick
>
> Am 18.06.2017 um 14:20 schrieb Stephen Cameron:
>
>> Hi All,
>>
>> I'd like to make some kind of a contribution to this discussion, though I
>> agree with most of what I see written. But I'd also like to be a "devils
>> advocate" a little too.
>>
>> I'm interested to get more work with Apache Isis, I have one live
>> application with a small group of users (about 10) who enjoy using it and
>> its been very reliable now for about 6 months. I also have a personal
>> project that I am developing as well,as time allows, one that I'm trying
>> to
>> use best-practices on, well making use of what I learned on the first
>> project.
>>
>> In regards to marketing of Apache Isis, to explain my thinking i'll first
>> state that to me IT seems to me both fashion driven and conservative at
>> the
>> same time.
>>
>> Fashion driven in that waves of what appears new cycle through repeatedly,
>> are latched onto by the big players - when it suites their ends, and then
>> get diluted as the novelty is duplicated or incorporated into the
>> establised encumbent systems or languages.
>>
> I would say the fashion you describe is a part of conservatism as it is
> played out only within the context of the big player as a supplier of
> technology: "there is a good reason that my supplier ist big. One of the
> reasons is that he moves forward and is smart enough to integrate new
> technologies for my benefit. Why should I change it?"
> The marketing value in this case is "Size".
>
> Agree

>
>> Conservative in that major change such as using an new application
>> framework is expensive and has risks, and very few established businesses
>> are interested in leading technically, that is unless their business model
>> is competition based on technology. I think of something like SAP's ERP
>> systems as the purchaser organisation conforming to the SAP domain model,
>> so the opposite of being interested in using DDD and for many businesses
>> it
>> makes sense (despite the cost) to go this way.
>>
>
> I agree: established business (not in the technology domain) normaly have
> "a running horse". At least the IT-Management thinks so.
>
>
>> Also conservative in that what comes to be a dominant 'paradigm' in
>> open-source software isn't necessarily the technically most advanced,
>> rather its what satisfies a need at a specific time and then becomes
>> well-known and rapidly improved too, I am thinking of numerous PHP based
>> things, more recently AngularJS. Once established its very hard to
>> displace.
>>
>
> I agree: conservative in paradigm too. one of the reasons is
> responsibility:
> "If my project fails and I use dominant paradigm, I can blame the paradigm.
> If my project fails and I use exoctic paradigm, others will blame me for
> having gone a risky way."
>
>
>> So I am leaning more towards the idea of Apache Isis marketing being
>> targeted mostly at a technical audience, maybe even at a very technical
>> one, that this is the best means for Apache Isis to grab a little "slice
>> of
>> the action" and as a result to prosper in the long-term. I agree 100% with
>> its strengths, as have been described, being in a complex domain app
>> scenario, but also that there are just so many good alternatives being use
>> for the less complex (but maybe nicer looking) things, and many developers
>> competing for the work.
>>
> I don't understand your conclusion to target a (very) technical audience.
>

I'm basing this on there being a kind of developer that might be willing to
give Apache Isis a go for a project, first that they are keen on
open-source, but also that they like the philosophy of Apache Isis too I
think. If individual people are complaining that it doesn't use JPA and
have an Angular client I suspect that they are not spending the time to
understand what of value it does provide. There is something called a SWOT
analysis (Strengths, Weaknesses, Opportunities, Threats), so they are
focused on the perceved weaknesses and not the real strengths.

For me there was (is) a learning curve, I came to Isis after reading the
Naked Objects book (I recommend getting a copy, even for its production
values alone, kids might even enjoy the pictures) and then Dan's book too.
So I was convinced by those and keen to give Isis a go, and persist with
the learn

Re: Transcribed IsisCon 2017 write-up

2017-06-18 Thread Stephen Cameron
Hi All,

I'd like to make some kind of a contribution to this discussion, though I
agree with most of what I see written. But I'd also like to be a "devils
advocate" a little too.

I'm interested to get more work with Apache Isis, I have one live
application with a small group of users (about 10) who enjoy using it and
its been very reliable now for about 6 months. I also have a personal
project that I am developing as well,as time allows, one that I'm trying to
use best-practices on, well making use of what I learned on the first
project.

In regards to marketing of Apache Isis, to explain my thinking i'll first
state that to me IT seems to me both fashion driven and conservative at the
same time.

Fashion driven in that waves of what appears new cycle through repeatedly,
are latched onto by the big players - when it suites their ends, and then
get diluted as the novelty is duplicated or incorporated into the
establised encumbent systems or languages.

Conservative in that major change such as using an new application
framework is expensive and has risks, and very few established businesses
are interested in leading technically, that is unless their business model
is competition based on technology. I think of something like SAP's ERP
systems as the purchaser organisation conforming to the SAP domain model,
so the opposite of being interested in using DDD and for many businesses it
makes sense (despite the cost) to go this way.

Also conservative in that what comes to be a dominant 'paradigm' in
open-source software isn't necessarily the technically most advanced,
rather its what satisfies a need at a specific time and then becomes
well-known and rapidly improved too, I am thinking of numerous PHP based
things, more recently AngularJS. Once established its very hard to displace.

So I am leaning more towards the idea of Apache Isis marketing being
targeted mostly at a technical audience, maybe even at a very technical
one, that this is the best means for Apache Isis to grab a little "slice of
the action" and as a result to prosper in the long-term. I agree 100% with
its strengths, as have been described, being in a complex domain app
scenario, but also that there are just so many good alternatives being use
for the less complex (but maybe nicer looking) things, and many developers
competing for the work.

My vision is essentially an enhanced version of what I see currently exists
in the project, that there are now very competent programmers (I am not in
that league) doing a few very complex projects and the framework is
progressively being improved within in a feed-back loop, something is
needed someone (usually Dan) does it essentially. The way to make this more
sustainable is for more such projects to get going (I hope my project can
be one of them eventually).

So, 3 things seem desirable, (1) get some more good (complex) projects
started with Apache Isis, (2) try to stop projects for which Apache Isis is
not a good fit being started and taking time on the mailing list and
potentially failing too (3) seeking feedback on why Apache Isis was not
chosen when it potentially would have been a good fit. I can think of a few
ideas with regards to (1),  (2) and (3) are maybe another email.

Getting some more good projects started

My strategy has been to look for potential clients that will benefit from
complex custom (or customised) software and to target them. I've not been
very successful in this so far I have to admit, I attribute this in part to
my own sales ability, but also to my location in Tasmania which doesn't
have alot of head-offices where CTOs are generally. located. However, there
are a few industries that are growing here and I'm now seeking  small but
growing firms in those sectors (food and maybe tourism).

One major sector I have to ignore is government, they are both very
conservative and very unwilling, despite their rhetoric, to give something
new that doesn't have a major player behind it a chance. I once did a
tender proposal that was priced at half the winning bid, it was thought too
risky an approach to consider. I'd have another go with Apache Isis but
only if the application was a very good fit for Apache Isis and those are
only likely to be Federal projects out of Canberra. I have to be honest and
say at 55 my energy to go looking there is not very high but does seem to
me that government projects are often going to be good ones for Apache Isis
(maybe if I find one here I can call on a pool of talent overseas?)

The other scenario that seems to make sense is for a small software house
to use Apache Isis as the basis of a system that is sold, as I understand,
the way its been used by Oscar Bou's group.

So this approach is not based on selling Apache Isis features, but on me
leveraging them to advantage in supplying a service to my potential
clients. I just tend to say I use Java because I can utilise some good
open-source frameworks as a base or incorporate libraries in when needed

buidling simpleapp 1.14.0 war with new module

2017-06-08 Thread Stephen Cameron
Hi,

I am using the 1.14.0 SimpleApp Maven Archetype for the first time. I've
added a new module project as a clone of module-simple, but although that
new one gets listed as a dependency for the webapp (via application), it
doesn't get added to the war file. Any ideas why?

Thanks


Re: IsisCon 2017: Welcome Party / Video Testimonals

2017-06-08 Thread Stephen Cameron
I'll get to watch the videos. :)

On Thu, Jun 8, 2017 at 5:33 PM, Jeroen van der Wal 
wrote:

> We miss you too Stephen :-)
>
> On 7 June 2017 at 22:41, Stephen Cameron 
> wrote:
>
> > Hope there are few wrong people, key people is probably your meaning.
> Have
> > a good conf. Cheers
> >
> > On Tuesday, June 6, 2017, Jeroen van der Wal 
> wrote:
> >
> > > Dear all,
> > >
> > > IsisCon is only a few days away and we're excited to have the right
> > people
> > > at same time in one space again.
> > >
> > > *Welcome party*
> > >
> > > The welcome party on Friday will be held on a boat, courtesy of
> > > Eurocommercial Properties. We board around 5pm for a two hour canal
> tour
> > > and dock near a restaurant for dinner around 7pm. It's an open boat so
> > it's
> > > advisable to bring a jacket, just in case it gets chilly.
> > >
> > > *Video testimonials*
> > >
> > > We've asked Jonathan Doornenbal, a young and talented film maker [1] to
> > > create short video testimonials of the users of Apache Isis, to be used
> > on
> > > the Apache Isis website. The goal is to give the project a human face.
> > >
> > > These testimonials are free format and are driven by the stories you
> want
> > > to share. Jonathan will ask some questions to start the conversation.
> We
> > > want to prevent it to be glossy and commercial so you could also share
> > the
> > > imperfect sides. Important is that we communicate to potentials users
> > what
> > > we are: the open, honest and passionate community behind a brilliant
> open
> > > source framework. Or am I biasing the story now? ;-)
> > >
> > > We will use the Friday afternoon for these short interviews and perhaps
> > do
> > > some more on Saturday. Above all, there is no obligation to participate
> > in
> > > this but we really like to hear your stories.
> > >
> > > See you all in Amsterdam!
> > >
> > > Kind regards,
> > >
> > > Dan, Johan & Jeroen
> > >
> > >
> > > [1] http://www.jonathandoornenbal.com/
> > >
> >
>


Re: IsisCon 2017: Welcome Party / Video Testimonals

2017-06-07 Thread Stephen Cameron
Hope there are few wrong people, key people is probably your meaning. Have
a good conf. Cheers

On Tuesday, June 6, 2017, Jeroen van der Wal  wrote:

> Dear all,
>
> IsisCon is only a few days away and we're excited to have the right people
> at same time in one space again.
>
> *Welcome party*
>
> The welcome party on Friday will be held on a boat, courtesy of
> Eurocommercial Properties. We board around 5pm for a two hour canal tour
> and dock near a restaurant for dinner around 7pm. It's an open boat so it's
> advisable to bring a jacket, just in case it gets chilly.
>
> *Video testimonials*
>
> We've asked Jonathan Doornenbal, a young and talented film maker [1] to
> create short video testimonials of the users of Apache Isis, to be used on
> the Apache Isis website. The goal is to give the project a human face.
>
> These testimonials are free format and are driven by the stories you want
> to share. Jonathan will ask some questions to start the conversation. We
> want to prevent it to be glossy and commercial so you could also share the
> imperfect sides. Important is that we communicate to potentials users what
> we are: the open, honest and passionate community behind a brilliant open
> source framework. Or am I biasing the story now? ;-)
>
> We will use the Friday afternoon for these short interviews and perhaps do
> some more on Saturday. Above all, there is no obligation to participate in
> this but we really like to hear your stories.
>
> See you all in Amsterdam!
>
> Kind regards,
>
> Dan, Johan & Jeroen
>
>
> [1] http://www.jonathandoornenbal.com/
>


Re: Wicket 'Mobile' Viewer

2017-05-28 Thread Stephen Cameron
Viewer Forecast is on the list for the Isis meetup.

On Mon, May 29, 2017 at 10:17 AM, Stephen Cameron <
steve.cameron...@gmail.com> wrote:

> Hi,
>
> I am currently looking for more work with Apache Isis and some potential
> clients all want a mobile version, or, the chance to have one down the
> track.
>
> I say to them its possible using the Restful Objects API as the basis of a
> client layer, and I know AngularJS is popular for this now.
>
> My question is to ask if it's maybe possible to make a Wicket 'Mobile'
> Viewer?
>
> The idea that I have is based on the layout.xml files being hierarchical
> and so it would seem possible to be able to turn that into a 'drill-down'
> mobile app kind of UI automatically too.
>
> Maybe to add mobile specific elements in the layout.xml files.
>
> Steve Cameron
>
>


Wicket 'Mobile' Viewer

2017-05-28 Thread Stephen Cameron
Hi,

I am currently looking for more work with Apache Isis and some potential
clients all want a mobile version, or, the chance to have one down the
track.

I say to them its possible using the Restful Objects API as the basis of a
client layer, and I know AngularJS is popular for this now.

My question is to ask if it's maybe possible to make a Wicket 'Mobile'
Viewer?

The idea that I have is based on the layout.xml files being hierarchical
and so it would seem possible to be able to turn that into a 'drill-down'
mobile app kind of UI automatically too.

Maybe to add mobile specific elements in the layout.xml files.

Steve Cameron


Re: [ANOUNCEMENT] IsisCon / 9-10 June 2017 / Amsterdam

2017-04-30 Thread Stephen Cameron
Hello,

To anyone on the Apache Isis lists in Australia (or even Australasia) that
is interested in meeting centrally at the same time and hopefully to
listen-in on the meeting in Amsterdam (at ~5:30pm+), please contact me.

More generally, it would be good to work together to get Apache Isis more
noticed here, more awareness ->  more client interest, more client interest
-> more work opportunities.

I have one Apache Isis application to demo.

Steve Cameron
Hobart, Tasmania


On Mon, May 1, 2017 at 10:17 AM, Jeroen van der Wal 
wrote:

> Dear Apache Isis friends,
>
> We are happy to announce the second edition of IsisCon, a free and open
> conference dedicated to Apache Isis. This edition will be held on June 9
> and 10 2017 in Amsterdam and is a unique opportunity to meet other
> community members and discuss the future of Apache Isis.
>
> We highly value your attendance but we also want participation! We'll run
> the conference as an open conference and self-organise the sessions at the
> beginning of each day. Feel free to propose talks, discussion subjects or
> whatever you feel should be covered during in the conference. Some ideas:
> - Show and tell: demonstrate the apps that you have built
> - Developer happiness: how to evolve the programming model
> - Housecleaning: removing stuff that nobody uses
> - Evolution of the persistence layer: JDO, JPA, Hibernate
> - Viewer forecast: Vaadin, AngularJs, Web Components
> - Other languages: using Kotlin for apps, for the framework or for
> scripting
> - Java 9: Jigsaw, modules
> - From code to consumer: CI/CD, Containers, Docker
> - Patterns: Naked Objects, DCI, Aspects, Contributed services, Mixins
> - Integration patterns: Commands, events, auditing, Apache Camel
> - Security: Shiro vs Keycloak
> - Documentation: the power of asciidoc
>
> Schedule:
> Friday 9 June: Attendees arrive in Amsterdam and get together in the
> afternoon at the Incode office, Herengracht 448. Leave for drinks and
> dinner around 18:00.
> Saturday 10 June: Conference day starts at 9:00 with coffee and last
> possibility to submit sessions. Sessions start at 9:30 and we wrap up the
> conference at 17:00
> Sunday 11 June: For those who plan to stay in Amsterdam on Sunday we are
> hosting a family friendly canal tour.
>
> Venue:
> Incode office, Herengracht 448
>
> Costs:
> Attendance is free and we'll provide free coffee, tea, water and sodas on
> the conference day.
>
> Conference Hotel:
> We are working on a group discount for a hotel, will announce that shortly.
>
> Looking forward to see you all in Amsterdam!
>
> Dan, Johan & Jeroen
>
>
> Disclaimer: The Apache Software Foundation has no affiliation with and does
> not endorse, or review the materials provided at this event. We have
> notified trademarks@a.o about this event.
>


Re: DOM folder - where is it hiding?

2017-03-30 Thread Stephen Cameron
I am quite behind the times, sorry Josh

On Thu, Mar 30, 2017 at 6:09 PM, Dan Haywood 
wrote:

> Actually, in the 1.14.0 version of the simpleapp archetype the 'dom',
> 'fixture' and 'integtests' module have all been moved.
>
> Instead, you'll see a module/simple (or it might be called module-simple)
> which contains each of these modules.
>
> The idea is to support modular development, so each module provides its own
> fixtures and can have its own unit tests (which it already did) and also
> integration tests.
>
> The 'app' module meanwhile has "smoke" integ tests which exercise the whole
> app.  I've left the BDD cucumber tests there also.
>
> We're slowly refactoring our Estatio app [1] to follow this structure.  I
> also discussed modular apps in a pair of articles on InfoQ [2], [3]
>
> Hope that makes sense.
>
> Dan
>
>
> [1] http://github.com/estatio/estatio
>
> [2] https://www.infoq.com/articles/monolith-defense-part-1
>
> [3] https://www.infoq.com/articles/monolith-defense-part-2
>
> On Thu, 30 Mar 2017, 06:34 Stephen Cameron, 
> wrote:
>
> Hello Josh,
>
> The dom (domain object model) project has not disappeared after 1.13.1.
>
>  The standard project setup is actually a group of 5 sub-projects (each
> with their own maven project object model file 'pom.xml'): app, dom (domain
> object model), fixtures, integtest, webapp.
>
> All are important and cross-link, but you are correct that the dom project
> will normally contain the classes that need to be enhanced by DataNucleus,
> which for efficient workflow you should enable in your IDE of choice.
>
>
>
>
>
> On Thu, Mar 30, 2017 at 2:04 PM, Joshua Beck  wrote:
>
> > Hi, I am new to Apache Isis and trying to get familiar with the setup and
> > workflow. I have been working through the official first tutorial, "Pet
> > Clinic".
> >
> > In the archetype version used (1.13.1), the DOM folder appears as a top
> > level folder in the generated project.  This corresponds to other
> > documentation and YouTube videos, and enables the Enhancer to be set up
> in
> > IntelliJ IDEA as per the instructions in the Developer's Guide, at:
> > https://isis.apache.org/guides/dg.html#__dg_ide_intellij_running .
> >
> > The setting up of the enhancer is pointed out to be a very important
> step,
> > and clearly, one needs to know what Working Directory to point the
> enhancer
> > to.  But also, that DOM folder seems to be the key thing upon which the
> > entire Apache Isis concept is based.
> >
> > So, after 1.13.1, where has it disappeared to?  I have tried to puzzle
> > through the pom.xml and pom-jdo-enhance-all.xml files, but I'm no Maven
> > expert and it's not making sense to me.
> >
> > Thanks
> > Josh
> >
>


Re: DOM folder - where is it hiding?

2017-03-29 Thread Stephen Cameron
Hello Josh,

The dom (domain object model) project has not disappeared after 1.13.1.

 The standard project setup is actually a group of 5 sub-projects (each
with their own maven project object model file 'pom.xml'): app, dom (domain
object model), fixtures, integtest, webapp.

All are important and cross-link, but you are correct that the dom project
will normally contain the classes that need to be enhanced by DataNucleus,
which for efficient workflow you should enable in your IDE of choice.





On Thu, Mar 30, 2017 at 2:04 PM, Joshua Beck  wrote:

> Hi, I am new to Apache Isis and trying to get familiar with the setup and
> workflow. I have been working through the official first tutorial, "Pet
> Clinic".
>
> In the archetype version used (1.13.1), the DOM folder appears as a top
> level folder in the generated project.  This corresponds to other
> documentation and YouTube videos, and enables the Enhancer to be set up in
> IntelliJ IDEA as per the instructions in the Developer's Guide, at:
> https://isis.apache.org/guides/dg.html#__dg_ide_intellij_running .
>
> The setting up of the enhancer is pointed out to be a very important step,
> and clearly, one needs to know what Working Directory to point the enhancer
> to.  But also, that DOM folder seems to be the key thing upon which the
> entire Apache Isis concept is based.
>
> So, after 1.13.1, where has it disappeared to?  I have tried to puzzle
> through the pom.xml and pom-jdo-enhance-all.xml files, but I'm no Maven
> expert and it's not making sense to me.
>
> Thanks
> Josh
>


Apache Isis in a cloud service scenario

2017-03-29 Thread Stephen Cameron
Hello,

I am thinking of offering an Apache Isis app as a cloud hosted service.

I need to control access to data in very efficient way, potentially storing
the data-sets of many different paying clients within one database schema
but only showing the data for one client in the viewer, as determined
(somehow) by the 'account' of each authenticated user providing the value
of a filter parameter to use at the database level.

At the moment I make use of the Isis Security Module add-on to filter data
by 'tenancy', this works well within a single organisation, and this
capability needs to be preserved in the new multi-organisation cloud
service scenario.

Has anyone else had experience in this kind of setup?

Thanks
Steve Cameron


Re: Multi object data entry

2017-03-19 Thread Stephen Cameron
... just adding my voice to a conversation.

It's a catch 22 for me, not good enough a Java programmer do things (like
this) quickly, not enough work to become a good Java programmer. :(

S

On Mon, Mar 20, 2017 at 5:16 AM, Dan Haywood 
wrote:

> All things are possible... just needs the will and the time !
>
>
> On Sun, 19 Mar 2017 at 18:05 Stephen Cameron 
> wrote:
>
> > Actually, the way to do this is to add an Single object view to the
> > viewer options on a collection. Table, Excel and Row. The one that's
> > standard in MS Access and most database tools. Then you'd have step
> through
> > buttons to move up and down, start and end in the collection. As an old
> VB
> > developer I should recall it's name.
> >
> > On Monday, March 20, 2017, Stephen Cameron 
> > wrote:
> >
> > > A spreadsheet component? ZK framework has one.
> > >
> > > On Monday, March 20, 2017, Dan Haywood  > > > wrote:
> > >
> > >> Short answer is that there is no built-in easy way to do bulk entry of
> > >> sets
> > >> of data.
> > >>
> > >> What we tend to do is use the excel module (which I think from other
> > >> emails
> > >> you've already found).
> > >>
> > >> Another alternative is to write either a Wicket custom component, eg
> as
> > in
> > >> the www.isisaddons.org
> > >>
> > >> HTH
> > >> Dan
> > >>
> > >>
> > >> On Fri, 3 Mar 2017 at 14:53 L Eder  wrote:
> > >>
> > >> > Hi members:
> > >> >
> > >> > I got the new feature - collection in action parameters - in release
> > >> > 1.14, and was successfully able to run it. See [1].
> > >> >
> > >> > In the depicted case i entered multiple Component objects at once.
> > >> > However there is another input parameter - Quantity.
> > >> >
> > >> > I would like to know if there is a way to enter quantities
> > >> > individually for each entered component.
> > >> >
> > >> > Thanks in advance, Eder
> > >> > [1] https://drive.google.com/open?id=0B9AugXy_qrXvT1loblBLeVpBRGs
> > >> >
> > >> > PS Sorry, for i was unable to sign up Imgur, due a error message
> there
> > >> > - "Imgur is over capacity".
> > >> >
> > >>
> > >
> >
>


Re: Multi object data entry

2017-03-19 Thread Stephen Cameron
Actually, the way to do this is to add an Single object view to the
viewer options on a collection. Table, Excel and Row. The one that's
standard in MS Access and most database tools. Then you'd have step through
buttons to move up and down, start and end in the collection. As an old VB
developer I should recall it's name.

On Monday, March 20, 2017, Stephen Cameron 
wrote:

> A spreadsheet component? ZK framework has one.
>
> On Monday, March 20, 2017, Dan Haywood  > wrote:
>
>> Short answer is that there is no built-in easy way to do bulk entry of
>> sets
>> of data.
>>
>> What we tend to do is use the excel module (which I think from other
>> emails
>> you've already found).
>>
>> Another alternative is to write either a Wicket custom component, eg as in
>> the www.isisaddons.org
>>
>> HTH
>> Dan
>>
>>
>> On Fri, 3 Mar 2017 at 14:53 L Eder  wrote:
>>
>> > Hi members:
>> >
>> > I got the new feature - collection in action parameters - in release
>> > 1.14, and was successfully able to run it. See [1].
>> >
>> > In the depicted case i entered multiple Component objects at once.
>> > However there is another input parameter - Quantity.
>> >
>> > I would like to know if there is a way to enter quantities
>> > individually for each entered component.
>> >
>> > Thanks in advance, Eder
>> > [1] https://drive.google.com/open?id=0B9AugXy_qrXvT1loblBLeVpBRGs
>> >
>> > PS Sorry, for i was unable to sign up Imgur, due a error message there
>> > - "Imgur is over capacity".
>> >
>>
>


Re: Multi object data entry

2017-03-19 Thread Stephen Cameron
A spreadsheet component? ZK framework has one.

On Monday, March 20, 2017, Dan Haywood  wrote:

> Short answer is that there is no built-in easy way to do bulk entry of sets
> of data.
>
> What we tend to do is use the excel module (which I think from other emails
> you've already found).
>
> Another alternative is to write either a Wicket custom component, eg as in
> the www.isisaddons.org
>
> HTH
> Dan
>
>
> On Fri, 3 Mar 2017 at 14:53 L Eder >
> wrote:
>
> > Hi members:
> >
> > I got the new feature - collection in action parameters - in release
> > 1.14, and was successfully able to run it. See [1].
> >
> > In the depicted case i entered multiple Component objects at once.
> > However there is another input parameter - Quantity.
> >
> > I would like to know if there is a way to enter quantities
> > individually for each entered component.
> >
> > Thanks in advance, Eder
> > [1] https://drive.google.com/open?id=0B9AugXy_qrXvT1loblBLeVpBRGs
> >
> > PS Sorry, for i was unable to sign up Imgur, due a error message there
> > - "Imgur is over capacity".
> >
>


Re: Wrong behavior when I set the parent on the child, in an 1:m assoc

2017-03-14 Thread Stephen Cameron
It should be done as a many-to-many relationship. (one Operator has many
Skills and one Skill has many Operators).

So you'd need a join table. The datanucleus documentation explains how with
a @Join and an @Order annotation.

To make your code work you'd need to create a new Skill entity each time,
which is not what you want to do I assume.

On Wed, Mar 15, 2017 at 2:58 AM, L Eder  wrote:

> Hi members:
>
> I have a Skills entity that has two instances.
> And i have Operador as its parent, and I created two instances of it.
>
> I then add skill1 to operador1. However when I add skill1 to operador2,
> then skill1 is moved to operador2 from operator1.
>
> I would like both operador instances has both skill1.
>
> I even tried this, without success:
> public Operador add(
>
> @ParameterLayout(named="Habilidade a Adicionar") final Skill
> skill){
>
> getSkilldeveloped().add(skill);
>
>
>
> return this;
>
> }
>
> Any tips? Thanks in advance,
>
> Source code
> "
>   -Operador.java-
>
>
> @Persistent(mappedBy = "operador", dependentElement = "true")
>
>@CollectionLayout(render =
> RenderType.EAGERLY)
>
>@Getter @Setter
>
>private SortedSet skilldeveloped
> = new TreeSet();
>
>
>
>@Action(semantics =
> SemanticsOf.IDEMPOTENT)
>
>public Operador add(
>
>
> @ParameterLayout(named="Habilidade a Adicionar") final Skill skill){
>
>
>
> skill.setOperador(this);
>
>
>
>return this;
>
>}
>
>
>
>-Skill.java-
>
>
>
>@Column(allowsNull = "true")
>
>@Getter @Setter
>
>private Operador operador;
>
>"
>


Re: Data grid style of data entry

2017-03-08 Thread Stephen Cameron
I make use of the Bulk Action capability to do that, usually via an
XYZBulkUpdateViewModel class, so a collection of (non-wrapped) domain
objects doesn't get the BulkUpdate capability wherever it is displayed.

see http://isis.apache.org/guides/rgant.html#_rgant-Action_invokeOn

On Thu, Mar 9, 2017 at 2:14 PM, L Eder  wrote:

> Is that multiline possible in the current Isis release, eg, an action that
> allows multiple rows of data to be entered?
>
> For example, in a case of an action that the user repeats a entry of same
> type, as in the
> update of the Quantity column of many rows at once in a collection.
>


Re: Unable to import reference property columns when using isis-module-excel

2017-03-08 Thread Stephen Cameron
Code snippet?

On Thu, Mar 9, 2017 at 2:04 PM, L Eder  wrote:

> Hi members:
>
> In this issue only the value property columns are imported.
> Except the reference property columns, who values appear wrongly as
> '(none)'.
>
> Has anyone experienced this issue?
> Thanks, eder
>


Re: Many-to-many association

2017-03-02 Thread Stephen Cameron
I took it as more a question about recursive relationships, than
many-to-many as the title suggested.

On Thu, Mar 2, 2017 at 9:53 PM, Óscar Bou - GOVERTIS 
wrote:

> Hi L Eder,
>
> You can find some code templates for both Eclipse and IntelliJ [1] that
> include the proper DataNucleus annotations to define a m-n relationship.
>
> On this case, DN supports many options [2].
>
> I would recommend the one using a Set, which details the following example:
>
>
> public class Product
> {
> ...
>
> @Persistent(table="PRODUCTS_SUPPLIERS")
> @Join(column="PRODUCT_ID")
> @Element(column="SUPPLIER_ID")
> Set suppliers;
> }
>
> public class Supplier
> {
> ...
>
> @Persistent(mappedBy="suppliers")
> Set products;
> }
>
>
>
>
>
> HTH,
>
> Oscar
>
>
>
>
> [1] https://isis.apache.org/guides/dg.html#2.-using-an-ide
> [2] http://www.datanucleus.org/products/accessplatform/
> jdo/orm/many_to_many.html#set
>
>
>
> El 1 mar 2017, a las 22:30, Stephen Cameron 
> escribió:
>
> Hi, if you can make a Product a kind of Component (via inheritance) that
> works quite nicely in Isis, then a Product is composed of a list of
> Components (some being other Products) and Isis will display each them as
> their true type (either a Product or a Component).
>
>
>
>
> On Thu, Mar 2, 2017 at 7:21 AM, L Eder  wrote:
>
> Hi members:
>
> I have two entities - Product, Component.
>
> A product is made of a list of components, each one with its
> respective quantities.
> At the same time a same component is use in different products.
>
> It is sort of a bill of materials, but as a simple, one-level.
>
> Anyone could suggest a way to implement such an association in Isis?
>
> Thanks in advance, Eder
>
>
>
> Óscar Bou Bou
> Socio - IT & GRC Management Services Director
> m: +34 620 267 520 <+34%20620%2026%2075%2020>
> s:  <http://www.govertis.com>www.govertis.com e: o@govertis.com
>
> LinkedIn: https://www.linkedin.com/in/oscarbou
> Twitter:  @oscarbou <https://twitter.com/oscarbou>
>
>
>
> Este mensaje y los ficheros anexos son confidenciales. Los mismos
> contienen información reservada que no puede ser difundida. Si usted ha
> recibido este correo por error, tenga la amabilidad de eliminarlo de su
> sistema y avisar al remitente mediante reenvío a su dirección electrónica;
> no deberá copiar el mensaje ni divulgar su contenido a ninguna persona.
>
> Su dirección de correo electrónico junto a sus datos personales constan en
> un fichero titularidad de GOVERTIS ADVISORY SERVICES, S.L. cuya finalidad
> es la de mantener el contacto con Ud. Si quiere saber de qué información
> disponemos de Ud., modificarla, y en su caso, cancelarla, puede hacerlo
> enviando un escrito al efecto, acompañado de una fotocopia de su D.N.I. a
> la siguiente dirección: GOVERTIS ADVISORY SERVICES, S.L. Avda Cortes
> Valencianas, 58 – 8º - 6ª. 46015 - Valencia,  y Paseo de la Castellana,
> 153, 28045 - MADRID. Asimismo, es su responsabilidad comprobar que este
> mensaje o sus archivos adjuntos no contengan virus informáticos, y en caso
> que los tuvieran eliminarlos.
>
>


Re: Many-to-many association

2017-03-01 Thread Stephen Cameron
Hi, if you can make a Product a kind of Component (via inheritance) that
works quite nicely in Isis, then a Product is composed of a list of
Components (some being other Products) and Isis will display each them as
their true type (either a Product or a Component).




On Thu, Mar 2, 2017 at 7:21 AM, L Eder  wrote:

> Hi members:
>
> I have two entities - Product, Component.
>
> A product is made of a list of components, each one with its
> respective quantities.
> At the same time a same component is use in different products.
>
> It is sort of a bill of materials, but as a simple, one-level.
>
> Anyone could suggest a way to implement such an association in Isis?
>
> Thanks in advance, Eder
>


Re: Wizard-style user interface for when entering data for a new domain object

2017-02-20 Thread Stephen Cameron
Previously the idea of an object builder object has been suggested, it
would seem a simple approach that could work in each tab is a step.

On Tuesday, February 21, 2017, L Eder  wrote:

> Cool Erik, thanks for your time. I browsed your code and perceived your
> alternate approach, not using the memento service. Just going to run both
> approaches. Regards, Eder
> On Feb 20, 2017 5:10 PM, "Erik de Hair" >
> wrote:
>
> > Hi Eder,
> >
> > I've created a demo app [1] to show my approach. It could probably be
> more
> > generic and I probably broke some Apache Isis module naming conventions
> but
> > i believe it's a good starting point.
> >
> > As I said in my previous post, this solution is based on the wicket
> wizard
> > module. I asked for some wizard functionality long ago. Dan created the
> > module but I couldn't give him proper feedback at that moment :-/
> >
> > Right now I wasn't able to create my demo in the wicket-module because
> > this module was built using Apache Isis 1.6 or so and I had to fix a lot
> to
> > get it working. In the mean time a lot has changed (like view models
> > without memento's and XML lay outs) and I believe it would be much easier
> > to make it more generic than before. If anyone is interested I could try
> to
> > 'merge' the 2 modules and make the wizard reusable.
> >
> > I didn't change the README but you should be able to run the app the same
> > way as the other modules.
> >
> >
> > Erik
> >
> > [1] https://github.com/erikdehair/isis-module-wizard
> >
> >
> > On 02/20/2017 04:42 PM, Erik de Hair wrote:
> >
> >> Hi Eder,
> >>
> >> I've been using some concepts form the Apache Isis wizard add on [1] and
> >> added some things like a bread crumb. Also use layout-xml files for the
> >> pages and buttons instead of using the fixed buttons. Didn't have the
> time
> >> yet to share this. I will try to do that this week, so you can check
> that
> >> out.
> >>
> >> Erik
> >>
> >> [1] https://github.com/isisaddons/isis-wicket-wizard
> >>
> >> On 02/20/2017 03:59 PM, L Eder wrote:
> >>
> >>> Hi members:
> >>> Anyone having a tip to share on how to build such a type of form?
> >>>
> >>> Idea is to have one form with Back and Next buttons, navigating through
> >>> screens related to layout groups, say General, Details, Misc, etc.
> >>>
> >>> Regards, Eder
> >>>
> >>>
> >>
> >
>


Re: Cached icon

2017-02-19 Thread Stephen Cameron
I just needed to do a maven clean, sorry

On Sun, Feb 19, 2017 at 6:51 PM, Stephen Cameron  wrote:

> I see the URL of the image is still png and has a generated version
> number. So I can only guess the old file is still there server side
> somewhere.
>
>
> On Sunday, February 19, 2017, Mikeb  wrote:
>
>> You've probably tried this but I'm mentioning it just in case- I had a
>> similar problem and fixed it by clearing browser's image cache.
>>
>> Best Regards
>>
>> Mike Burton
>> (Sent from my iPhone)
>>
>>
>>
>> > On 19 Feb 2017, at 01:25, Stephen Cameron 
>> wrote:
>> >
>> > Hi, a strange thing is happening where I update an Isis Dom jar on a
>> tomcat
>> > server, restart the server,but still see an old icon image in the wicket
>> > UI. Even if the icon is changed from png to jpg in the jar I still see
>> the
>> > old png. I've updated other images and see the image change color, same
>> > name different image, but this is a new suffix.
>>
>>


Re: Cached icon

2017-02-18 Thread Stephen Cameron
I see the URL of the image is still png and has a generated version number.
So I can only guess the old file is still there server side somewhere.

On Sunday, February 19, 2017, Mikeb  wrote:

> You've probably tried this but I'm mentioning it just in case- I had a
> similar problem and fixed it by clearing browser's image cache.
>
> Best Regards
>
> Mike Burton
> (Sent from my iPhone)
>
>
>
> > On 19 Feb 2017, at 01:25, Stephen Cameron  > wrote:
> >
> > Hi, a strange thing is happening where I update an Isis Dom jar on a
> tomcat
> > server, restart the server,but still see an old icon image in the wicket
> > UI. Even if the icon is changed from png to jpg in the jar I still see
> the
> > old png. I've updated other images and see the image change color, same
> > name different image, but this is a new suffix.
>
>


Cached icon

2017-02-18 Thread Stephen Cameron
Hi, a strange thing is happening where I update an Isis Dom jar on a tomcat
server, restart the server,but still see an old icon image in the wicket
UI. Even if the icon is changed from png to jpg in the jar I still see the
old png. I've updated other images and see the image change color, same
name different image, but this is a new suffix.


  1   2   3   4   5   >