From a46339b44e99c34ede0a75653a64bd9eb28bcc80 Mon Sep 17 00:00:00 2001 From: Andrew Hind Date: Thu, 30 Jun 2011 09:18:46 +0000 Subject: [PATCH] ALF-8990: RSOLR 032: Model track and build from SOLR - SOLR tracking now reflects all models loaded and changed on the repo to which it points - model tracking and related fixes - model XML now round trips for Boolean properties :-) - upgraded to latest version of jibx - 1.2.3 - added API to load models and not class load constraint extensions (does not affect the generated model XML only constraint enforcement) - removed solr specific m2 model binding - fixed SOLR tracking test git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28714 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org/alfresco/repository/solr/model.get.desc.xml | 2 +- .../alfresco/repository/solr/modelsdiff.post.json.ftl | 2 +- .../repo/web/scripts/solr/AlfrescoModelGet.java | 11 +++++------ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/solr/model.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/solr/model.get.desc.xml index 3435509ac5..a1fc523a37 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/solr/model.get.desc.xml +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/solr/model.get.desc.xml @@ -1,7 +1,7 @@ Get Model Get the model for given model name. - /api/solr/model/{modelShortQName} + /api/solr/model argument admin required diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/solr/modelsdiff.post.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/solr/modelsdiff.post.json.ftl index e153dc99cd..5ffc0c2c2c 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/solr/modelsdiff.post.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/solr/modelsdiff.post.json.ftl @@ -4,7 +4,7 @@ [ <#list diffs as diff> { - "name": <@solrLib.qNameJSON qName=diff.modelName/>, + "name": "${diff.modelName}", "type" : "${diff.type}", "oldChecksum": <#if diff.oldChecksum??>${diff.oldChecksum?c}<#else>null, "newChecksum": <#if diff.newChecksum??>${diff.newChecksum?c}<#else>null diff --git a/source/java/org/alfresco/repo/web/scripts/solr/AlfrescoModelGet.java b/source/java/org/alfresco/repo/web/scripts/solr/AlfrescoModelGet.java index d39ee7510b..7ed3d36815 100644 --- a/source/java/org/alfresco/repo/web/scripts/solr/AlfrescoModelGet.java +++ b/source/java/org/alfresco/repo/web/scripts/solr/AlfrescoModelGet.java @@ -58,17 +58,16 @@ public class AlfrescoModelGet extends AbstractWebScript private void handle(WebScriptRequest req, WebScriptResponse res) throws JSONException, IOException { // create map of template vars - Map templateVars = req.getServiceMatch().getTemplateVars(); - String modelName = templateVars.get("modelShortQName"); - if(modelName == null) + String modelQName = req.getParameter("modelQName"); + if(modelQName == null) { throw new WebScriptException( Status.STATUS_BAD_REQUEST, - "URL parameter 'modelShortQName' not provided."); + "URL parameter 'modelQName' not provided."); } - ModelDefinition.XMLBindingType bindingType = ModelDefinition.XMLBindingType.SOLR; - AlfrescoModel model = solrTrackingComponent.getModel(QName.createQName(modelName, namespaceService)); + ModelDefinition.XMLBindingType bindingType = ModelDefinition.XMLBindingType.DEFAULT; + AlfrescoModel model = solrTrackingComponent.getModel(QName.createQName(modelQName)); res.setHeader("XAlfresco-modelChecksum", String.valueOf(model.getModelDef().getChecksum(bindingType))); model.getModelDef().toXML(bindingType, res.getOutputStream()); }