[jira] [Updated] (ISIS-1081) Make it possible to lookup Guice beans in Isis domain services

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1081?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1081:
--
Fix Version/s: core-1.9.0

 Make it possible to lookup Guice beans in Isis domain services
 --

 Key: ISIS-1081
 URL: https://issues.apache.org/jira/browse/ISIS-1081
 Project: Isis
  Issue Type: Improvement
  Components: Core
Affects Versions: core-1.8.0
Reporter: Martin Grigorov
Assignee: Martin Grigorov
 Fix For: core-1.9.0


 I have a use case where I need to send an email notification after creating a 
 domain entity.
 I was confused that EmailService is a Guice bean only so I've created a 
 bridge domain service that looks up beans from Guice injector.
 Now I see that I don't really need the bridge. I'll push it in a branch. If 
 we find it useful then we could merge it later.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (ISIS-1081) Make it possible to lookup Guice beans in Isis domain services

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1081?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood resolved ISIS-1081.
---
Resolution: Fixed

 Make it possible to lookup Guice beans in Isis domain services
 --

 Key: ISIS-1081
 URL: https://issues.apache.org/jira/browse/ISIS-1081
 Project: Isis
  Issue Type: Improvement
  Components: Core
Affects Versions: core-1.8.0
Reporter: Martin Grigorov
Assignee: Martin Grigorov

 I have a use case where I need to send an email notification after creating a 
 domain entity.
 I was confused that EmailService is a Guice bean only so I've created a 
 bridge domain service that looks up beans from Guice injector.
 Now I see that I don't really need the bridge. I'll push it in a branch. If 
 we find it useful then we could merge it later.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (ISIS-181) A (low-level, technical) domain Service (in domain-libs) to allow domain object entities to perform XSLT transformations.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood closed ISIS-181.

   Resolution: Not a Problem
Fix Version/s: (was: GIT REPO only)

Out of scope; can implement in isisaddons as and when there is a requirement.

 A (low-level, technical) domain Service (in domain-libs) to allow domain 
 object entities to perform XSLT transformations.
 -

 Key: ISIS-181
 URL: https://issues.apache.org/jira/browse/ISIS-181
 Project: Isis
  Issue Type: New Feature
Reporter: Dan Haywood
Priority: Minor
  Labels: newbie

 Isis provides the ability to create XML snapshots of domain object graphs, eg:
  XmlSnapshot snapshot = new XmlSnapshot(customer); // where customer is a 
 reference to an ObjectAdapter
  Element customerAsXml = snapshot.toXml(); // returns customer's fields, 
 titles of simple references, number of items in collections
  snapshot.include(placeOfBirth); // navigates to another object represented 
 by simple reference placeOfBirth
  snapshot.include(orders/product); // navigates to all Orders of Customer, 
 and from them for their Products
 This service is to allow that XML snapshot to be converted into other formats 
 (eg as might be used as an input to services that generate documents, eg 
 ISIS-173, ISIS-177, ISIS-178)
  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1046) Get rid of chatty Shiro messages about no CacheManager being set.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1046:
--
Component/s: (was: Core: Viewer: Wicket)
 Core

 Get rid of chatty Shiro messages about no CacheManager being set.
 -

 Key: ISIS-1046
 URL: https://issues.apache.org/jira/browse/ISIS-1046
 Project: Isis
  Issue Type: New Feature
  Components: Core
Affects Versions: viewer-wicket-1.7.0
Reporter: Dan Haywood
Assignee: Martin Grigorov
Priority: Minor
 Fix For: core-1.9.0


 For example, configure the MemoryConstrainedCacheManager.
 In Wicket viewer, set up a way to invalidate the session (this is easy enough 
 to do, see eg the code that calls the SessionLogger), so that the cache can 
 also be clear.
 We also need some way to log out for RO viewer.  However, perhaps that can 
 be left to another day.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-491) Integrate JSR-349 validation.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-491?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-491:
-
Assignee: (was: Oscar Bou)

 Integrate JSR-349 validation.
 -

 Key: ISIS-491
 URL: https://issues.apache.org/jira/browse/ISIS-491
 Project: Isis
  Issue Type: New Feature
  Components: Core
Affects Versions: core-1.2.0
Reporter: Dan Haywood
 Fix For: core-1.9.0

   Original Estimate: 72h
  Remaining Estimate: 72h

 as per 
 http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/
 The reference implementation (Hibernate Validator) is Apache licensed [1].
 ~~~
 Implementation: should not be too difficult; mostly a matter of writing some 
 FacetFactories.
 It may not make sense to use every feature of JSR-349... 
 * constructor parameters
 * constraint groups
 1. In Isis bootstrapping, get hold and cache the Validator.  (This is 
 thread-safe, so could perhaps be global; maybe as a new top-level component 
 cf AuthorizationManager etc).
 {code}
 ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
 validator = factory.getValidator();
 {code}
 and also
 {code}
 executableValidator = validator.forExecutables();
 {code}
 Validating a property change can be done using:
 {code}
 SetConstraintViolationCar constraintViolations = validator.validateValue(
 Car.class,
 manufacturer,
 null
 );
 assertEquals( 1, constraintViolations.size() );
 assertEquals( may not be null, 
 constraintViolations.iterator().next().getMessage() );
 {code}
 (nb: using validator.validateProperty(...) would mean that the value has been 
 applied already).
 eg this would be a facet that implements ValidatingInteractionAdvisor and 
 acts on a ValidityContext of type PropertyModifyContext.  (eg subclass 
 PropertyValidateFacetAbstract)
 2. Validating a parameter of an action can be done using:
 {code}
 Car object = new Car( Morris );
 Method method = Car.class.getMethod( drive, int.class );
 Object[] parameterValues = { 80 };
 SetConstraintViolationCar violations = 
 executableValidator.validateParameters(
 object,
 method,
 parameterValues
 );
 assertEquals( 1, violations.size() );
 Class? extends Annotation constraintType = violations.iterator()
 .next()
 .getConstraintDescriptor()
 .getAnnotation()
 .annotationType();
 assertEquals( Max.class, constraintType );
 {code}
 This would be in a Facet that implements ValidatingInteractionAdvisor and 
 acts on a ValidityContext of type ActionInvocationContext (eg subclass 
 ActionValidationFacetAbstract)
 ~~~
 There are also some new features that could be implemented:
 3. validating the return value of an action:
 {code}
 Car object = new Car( Morris );
 Method method = Car.class.getMethod( getPassengers );
 Object returnValue = Collections.PassengeremptyList();
 SetConstraintViolationCar violations = 
 executableValidator.validateReturnValue(
 object,
 method,
 returnValue
 );
 assertEquals( 1, violations.size() );
 Class? extends Annotation constraintType = violations.iterator()
 .next()
 .getConstraintDescriptor()
 .getAnnotation()
 .annotationType();
 assertEquals( Size.class, constraintType );
 {code}
 This would need to be done after the action has been invoked; if the 
 constraint failed, then an exception would be thrown causing the transaction 
 to be aborted.  This might require a new subclass of ValidityContext, eg 
 ActionReturnValueContext.
 4. cf ISIS-479, all dirtied objects should be validated prior to commit.
 a) we re-validate all properties (using the value of the property as the 
 proposed value).  This would be done using InteractionUtils, called from 
 isAssociationValid with a ValidityContext of PropertyModifyContext.
 b) we validate the object, ie InteractionUtils, with  all with a 
 ValidityContext of ObjectValidityContext.
 We would then have a new facet, implementing ValidatingInteractionAdvisor and 
 acting on an ObjectValidityContext (eg subclass ValidateObjectFacetAbstract); 
 which should perform:
 {code}
 SetConstraintViolationCar constraintViolations = validator.validate( car 
 );
 {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-297) Support JSR-303 bean validation API

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-297?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-297:
-
Affects Version/s: (was: GIT REPO only)

 Support JSR-303 bean validation API
 ---

 Key: ISIS-297
 URL: https://issues.apache.org/jira/browse/ISIS-297
 Project: Isis
  Issue Type: Task
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-297) Support JSR-303 bean validation API

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-297?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-297:
-
Summary: Support JSR-303 bean validation API  (was: Fix up the JSR-303 
example metamodel facet.)

 Support JSR-303 bean validation API
 ---

 Key: ISIS-297
 URL: https://issues.apache.org/jira/browse/ISIS-297
 Project: Isis
  Issue Type: Task
Affects Versions: GIT REPO only
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: GIT REPO only






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (ISIS-297) Support JSR-303 bean validation API

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-297?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood closed ISIS-297.

Resolution: Won't Fix

Instead see ISIS-491

 Support JSR-303 bean validation API
 ---

 Key: ISIS-297
 URL: https://issues.apache.org/jira/browse/ISIS-297
 Project: Isis
  Issue Type: Task
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1046) Get rid of chatty Shiro messages about no CacheManager being set.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1046:
--
Assignee: (was: Martin Grigorov)

 Get rid of chatty Shiro messages about no CacheManager being set.
 -

 Key: ISIS-1046
 URL: https://issues.apache.org/jira/browse/ISIS-1046
 Project: Isis
  Issue Type: New Feature
  Components: Core
Affects Versions: viewer-wicket-1.7.0
Reporter: Dan Haywood
Priority: Minor
 Fix For: core-1.9.0


 For example, configure the MemoryConstrainedCacheManager.
 In Wicket viewer, set up a way to invalidate the session (this is easy enough 
 to do, see eg the code that calls the SessionLogger), so that the cache can 
 also be clear.
 We also need some way to log out for RO viewer.  However, perhaps that can 
 be left to another day.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (ISIS-177) Domain Service (in domain-libs) to allow domain object entities to allow communications to be created as RTFs, using a mail merge. Input data could be XML (or perhaps JSON)

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-177?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood closed ISIS-177.

   Resolution: Won't Fix
Fix Version/s: (was: GIT REPO only)

Should be a ticket against the isisaddons' isis-module-docx (if at all).

Out of scope for Isis itself, at any rate.

 Domain Service (in domain-libs) to allow domain object entities to allow 
 communications to be created as RTFs, using a mail merge.  Input data could 
 be XML (or perhaps JSON).
 --

 Key: ISIS-177
 URL: https://issues.apache.org/jira/browse/ISIS-177
 Project: Isis
  Issue Type: New Feature
Reporter: Dan Haywood
Priority: Minor
  Labels: newbie

 Similar to ISIS-172, but merging using an RTF template and search-and-replace 
 on the fields.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-297) Support JSR-303 bean validation API

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-297?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-297:
-
Fix Version/s: (was: GIT REPO only)

 Support JSR-303 bean validation API
 ---

 Key: ISIS-297
 URL: https://issues.apache.org/jira/browse/ISIS-297
 Project: Isis
  Issue Type: Task
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (ISIS-178) Domain Service (in domain-libs) to allow domain object entities to build ODF documents from a template doc, merging in against an XML (or perhaps JSON) input format.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood closed ISIS-178.

Resolution: Won't Fix

If implemented, this would be in isisaddons.

There is already isis-module-docx.

Another option is to leverage http://github.com/opensagres/xdocreport

 Domain Service (in domain-libs) to allow domain object entities to build ODF 
 documents from a template doc, merging in against an XML (or perhaps JSON) 
 input format.
 -

 Key: ISIS-178
 URL: https://issues.apache.org/jira/browse/ISIS-178
 Project: Isis
  Issue Type: New Feature
Reporter: Dan Haywood
Priority: Minor
  Labels: newbie
 Fix For: GIT REPO only


 Similar to ISIS-177 or ISIS-172, but generating ODF (as supported by 
 OpenOffice/LibreOffice, for example).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (ISIS-1064) Allow DB schemas (or any other setup) to be performed as DN metamodel is built up for each class.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1064?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood resolved ISIS-1064.
---
Resolution: Fixed

 Allow DB schemas (or any other setup) to be performed as DN metamodel is 
 built up for each class.
 -

 Key: ISIS-1064
 URL: https://issues.apache.org/jira/browse/ISIS-1064
 Project: Isis
  Issue Type: New Feature
  Components: Core: Objectstore: JDO
Affects Versions: core-1.8.0
Reporter: Dan Haywood
Assignee: Dan Haywood
 Fix For: core-1.9.0


 To support modularization (eg of isisaddons), it'd be good practice to allow 
 classes to be mapped to specific (DB) schemas, rather than the default 
 public (HSQLDB/Postgres) or dbo (MSSQL) schema.
 This requires some mechanism to intercept the creation process and create the 
 schema before hand.
 This enhancement is:
 - provide the ability to register a listener class (implementing 
 org.datanucleus.metadata.MetaDataListener), so that this can be done on 
 start-up
 - provide a default implementation that works out-of-the-box for (at least) 
 HSQLDB, PostgreSQL and MS SQL Server.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (ISIS-1068) Rationalize menuOrder for domain services that appear in UI

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1068?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood resolved ISIS-1068.
---
Resolution: Fixed

 Rationalize menuOrder for domain services that appear in UI
 ---

 Key: ISIS-1068
 URL: https://issues.apache.org/jira/browse/ISIS-1068
 Project: Isis
  Issue Type: Improvement
  Components: Core
Affects Versions: core-1.8.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Trivial
 Fix For: core-1.9.0






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-491) Integrate JSR-349 validation.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-491?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-491:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Integrate JSR-349 validation.
 -

 Key: ISIS-491
 URL: https://issues.apache.org/jira/browse/ISIS-491
 Project: Isis
  Issue Type: New Feature
  Components: Core
Affects Versions: core-1.2.0
Reporter: Dan Haywood
 Fix For: core-1.10.0

   Original Estimate: 72h
  Remaining Estimate: 72h

 as per 
 http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/
 The reference implementation (Hibernate Validator) is Apache licensed [1].
 ~~~
 Implementation: should not be too difficult; mostly a matter of writing some 
 FacetFactories.
 It may not make sense to use every feature of JSR-349... 
 * constructor parameters
 * constraint groups
 1. In Isis bootstrapping, get hold and cache the Validator.  (This is 
 thread-safe, so could perhaps be global; maybe as a new top-level component 
 cf AuthorizationManager etc).
 {code}
 ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
 validator = factory.getValidator();
 {code}
 and also
 {code}
 executableValidator = validator.forExecutables();
 {code}
 Validating a property change can be done using:
 {code}
 SetConstraintViolationCar constraintViolations = validator.validateValue(
 Car.class,
 manufacturer,
 null
 );
 assertEquals( 1, constraintViolations.size() );
 assertEquals( may not be null, 
 constraintViolations.iterator().next().getMessage() );
 {code}
 (nb: using validator.validateProperty(...) would mean that the value has been 
 applied already).
 eg this would be a facet that implements ValidatingInteractionAdvisor and 
 acts on a ValidityContext of type PropertyModifyContext.  (eg subclass 
 PropertyValidateFacetAbstract)
 2. Validating a parameter of an action can be done using:
 {code}
 Car object = new Car( Morris );
 Method method = Car.class.getMethod( drive, int.class );
 Object[] parameterValues = { 80 };
 SetConstraintViolationCar violations = 
 executableValidator.validateParameters(
 object,
 method,
 parameterValues
 );
 assertEquals( 1, violations.size() );
 Class? extends Annotation constraintType = violations.iterator()
 .next()
 .getConstraintDescriptor()
 .getAnnotation()
 .annotationType();
 assertEquals( Max.class, constraintType );
 {code}
 This would be in a Facet that implements ValidatingInteractionAdvisor and 
 acts on a ValidityContext of type ActionInvocationContext (eg subclass 
 ActionValidationFacetAbstract)
 ~~~
 There are also some new features that could be implemented:
 3. validating the return value of an action:
 {code}
 Car object = new Car( Morris );
 Method method = Car.class.getMethod( getPassengers );
 Object returnValue = Collections.PassengeremptyList();
 SetConstraintViolationCar violations = 
 executableValidator.validateReturnValue(
 object,
 method,
 returnValue
 );
 assertEquals( 1, violations.size() );
 Class? extends Annotation constraintType = violations.iterator()
 .next()
 .getConstraintDescriptor()
 .getAnnotation()
 .annotationType();
 assertEquals( Size.class, constraintType );
 {code}
 This would need to be done after the action has been invoked; if the 
 constraint failed, then an exception would be thrown causing the transaction 
 to be aborted.  This might require a new subclass of ValidityContext, eg 
 ActionReturnValueContext.
 4. cf ISIS-479, all dirtied objects should be validated prior to commit.
 a) we re-validate all properties (using the value of the property as the 
 proposed value).  This would be done using InteractionUtils, called from 
 isAssociationValid with a ValidityContext of PropertyModifyContext.
 b) we validate the object, ie InteractionUtils, with  all with a 
 ValidityContext of ObjectValidityContext.
 We would then have a new facet, implementing ValidatingInteractionAdvisor and 
 acting on an ObjectValidityContext (eg subclass ValidateObjectFacetAbstract); 
 which should perform:
 {code}
 SetConstraintViolationCar constraintViolations = validator.validate( car 
 );
 {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (ISIS-174) Domain Service (in domain-libs) to allow domain object entities to add barcodes to PDF representations.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-174?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood closed ISIS-174.

   Resolution: Later
Fix Version/s: (was: GIT REPO only)

Out of scope; can implement in isisaddons as and when there is a requirement.

 Domain Service (in domain-libs) to allow domain object entities to add 
 barcodes to PDF representations.
 ---

 Key: ISIS-174
 URL: https://issues.apache.org/jira/browse/ISIS-174
 Project: Isis
  Issue Type: New Feature
Reporter: Dan Haywood
Priority: Minor
  Labels: newbie

 Provide a standalone implementation of a service that allows barcodes to be 
 added to PDFs.
 Background: Some organizations use barcodes (or qcodes) to automate the 
 processing of forms that have been sent out to a customer to be completed.  
 The domain object could previously have obtained a PDF representation of 
 itself using, eg the service described in ISIS-173.
 The interface for such a service could be something like:
 [Hidden]
 public interface BarcodeService {
 byte[] addBarcode(byte[] pdf, String data, BarcodeFormat format);
 }
 where BarcodeType might be an enum to indicate which barcode encoding type to 
 use (there are various that could be supported).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-974) Provide the ability to associate font-awesome icons with properties

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-974?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-974:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Provide the ability to associate font-awesome icons with properties
 ---

 Key: ISIS-974
 URL: https://issues.apache.org/jira/browse/ISIS-974
 Project: Isis
  Issue Type: Improvement
  Components: Core, Core: Viewer: Wicket
Affects Versions: viewer-wicket-1.7.0, core-1.7.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.10.0


 ie as per http://fortawesome.github.io/Font-Awesome/examples/#bootstrap
 using:
 @PropertyLayout(
 cssClassFa=fa fa-fw fa-envelope-o
 )
 public String getEmailAddress() { ... }
 etc.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-674) Allow action parameters to be defaulted based on the (change of) value of other parameters.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-674?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-674:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Allow action parameters to be defaulted based on the (change of) value of 
 other parameters.
 ---

 Key: ISIS-674
 URL: https://issues.apache.org/jira/browse/ISIS-674
 Project: Isis
  Issue Type: New Feature
  Components: Core, Core: Viewer: Wicket
Affects Versions: viewer-wicket-1.3.1, core-1.3.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.10.0


 For example:
 public void foo(
Charge charge,
BigDecimal amount,
String description) {
   
 }
 public String default2Foo(Charge charge, BigDecimal amount) {
 return charge != null  amount != null? amount +   
 charge.getDescription() : null;
 }
 Here, the value of the 'description' parameter is defaulted from that of both 
 the preceding 'charge' and 'amount' parameters.  Changing either should cause 
 the default value for the 'description' to be recomputed.
 This is analogous to the way that choices are recomputed for 
 category/subcategory, see ActionParametersFormPanel:
 @Override
 public void onUpdate(AjaxRequestTarget target, ScalarModelProvider 
 provider) {
 final ActionModel actionModel = getActionModel();
 final ObjectAdapter[] pendingArguments = 
 actionModel.getArgumentsAsArray();
 try {
 final ObjectAction action = 
 actionModel.getActionMemento().getAction();
 final int numParams = action.getParameterCount();
 for (int i = 0; i  numParams; i++) {
 final ScalarPanelAbstract paramPanel = paramPanels.get(i);
 if(paramPanel != null) {
 // this could throw a ConcurrencyException as we may 
 have to reload the 
 // object adapter of the action in order to compute 
 the choices
 // (and that object adapter might have changed)
 if(paramPanel.updateChoices(pendingArguments)) {  
  THIS LOOKS SIMILAR TO WHAT NEEDS TO BE 
 DONE...
 target.add(paramPanel);
 }
 }
 }
 } catch(ConcurrencyException ex) {



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-471) Pinnable (for session) bookmarks

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-471:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Pinnable (for session) bookmarks
 

 Key: ISIS-471
 URL: https://issues.apache.org/jira/browse/ISIS-471
 Project: Isis
  Issue Type: New Feature
  Components: Core, Core: Viewer: Wicket
Affects Versions: viewer-wicket-1.2.0
Reporter: David Tildesley
Assignee: Martin Grigorov
Priority: Minor
 Fix For: core-1.10.0


 Ability to pin a bookmark for the duration of the user session or until the 
 user clears the bookmark.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-993) Show different object members on multiple tabs

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-993?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-993:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Show different object members on multiple tabs
 --

 Key: ISIS-993
 URL: https://issues.apache.org/jira/browse/ISIS-993
 Project: Isis
  Issue Type: New Feature
  Components: Core, Core: Viewer: Wicket
Affects Versions: viewer-wicket-1.7.0
Reporter: Dan Haywood
Assignee: Dan Haywood
 Fix For: core-1.10.0


 as per [1] mailing list thread.
 The example in the mailng list splits up the object's properties/collections 
 (contributed or otherwise) into two different sets of tabs... but as a first 
 pass I think a single row of tabs ought to suffice.
 We also need to be mindful that we may want to use tabs as a metaphor for 
 multiple opened objects (as a replacement for bookmarks), so this is another 
 reason for a single row of tabs. 
 To support this would require extensions to @DomainObjectLayout or equivalent 
 xxx.layout.json file.
 [1] http://markmail.org/message/merftvqoiy6ht3kq



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-844) Support custom annotations as higher-level semantics (a la BeanVal)

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-844?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-844:
-
Fix Version/s: (was: core-1.10.0)
   core-1.9.0

 Support custom annotations as higher-level semantics (a la BeanVal)
 ---

 Key: ISIS-844
 URL: https://issues.apache.org/jira/browse/ISIS-844
 Project: Isis
  Issue Type: New Feature
  Components: Core
Affects Versions: core-1.6.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.9.0


 For example, a contributed collection requires:
 import org.apache.isis.applib.annotations.*;
 @ActionSemantics(Of.SAFE)
 @NotContributed(As.ASSOCIATION)
 @NotInServiceMenu
 @Render(Type.EAGERLY)
 public ListFoo getFoos() { ... }
 it would be nice to allow the user to simplify the programming model.  For 
 example:
 package com.mycompany.isis;
 import org.apache.isis.applib.annotations.*;
 @ActionSemantics(Of.SAFE)
 @NotContributed(As.ASSOCIATION)
 @NotInServiceMenu
 @Render(Type.EAGERLY)
 public @interface ContributedCollection {}
 and then:
 import com.mycompany.isis.*;
 @ContributedCollection
 public ListFoo getFoos() { ... }
 ~~~
 Thus, Isis continues to define the base primitive semantics, but the 
 end-programmer is free to introduce higher-level semantics/abstractions if 
 they so wish.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1007) Provide support for are you sure idiom, eg using a @AreYouSure annotation on the action

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1007?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1007:
--
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Provide support for are you sure idiom, eg using a @AreYouSure annotation 
 on the action
 -

 Key: ISIS-1007
 URL: https://issues.apache.org/jira/browse/ISIS-1007
 Project: Isis
  Issue Type: New Feature
  Components: Core, Core: Viewer: Wicket
Affects Versions: viewer-wicket-1.7.0, core-1.7.0
Reporter: Dan Haywood
Assignee: Martin Grigorov
Priority: Minor
 Fix For: core-1.10.0


 ... or (post ISIS-970 using @Action(areYouSure=true)
 (Instead of @AreYouSure, another name might be @Dangerous or 
 @Action(dangerous=true)).
 To include the are you sure checkbox (or other equivalent UI mechanism), 
 plus also the styling of the action's button, eg make it red and with a 
 suitable icon.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1004) Infitinite recursion in updating() callback when call setter

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1004?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1004:
--
Component/s: Core: Objectstore: JDO

 Infitinite recursion in updating() callback when call setter
 

 Key: ISIS-1004
 URL: https://issues.apache.org/jira/browse/ISIS-1004
 Project: Isis
  Issue Type: Bug
  Components: Core: Objectstore: JDO
Affects Versions: core-1.7.0
Reporter: Dan Haywood
Assignee: Oscar Bou
 Fix For: core-1.9.0


 as per: http://isis.markmail.org/thread/6k7jh43xpzohb46k
 ~~~
 could probably solve this by setting a thread-local in the updating callback 
 facet (a wormhole).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1034) Support bulk actions that return Blobs and Clobs

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1034?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1034:
--
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Support bulk actions that return Blobs and Clobs
 

 Key: ISIS-1034
 URL: https://issues.apache.org/jira/browse/ISIS-1034
 Project: Isis
  Issue Type: Improvement
  Components: Core, Core: Viewer: Wicket
Affects Versions: core-1.7.0
Reporter: Dan Haywood
Assignee: Martin Grigorov
Priority: Minor
 Fix For: core-1.10.0


 https://github.com/apache/isis/blob/432ec3f1ec1b71b11fd24e24e26fb6a8fd324648/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java#L392



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-842) Each opened object should show in a new tab.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-842?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-842:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Each opened object should show in a new tab.
 

 Key: ISIS-842
 URL: https://issues.apache.org/jira/browse/ISIS-842
 Project: Isis
  Issue Type: New Feature
  Components: Core: Viewer: Wicket
Affects Versions: viewer-wicket-1.5.0
Reporter: Dan Haywood
Assignee: Martin Grigorov
Priority: Minor
 Fix For: core-1.10.0


 This may or may not be done as part of ISIS-537.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-909) BookmarksPagesPanel often cannot detect the current/active model

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-909?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-909:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 BookmarksPagesPanel often cannot detect the current/active model
 

 Key: ISIS-909
 URL: https://issues.apache.org/jira/browse/ISIS-909
 Project: Isis
  Issue Type: Bug
  Components: Core: Viewer: Wicket
Affects Versions: viewer-wicket-1.6.0
Reporter: Martin Grigorov
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.10.0


 There is a logic [1] at BookmarkedPagesPanel.java that tries to detect 
 whether an item in the bookmarks sliding menu is the currently viewed/edited 
 item and sets CSS class currentBookmark.
 Most of the time bookmarkedPagesModel.isCurrent(pageParameters) doesn't work. 
 It uses Objects.equal(current, pageParameters) and often those have similar 
 oid but additional parameters make the check failing.
 1. 
 https://github.com/apache/isis/blob/master/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java#L167



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-538) Improve performance of rendering lists (in Wicket viewer)

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-538?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-538:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Improve performance of rendering lists (in Wicket viewer)
 -

 Key: ISIS-538
 URL: https://issues.apache.org/jira/browse/ISIS-538
 Project: Isis
  Issue Type: Improvement
  Components: Core: Viewer: Wicket
Affects Versions: viewer-wicket-1.2.0
Reporter: Dan Haywood
Assignee: Martin Grigorov
Priority: Minor
 Fix For: core-1.10.0


 rendering a Lease, showing LeaseUnit in table (they would be in view mode).  
 Even so, we compute the choices etc, even though never used (see stack trace).
 In ScalarPanelAbstract#buildGui(), we have:
 private void buildGui() {
 
 // REVIEW: this is nasty, both write to the same entityLink field
 // even though only one is used
 componentIfCompact = addComponentForCompact();
 componentIfRegular = addComponentForRegular();
 Brands.findUniqueNames() line: 46 
 LeaseUnit.choicesBrandName() line: 278
 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not 
 available [native method]
 NativeMethodAccessorImpl.invoke(Object, Object[]) line: not available 
 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available 
 Method.invoke(Object, Object...) line: not available  
 MethodExtensions.invoke(Method, Object, Object[]) line: 50
 MethodExtensions.invoke(Method, Object) line: 45  
 AdapterInvokeUtils.invoke(Method, ObjectAdapter) line: 44 
 PropertyChoicesFacetViaMethod.getChoices(ObjectAdapter, SpecificationLoader) 
 line: 72 
 OneToOneAssociationImpl.getChoices(ObjectAdapter) line: 248   
 ScalarModel$Kind$1.getChoices(ScalarModel, ObjectAdapter[]) line: 163 
 ScalarModel.getChoices(ObjectAdapter[]) line: 584 
 ValueChoicesSelect2Panel.getChoiceMementos(ObjectAdapter[]) line: 93  
 ValueChoicesSelect2Panel.setChoices(ObjectAdapter[]) line: 194
 ValueChoicesSelect2Panel.addComponentForRegular() line: 76
 ValueChoicesSelect2Panel(ScalarPanelAbstract).buildGui() line: 178
 ValueChoicesSelect2Panel(ScalarPanelAbstract).onBeforeRender() line: 147  
 ValueChoicesSelect2Panel(Component).internalBeforeRender() line: 923  
 ValueChoicesSelect2Panel(Component).beforeRender() line: 991  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-975) Allow the prototype facet to be associated with properties and collections, not just actions.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-975:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Allow the prototype facet to be associated with properties and collections, 
 not just actions.
 -

 Key: ISIS-975
 URL: https://issues.apache.org/jira/browse/ISIS-975
 Project: Isis
  Issue Type: Improvement
  Components: Core, Core: Viewer: Wicket
Affects Versions: viewer-wicket-1.7.0, core-1.7.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.10.0


 Currently we have the ability to make actions into a prototype, meaning that 
 they are only shown in prototype mode (--type SERVER_PROTOTYPE or Wicket 
 development mode) and hidden during production mode (--type SERVER, or Wicket 
 deployment mode).
 Because of they way that they are implemented, contributed properties and 
 contributed collections also inherit this prototyped-ness; they will also 
 be hidden in prototype mode.
 However, there is no way to hide regular (non-contributed) properties or 
 collections when not running in prototype mode.
 ~~~
 Don't think that this is a particularly significant issue, but it is an area 
 of asymmetry in our metamodel so should probably be cleaned up, ie by 
 introducing the notion of prototype for properties or collections.
 This should be implemented as a new prototype attribute in @PropertyLayout 
 and @CollectionLayout.
 The Wicket viewer will need to honour this when rendering the entity forms 
 (EntityPropertiesForm component etc).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1005) Allow users to implement an optional service to perform pre-commit processing (ChangedObjectService)

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1005?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1005:
--
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Allow users to implement an optional service to perform pre-commit processing 
 (ChangedObjectService)
 --

 Key: ISIS-1005
 URL: https://issues.apache.org/jira/browse/ISIS-1005
 Project: Isis
  Issue Type: New Feature
  Components: Core
Affects Versions: core-1.7.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.10.0


 For example, Oscar's app has this code everywhere:
 public void updating() {
 this.setDateUpdated(Clock.getTimeAsDateTime().toDate());
 this.setUpdatedByUser(this.domainFactoryService.currentUserName());
 }
 Instead, this could be done by passing all objects enlisted in the xactn 
 (same stuff as used by audit service) to a new service.
 This should be done immediately prior to calling auditing (so that if 
 additional objects get dirtied by the service, then they are audited also).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1053) Unable to render java.lang.Number in UI

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1053:
--
Assignee: Martin Grigorov  (was: Dan Haywood)

 Unable to render java.lang.Number in UI
 ---

 Key: ISIS-1053
 URL: https://issues.apache.org/jira/browse/ISIS-1053
 Project: Isis
  Issue Type: Bug
  Components: Core: Viewer: Wicket
Affects Versions: core-1.8.0
Reporter: Dan Haywood
Assignee: Martin Grigorov
Priority: Minor
 Fix For: core-1.9.0






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-789) Upgrade to DN 4.0

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-789?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-789:
-
Fix Version/s: (was: core-2.0.0)
   core-1.9.0

 Upgrade to DN 4.0
 -

 Key: ISIS-789
 URL: https://issues.apache.org/jira/browse/ISIS-789
 Project: Isis
  Issue Type: Improvement
  Components: Core: Objectstore: JDO
Affects Versions: objectstore-jdo-1.4.1
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.9.0


 NB: DN 4.0 only supports Java 7, so this is also dependent on our moving to 
 Java 7 across board (see ISIS-568).
 NB: should also check ISIS-647 (fix for 
 http://www.datanucleus.org/servlet/jira/browse/NUCCORE-1103).
 - will possibly want to enable to get better perf?
 NB: also know that there's a change to the way that polymorphism works, is 
 mapped differently (in Estatio).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1058) Upgrade embedded Jetty to latest 8.x

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1058?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1058:
--
Component/s: (was: Core: Viewer: Wicket)
 Core

 Upgrade embedded Jetty to latest 8.x
 

 Key: ISIS-1058
 URL: https://issues.apache.org/jira/browse/ISIS-1058
 Project: Isis
  Issue Type: Task
  Components: Core
Affects Versions: core-1.8.0
Reporter: Martin Grigorov
Assignee: Martin Grigorov
Priority: Minor
 Fix For: core-1.9.0


 Any objections to upgrade embedded Jetty from 6.x to 8.x ?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-893) (Cosmetics): If attempt to invoke non-existent action, get nasty error message

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-893?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-893:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 (Cosmetics): If attempt to invoke non-existent action, get nasty error message
 --

 Key: ISIS-893
 URL: https://issues.apache.org/jira/browse/ISIS-893
 Project: Isis
  Issue Type: Improvement
  Components: Core, Core: Viewer: Wicket
Affects Versions: viewer-wicket-1.6.0, core-1.6.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.10.0


 see the actionId=fooBar
 diverted to error page with following stack trace:
 15:59:41,112  [RequestCycleExtra577739874@qtp-1148559558-0 WARN ]  
 Handling the following exception
 org.apache.wicket.WicketRuntimeException: Can't instantiate page using 
 constructor 'public 
 org.apache.isis.viewer.wicket.ui.pages.actionprompt.ActionPromptPage(org.apache.wicket.request.mapper.parameter.PageParameters)'
  and argument 'actionArgs=[abc], actionArgs=[Professional], 
 actionArgs=[$nullArg$], actionArgs=[20140925], actionArgs=[$nullArg$], 
 objectOid=[dom.todo.ToDoItems:1], actionOwningSpec=[dom.todo.ToDoItems], 
 actionId=[fooBar(java.lang.String,dom.todo.ToDoItem$Category,dom.todo.ToDoItem$Subcategory,org.joda.time.LocalDate,java.math.BigDecimal)],
  actionType=[USER]'. An exception has been thrown during construction!
   at 
 org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:194)
   at 
 org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:99)
   at 
 org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:137)
   at 
 org.apache.wicket.core.request.handler.PageProvider.resolvePageInstance(PageProvider.java:268)
   at 
 org.apache.wicket.core.request.handler.PageProvider.getPageInstance(PageProvider.java:166)
   at 
 org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78)
   at 
 org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:100)
   at 
 org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:221)
   at 
 org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:175)
   at 
 org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:862)
   at 
 org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
   at 
 org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:261)
   at 
 org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:218)
   at 
 org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289)
   at 
 org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
   at 
 org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
   at 
 org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
   at 
 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
   at 
 org.apache.isis.core.webapp.diagnostics.IsisLogOnExceptionFilter.doFilter(IsisLogOnExceptionFilter.java:52)
   at 
 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
   at 
 org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
   at 
 org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
   at 
 org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
   at 
 org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
   at 
 org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
   at 
 org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
   at 
 org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
   at 
 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
   at 
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
   at 
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
   at 
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
   at 
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
   at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
   at 
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
   at 

[jira] [Updated] (ISIS-996) Not possible to replace components in Wicket viewer (workaround is to use add)

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-996?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-996:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Not possible to replace components in Wicket viewer (workaround is to use 
 add)
 --

 Key: ISIS-996
 URL: https://issues.apache.org/jira/browse/ISIS-996
 Project: Isis
  Issue Type: Bug
  Components: Core: Viewer: Wicket
Affects Versions: viewer-wicket-1.7.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.10.0


 As per http://isis.markmail.org/thread/x3k2www3m2wfsgtv
 To recreate:
 - copy ReferencePanelFactory to ReferencePanelFactory2
 in (subclass of) IsisWicketApplication, add:
 {code}
 @com.google.inject.Singleton
 public static class MyComponentFactoryRegistrar extends 
 ComponentFactoryRegistrarDefault {
 @Override
 public void addComponentFactories(ComponentFactoryList 
 componentFactories) {
 super.addComponentFactories(componentFactories);
 componentFactories.replace(new ReferencePanelFactory2());
 }
 }
 {code}
 and
 {code}
 final Module overrides = new AbstractModule() {
 @Override
 protected void configure() {
  ...
 bind(ComponentFactoryRegistrar.class).
 to(MyComponentFactoryRegistrar.class);
 }
 };
 {code}
 the issue is that replace ends up replacing all component factories of type 
 ComponentType.SCALAR_NAME_AND_VALUE, whereas it should instead just replace 
 the one for ReferencePanelFactory.
 The workaround is easy enough: call add (which puts new factory at 
 beginning of list) rather than replace.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-984) Make it possible to use custom icons, not only FontAwesome ones

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-984?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-984:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Make it possible to use custom icons, not only FontAwesome ones
 ---

 Key: ISIS-984
 URL: https://issues.apache.org/jira/browse/ISIS-984
 Project: Isis
  Issue Type: Improvement
  Components: Core: Viewer: Wicket
Affects Versions: core-1.8.0
Reporter: Martin Grigorov
Assignee: Martin Grigorov
Priority: Minor
 Fix For: core-1.10.0


 See discussion at: http://markmail.org/message/nhm7eflnrru2rvcr
 The idea is to replace ActionLayout#cssClassFa and 
 ActionLayout#cssClassFaPosition with ActionLayout#icon.
 Icon will be an interface/abstract class.
 Isis will provide impl for FontAwesome.
 Each application will be able to provide its own impl for any icon type it 
 needs/wants to use (e.g. http://icons8.com/, http://glyphsearch.com/, 
 http://glyphsearch.com/, etc.). 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-904) Support autoComplete with dependent choices.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-904?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-904:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Support autoComplete with dependent choices.
 

 Key: ISIS-904
 URL: https://issues.apache.org/jira/browse/ISIS-904
 Project: Isis
  Issue Type: Improvement
  Components: Core: Viewer: Wicket
Affects Versions: viewer-wicket-1.6.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.10.0


 as per mailing list: http://markmail.org/message/k4cs6hfzb2jl7gsm



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-932) Use HTML5 history API so that the address URL reflects the object being viewed (including any sorting, view selection etc).

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-932?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-932:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Use HTML5 history API so that the address URL reflects the object being 
 viewed (including any sorting, view selection etc).
 ---

 Key: ISIS-932
 URL: https://issues.apache.org/jira/browse/ISIS-932
 Project: Isis
  Issue Type: New Feature
  Components: Core: Viewer: Wicket
Affects Versions: viewer-wicket-1.7.0
Reporter: Dan Haywood
Assignee: Martin Grigorov
Priority: Minor
 Fix For: core-1.10.0






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (ISIS-1028) Create Event Bus Service based on Axon

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1028?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood closed ISIS-1028.
-
   Resolution: Later
Fix Version/s: (was: core-1.9.0)

out of scope; this is for isisaddons instead.

 Create Event Bus Service based on Axon
 --

 Key: ISIS-1028
 URL: https://issues.apache.org/jira/browse/ISIS-1028
 Project: Isis
  Issue Type: New Feature
  Components: Core
Affects Versions: core-1.8.0
Reporter: Oscar Bou
Assignee: Oscar Bou

 Current Guava based implementation queues events, and that implies changes to 
 the execution flow.
 Axon Event Bus implementations simply dispatches events as soon as are posted.
 That way, logic when dispatching events is always the same (immediate 
 dispatching when posted), without depending on an Event being dispatched when 
 no other Event is dispatching (so its Event Handlers would be invoked 
 immediately) or when other Event is currently being dispatched (in which case 
 Guava would queue it instead of immediately dispatching).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (ISIS-186) A (low-level, technical) domain Service (in domain-libs) to allow domain object entities to be able to encrypt data

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-186?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood closed ISIS-186.

   Resolution: Not a Problem
Fix Version/s: (was: GIT REPO only)

Out of scope; can implement in isisaddons as and when there is a requirement.

 A (low-level, technical) domain Service (in domain-libs) to allow domain 
 object entities to be able to encrypt data
 ---

 Key: ISIS-186
 URL: https://issues.apache.org/jira/browse/ISIS-186
 Project: Isis
  Issue Type: New Feature
Reporter: Dan Haywood
Priority: Minor
  Labels: newbie

 There could be various times that a domain service needs to hand off 
 information to some other party in a secure fashion, so that it can either 
 not be encrypted or can be known to have been tampered with.  One possible 
 approach is using HMAC (eg to make cookies tamper proof.)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (ISIS-1071) Provide new HasUsername interface in applib (analogous to HasTransactionId) so that various addon services can contribute to it.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood resolved ISIS-1071.
---
Resolution: Fixed

 Provide new HasUsername interface in applib (analogous to HasTransactionId) 
 so that various addon services can contribute to it.
 

 Key: ISIS-1071
 URL: https://issues.apache.org/jira/browse/ISIS-1071
 Project: Isis
  Issue Type: New Feature
  Components: Core
Affects Versions: core-1.8.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Trivial
 Fix For: core-1.9.0


 For example, if the isisaddons sessionlogger's SessionLogEntry (trivially) 
 implements the interface, then the isisaddons commands module can contribute 
 by displaying the 10 most recent commands for that user.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-542) Restrict which entities a service action is contributed to (as either a contributed action or contributed assocation).

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-542:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Restrict which entities a service action is contributed to (as either a 
 contributed action or contributed assocation).
 --

 Key: ISIS-542
 URL: https://issues.apache.org/jira/browse/ISIS-542
 Project: Isis
  Issue Type: New Feature
  Components: Core
Affects Versions: core-1.2.0
Reporter: Dan Haywood
Assignee: Dan Haywood
 Fix For: core-1.10.0


 For example, an action
 void foo(A a, B b) { ... }
 will be contributed to both entities A and B.  We might want to allow it to 
 be contributed to one or the other.
 Suggestion is that @NotContributed annotation applies to action parameters 
 (with current behaviour maintained for compatibility as the default for all 
 parameters of the action):
 eg
 void foo(
 @NotContributed(As.Action) A, 
 @NotContributed(As.Association) B) { ... }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (ISIS-179) Domain Service (in domain-libs) to allow domain object entities to transform RTFs to PDF

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-179?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood closed ISIS-179.

   Resolution: Later
Fix Version/s: (was: GIT REPO only)

Out of scope; can implement in isisaddons as and when there is a requirement.

 Domain Service (in domain-libs) to allow domain object entities to transform 
 RTFs to PDF
 

 Key: ISIS-179
 URL: https://issues.apache.org/jira/browse/ISIS-179
 Project: Isis
  Issue Type: New Feature
Reporter: Dan Haywood
Priority: Minor
  Labels: newbie

 similar to the DOCX-PDF service (ISIS-173), but to convert an RTF (eg as 
 generated by a domain service ISIS-177) rather than a DOCX



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (ISIS-180) Domain Service (in domain-libs) to allow domain object entities to transform ODFs to PDF

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood closed ISIS-180.

   Resolution: Later
Fix Version/s: (was: GIT REPO only)

Out of scope; can implement in isisaddons as and when there is a requirement.

 Domain Service (in domain-libs) to allow domain object entities to transform 
 ODFs to PDF
 

 Key: ISIS-180
 URL: https://issues.apache.org/jira/browse/ISIS-180
 Project: Isis
  Issue Type: New Feature
Reporter: Dan Haywood
Priority: Minor
  Labels: newbie

 similar to the DOCX-PDF service (ISIS-173), but to convert an ODF (eg as 
 generated by a domain service ISIS-178) rather than a DOCX



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (ISIS-190) A domain Service (in domain-libs) to allow domain object entities to create calendar events in iCal or google calendar etc.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood closed ISIS-190.

   Resolution: Later
Fix Version/s: (was: GIT REPO only)

Out of scope; can implement in isisaddons as and when there is a requirement.

 A domain Service (in domain-libs) to allow domain object entities to create 
 calendar events in iCal or google calendar etc.
 ---

 Key: ISIS-190
 URL: https://issues.apache.org/jira/browse/ISIS-190
 Project: Isis
  Issue Type: New Feature
Affects Versions: 0.2.0-incubating
Reporter: Dan Haywood
Priority: Minor
  Labels: newbie





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-844) Support custom annotations as higher-level semantics (a la BeanVal)

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-844?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-844:
-
Fix Version/s: (was: core-2.0.0)
   core-1.10.0

 Support custom annotations as higher-level semantics (a la BeanVal)
 ---

 Key: ISIS-844
 URL: https://issues.apache.org/jira/browse/ISIS-844
 Project: Isis
  Issue Type: New Feature
  Components: Core
Affects Versions: core-1.6.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.9.0


 For example, a contributed collection requires:
 import org.apache.isis.applib.annotations.*;
 @ActionSemantics(Of.SAFE)
 @NotContributed(As.ASSOCIATION)
 @NotInServiceMenu
 @Render(Type.EAGERLY)
 public ListFoo getFoos() { ... }
 it would be nice to allow the user to simplify the programming model.  For 
 example:
 package com.mycompany.isis;
 import org.apache.isis.applib.annotations.*;
 @ActionSemantics(Of.SAFE)
 @NotContributed(As.ASSOCIATION)
 @NotInServiceMenu
 @Render(Type.EAGERLY)
 public @interface ContributedCollection {}
 and then:
 import com.mycompany.isis.*;
 @ContributedCollection
 public ListFoo getFoos() { ... }
 ~~~
 Thus, Isis continues to define the base primitive semantics, but the 
 end-programmer is free to introduce higher-level semantics/abstractions if 
 they so wish.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (ISIS-1079) FixtureScript#defaultParam should actually default the property on the fixture script...

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood resolved ISIS-1079.
---
Resolution: Fixed

 FixtureScript#defaultParam should actually default the property on the 
 fixture script...
 

 Key: ISIS-1079
 URL: https://issues.apache.org/jira/browse/ISIS-1079
 Project: Isis
  Issue Type: Bug
  Components: Core
Affects Versions: core-1.8.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.9.0


 ... rather than merely returning the default value.
 In addition, should support isXxx() for booleans.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1051) Only call LayoutMetadataReaderFromJson on entities

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1051?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1051:
--
Component/s: Core

 Only call LayoutMetadataReaderFromJson on entities
 --

 Key: ISIS-1051
 URL: https://issues.apache.org/jira/browse/ISIS-1051
 Project: Isis
  Issue Type: Improvement
  Components: Core
Affects Versions: core-1.7.0
Reporter: Dan Haywood
Assignee: Dan Haywood
 Fix For: core-1.9.0


 Taken from a comment by Martin on ISIS-931:
 While debugging ISIS-911 I've noticed that 
 org.apache.isis.core.metamodel.layoutmetadata.json.LayoutMetadataReaderFromJson#asProperties
  is expensive. It is called at start time and tries to load .layout.json file 
 for every introspected method. This includes JRE classes, JDO classes, and 
 many more. I think it should be called only for objects/entities. The 
 expensiveness is that it tries to find a file in the classpath and if it is 
 not found then it throws 
 org.apache.isis.core.metamodel.layoutmetadata.LayoutMetadataReader.ReaderException.
  The stacktrace of this exception is ignored at 
 org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder#readMetadataProperties
  so 
 ReaderException could override java.lang.Throwable#fillInStackTrace() to 
 return null and save some time.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1022) Refactor IsisConverterLocator so that the converters are facets.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1022?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1022:
--
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Refactor IsisConverterLocator so that the converters are facets.
 

 Key: ISIS-1022
 URL: https://issues.apache.org/jira/browse/ISIS-1022
 Project: Isis
  Issue Type: Improvement
  Components: Core, Core: Viewer: Wicket
Affects Versions: core-1.8.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.10.0


 In ISIS-1012 we introduced the IsisConverterLocator class that inspects the 
 ObjectSpecification and returns a suitable Wicket IConverter implementation.
 The implementation of this is a big switch statement.
 A better design would be for the IConverter to be made available through a 
 suitable facet, probably as an extension of the existing ValueFacet.  This 
 would require updating the appropriate facet factories for all appropriate 
 values.
 Note that we don't want Isis to have a dependency on Wicket, and so Isis 
 would need to define its own parallel (copy of) IConverter, and have the 
 ValueFacet return this.
 Then, in IsisConverterLocator, it would simply be a matter of adapting the 
 Isis' IConverter into a Wicket IConverter.
 The final implementation of IsisConverterLocator would be something like:
 {code}
 final ObjectSpecification objectSpecification = 
 objectAdapter.getSpecification();
 ValueFacet vf = objectSpecification.getFacet(ValueFacet.class)
 if(vf == null) { return null; }
 final org.apache.isis.core.metamodel.IConverter ic = vf.getConverter();
 if (ic == null) { return null; }
 return new org.apache.wicket.util.convert.IConverter() {
 public Object convertToObject(String value, Locale locale) {
return ic.convertToObject(value, locale);
 }
 public String convertToString(C value, Locale locale) {
 return ic.convertToString(value, locale);
 }
 };
 {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-991) Enhance Wicket viewer so that non-disabled collections can be added to / removed from.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-991?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-991:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Enhance Wicket viewer so that non-disabled collections can be added to / 
 removed from.
 --

 Key: ISIS-991
 URL: https://issues.apache.org/jira/browse/ISIS-991
 Project: Isis
  Issue Type: New Feature
  Components: Core: Viewer: Wicket
Affects Versions: viewer-wicket-1.7.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.10.0


 as per [1] (stuff pertaining to collections)
 if collection is not @Disabled, then should render buttons to allow 
 add/remove.
 The remove implementation ought to list all current objects.
 The add implementation ought to support choicesAddToXxx() and 
 autoCompleteAddToXxx().
 [1] http://isis.markmail.org/thread/jdylmfxrzdryhrlq



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1066) Moving CustomRepresentationService to dom - There is no application attached to current thread main

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1066?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1066:
--
Component/s: Core: Viewer: RestfulObjects

 Moving CustomRepresentationService to dom - There is no application attached 
 to current thread main
 ---

 Key: ISIS-1066
 URL: https://issues.apache.org/jira/browse/ISIS-1066
 Project: Isis
  Issue Type: Bug
  Components: Core: Viewer: RestfulObjects
Affects Versions: core-1.8.0
Reporter: Timothy Simecsek
Assignee: Dan Haywood
 Fix For: core-1.9.0

 Attachments: patch.txt


 Hi,
 We are using  something similar to CustomRepresentationService of todoapp, we 
 use it to get a simple JSON representation.
 Our CustomRepresentationService is annotated as DomainService, its package is 
 registered in isis.properties 
 (isis.services.ServicesInstallerFromAnnotation.packagePrefix but not in 
 isis.services!) and it is located in the dom module.
 With apache isis 1.7 it was working, now we migrated to isis 1.8 and now this 
 causes an error during maven install:
 WicketRuntimeException: There is no application attached to current thread 
 main
 {noformat}
 16:05:09,146  [IsisTransaction  main   INFO ]  abort transaction 
 IsisTransaction@2a49af03[state=MUST_ABORT,commands=0]
 Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 10.018 sec 
  FAILURE! - in ase.integration.test.ESIntegTest
 ase.integration.test.ESIntegTest  Time elapsed: 10.018 sec   ERROR!
 java.lang.RuntimeException: 
 org.apache.isis.core.runtime.system.transaction.IsisTransactionManagerException:
  org.apache.wicket.WicketRuntimeException: There is no application attached 
 to current thread main
   at 
 org.apache.isis.core.integtestsupport.IsisSystemForTest.setUpSystem(IsisSystemForTest.java:350)
   at 
 ase.integration.AddressSearchEngineSystemInitializer.initIsft(AddressSearchEngineSystemInitializer.java:46)
   at 
 ase.integration.AbstractAseIntegTest.initClass(AbstractAseIntegTest.java:13)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 {noformat}
 When I run the application on tomcat everything seems to work, the UI is 
 available and I can access the CustomRepresentationService through Rest API.
 I did the described changes on the todoapp for isis 1.8 and I'm getting same 
 result (I attached my changes with patch.txt).
 I moved the CustomRepresentationService to dom module because I need an 
 possibility to unit test the generated JSON strings.
 Please fix that issue or assist me in creating a workaround.
 Thanks,
 Timothy



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (ISIS-1065) Auditing of editing of properties only audits one of the properties changed (the last one)

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1065?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood resolved ISIS-1065.
---
Resolution: Fixed

 Auditing of editing of properties only audits one of the properties changed 
 (the last one)
 --

 Key: ISIS-1065
 URL: https://issues.apache.org/jira/browse/ISIS-1065
 Project: Isis
  Issue Type: Bug
  Components: Core
Affects Versions: core-1.8.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Critical
 Fix For: core-1.9.0


 The reason being that the JDO preDirty callback (from which 
 IsisTransaction#enlistUpdating is called) is called multiple times for each 
 dirtied property.
 The fix is to add a guard to only add to the pre values if the pre value 
 has not already been captured.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (ISIS-1069) DomainChangeJdoAbstract's open action incorrectly annotated as being a bulk action.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1069?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood resolved ISIS-1069.
---
Resolution: Fixed

 DomainChangeJdoAbstract's open action incorrectly annotated as being a bulk 
 action.
 ---

 Key: ISIS-1069
 URL: https://issues.apache.org/jira/browse/ISIS-1069
 Project: Isis
  Issue Type: Bug
  Components: Core
Affects Versions: core-1.8.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Trivial
 Fix For: core-1.9.0


 This the base class for AuditEntry, CommandJdo, PublishedEvent (in 
 isisaddons).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1066) Moving CustomRepresentationService to dom - There is no application attached to current thread main

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1066?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1066:
--
Fix Version/s: core-1.9.0

 Moving CustomRepresentationService to dom - There is no application attached 
 to current thread main
 ---

 Key: ISIS-1066
 URL: https://issues.apache.org/jira/browse/ISIS-1066
 Project: Isis
  Issue Type: Bug
Affects Versions: core-1.8.0
Reporter: Timothy Simecsek
Assignee: Dan Haywood
 Fix For: core-1.9.0

 Attachments: patch.txt


 Hi,
 We are using  something similar to CustomRepresentationService of todoapp, we 
 use it to get a simple JSON representation.
 Our CustomRepresentationService is annotated as DomainService, its package is 
 registered in isis.properties 
 (isis.services.ServicesInstallerFromAnnotation.packagePrefix but not in 
 isis.services!) and it is located in the dom module.
 With apache isis 1.7 it was working, now we migrated to isis 1.8 and now this 
 causes an error during maven install:
 WicketRuntimeException: There is no application attached to current thread 
 main
 {noformat}
 16:05:09,146  [IsisTransaction  main   INFO ]  abort transaction 
 IsisTransaction@2a49af03[state=MUST_ABORT,commands=0]
 Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 10.018 sec 
  FAILURE! - in ase.integration.test.ESIntegTest
 ase.integration.test.ESIntegTest  Time elapsed: 10.018 sec   ERROR!
 java.lang.RuntimeException: 
 org.apache.isis.core.runtime.system.transaction.IsisTransactionManagerException:
  org.apache.wicket.WicketRuntimeException: There is no application attached 
 to current thread main
   at 
 org.apache.isis.core.integtestsupport.IsisSystemForTest.setUpSystem(IsisSystemForTest.java:350)
   at 
 ase.integration.AddressSearchEngineSystemInitializer.initIsft(AddressSearchEngineSystemInitializer.java:46)
   at 
 ase.integration.AbstractAseIntegTest.initClass(AbstractAseIntegTest.java:13)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 {noformat}
 When I run the application on tomcat everything seems to work, the UI is 
 available and I can access the CustomRepresentationService through Rest API.
 I did the described changes on the todoapp for isis 1.8 and I'm getting same 
 result (I attached my changes with patch.txt).
 I moved the CustomRepresentationService to dom module because I need an 
 possibility to unit test the generated JSON strings.
 Please fix that issue or assist me in creating a workaround.
 Thanks,
 Timothy



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (ISIS-454) New mechanism to disable members globally. However, any disablement rules applied on the member should overrule the policy defined on the type.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-454?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood closed ISIS-454.

   Resolution: Fixed
Fix Version/s: (was: core-2.0.0)
   core-1.8.0

This was actually fixed as part of ISIS-970, released in v1.8.0

 New mechanism to disable members globally.  However, any disablement rules 
 applied on the member should overrule the policy defined on the type.
 --

 Key: ISIS-454
 URL: https://issues.apache.org/jira/browse/ISIS-454
 Project: Isis
  Issue Type: New Feature
  Components: Core
Affects Versions: core-1.2.0
Reporter: Jeroen van der Wal
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.8.0


 If done using a method, this would be something like:
 public String disable(String memberName, MemberType memberType) {
 if(memberName.equals(notes)) { return null; }
 if(memberType == MemberType.PROPERTY) {
  WithStatus ws = (WithStatus)domainObject;
  return ws.isLocked()? cannot modify because locked: null;
  }
 return null;
 }
 If done using an annotation, this would be something like:
 @Disabled(policy=StateIsLockedPolicy.class)
 public abstract class MyDomainObjectT extends EstatioDomainObjectT, S 
 extends Lockable extends MyDomainObjectT implements WithStatusT,S {
 public static StateIsLockedPolicy implements DisabledPolicy {
 public String disable(Object domainObject, String memberName, 
 MemberType memberType) {
 if(memberName.equals(notes)) { return null; }
 if(memberType == MemberType.PROPERTY) {
 WithStatus ws = (WithStatus)domainObject;
 return ws.isLocked()? cannot modify because locked: null;
 }
 return null;
 }
 }
 ...
 }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-994) Actions that act as contributed properties and which return a URL should display that URL inline within an iframe.

2015-03-12 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-994?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-994:
-
Fix Version/s: (was: core-1.9.0)
   core-1.10.0

 Actions that act as contributed properties and which return a URL should 
 display that URL inline within an iframe.
 --

 Key: ISIS-994
 URL: https://issues.apache.org/jira/browse/ISIS-994
 Project: Isis
  Issue Type: New Feature
  Components: Core: Viewer: Wicket
Affects Versions: viewer-wicket-1.7.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: core-1.10.0


 As per [1] mailing list thread, in particular its screenshot [5],
 if a contributed property (= action) returns a URL, then it should be 
 rendered within an iframe.   It may not actually be necessary to require any 
 other metadata.
 eg
 @Action(semantics=SemanticsOf.SAFE)
 @ActionLayout
 public URL editor(Asset asset) { ... }
 [1] http://markmail.org/message/merftvqoiy6ht3kq
 [5] http://postimg.org/image/k83i6b70x/



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)