svn commit: r1707042 [8/11] - in /ofbiz/trunk: ./ framework/base/lib/ specialpurpose/lucene/lib/ specialpurpose/lucene/src/org/ofbiz/content/search/ specialpurpose/lucene/src/org/ofbiz/content/test/ specialpurpose/runtime/ specialpurpose/runtime/indexe...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1707042 [8/11] - in /ofbiz/trunk: ./ framework/base/lib/ specialpurpose/lucene/lib/ specialpurpose/lucene/src/org/ofbiz/content/search/ specialpurpose/lucene/src/org/ofbiz/content/test/ specialpurpose/runtime/ specialpurpose/runtime/indexe...

shijh
Added: ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/example_atom.xsl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/example_atom.xsl?rev=1707042&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/example_atom.xsl (added)
+++ ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/example_atom.xsl Tue Oct  6 12:48:53 2015
@@ -0,0 +1,67 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<!--
+ * 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.
+ -->
+
+<!--
+  Simple transform of Solr query results to Atom
+ -->
+
+<xsl:stylesheet version='1.0'
+    xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
+
+  <xsl:output
+       method="xml"
+       encoding="utf-8"
+       media-type="application/xml"
+  />
+
+  <xsl:template match='/'>
+    <xsl:variable name="query" select="response/lst[@name='responseHeader']/lst[@name='params']/str[@name='q']"/>
+    <feed xmlns="http://www.w3.org/2005/Atom">
+      <title>Example Solr Atom 1.0 Feed</title>
+      <subtitle>
+       This has been formatted by the sample "example_atom.xsl" transform -
+       use your own XSLT to get a nicer Atom feed.
+      </subtitle>
+      <author>
+        <name>Apache Solr</name>
+        <email>[hidden email]</email>
+      </author>
+      <link rel="self" type="application/atom+xml"
+            href="http://localhost:8983/solr/q={$query}&amp;wt=xslt&amp;tr=atom.xsl"/>
+      <updated>
+        <xsl:value-of select="response/result/doc[position()=1]/date[@name='timestamp']"/>
+      </updated>
+      <id>tag:localhost,2007:example</id>
+      <xsl:apply-templates select="response/result/doc"/>
+    </feed>
+  </xsl:template>
+    
+  <!-- search results xslt -->
+  <xsl:template match="doc">
+    <xsl:variable name="id" select="str[@name='id']"/>
+    <entry>
+      <title><xsl:value-of select="str[@name='name']"/></title>
+      <link href="http://localhost:8983/solr/select?q={$id}"/>
+      <id>tag:localhost,2007:<xsl:value-of select="$id"/></id>
+      <summary><xsl:value-of select="arr[@name='features']"/></summary>
+      <updated><xsl:value-of select="date[@name='timestamp']"/></updated>
+    </entry>
+  </xsl:template>
+
+</xsl:stylesheet>

Propchange: ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/example_atom.xsl
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/example_rss.xsl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/example_rss.xsl?rev=1707042&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/example_rss.xsl (added)
+++ ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/example_rss.xsl Tue Oct  6 12:48:53 2015
@@ -0,0 +1,66 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<!--
+ * 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.
+ -->
+
+<!--
+  Simple transform of Solr query results to RSS
+ -->
+
+<xsl:stylesheet version='1.0'
+    xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
+
+  <xsl:output
+       method="xml"
+       encoding="utf-8"
+       media-type="application/xml"
+  />
+  <xsl:template match='/'>
+    <rss version="2.0">
+       <channel>
+ <title>Example Solr RSS 2.0 Feed</title>
+         <link>http://localhost:8983/solr</link>
+         <description>
+          This has been formatted by the sample "example_rss.xsl" transform -
+          use your own XSLT to get a nicer RSS feed.
+         </description>
+         <language>en-us</language>
+         <docs>http://localhost:8983/solr</docs>
+         <xsl:apply-templates select="response/result/doc"/>
+       </channel>
+    </rss>
+  </xsl:template>
+  
+  <!-- search results xslt -->
+  <xsl:template match="doc">
+    <xsl:variable name="id" select="str[@name='id']"/>
+    <xsl:variable name="timestamp" select="date[@name='timestamp']"/>
+    <item>
+      <title><xsl:value-of select="str[@name='name']"/></title>
+      <link>
+        http://localhost:8983/solr/select?q=id:<xsl:value-of select="$id"/>
+      </link>
+      <description>
+        <xsl:value-of select="arr[@name='features']"/>
+      </description>
+      <pubDate><xsl:value-of select="$timestamp"/></pubDate>
+      <guid>
+        http://localhost:8983/solr/select?q=id:<xsl:value-of select="$id"/>
+      </guid>
+    </item>
+  </xsl:template>
+</xsl:stylesheet>

Propchange: ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/example_rss.xsl
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/luke.xsl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/luke.xsl?rev=1707042&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/luke.xsl (added)
+++ ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/luke.xsl Tue Oct  6 12:48:53 2015
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+
+
+<!--
+  Display the luke request handler with graphs
+ -->
+<xsl:stylesheet
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns="http://www.w3.org/1999/xhtml"
+    version="1.0"
+    >
+    <xsl:output
+        method="html"
+        encoding="UTF-8"
+        media-type="text/html"
+        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
+        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+    />
+
+    <xsl:variable name="title">Solr Luke Request Handler Response</xsl:variable>
+
+    <xsl:template match="/">
+        <html xmlns="http://www.w3.org/1999/xhtml">
+            <head>
+                <link rel="stylesheet" type="text/css" href="solr-admin.css"/>
+                <link rel="icon" href="favicon.ico" type="image/x-icon"/>
+                <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>
+                <title>
+                    <xsl:value-of select="$title"/>
+                </title>
+                <xsl:call-template name="css"/>
+
+            </head>
+            <body>
+                <h1>
+                    <xsl:value-of select="$title"/>
+                </h1>
+                <div class="doc">
+                    <ul>
+                        <xsl:if test="response/lst[@name='index']">
+                            <li>
+                                <a href="#index">Index Statistics</a>
+                            </li>
+                        </xsl:if>
+                        <xsl:if test="response/lst[@name='fields']">
+                            <li>
+                                <a href="#fields">Field Statistics</a>
+                                <ul>
+                                    <xsl:for-each select="response/lst[@name='fields']/lst">
+                                        <li>
+                                            <a href="#{@name}">
+                                                <xsl:value-of select="@name"/>
+                                            </a>
+                                        </li>
+                                    </xsl:for-each>
+                                </ul>
+                            </li>
+                        </xsl:if>
+                        <xsl:if test="response/lst[@name='doc']">
+                            <li>
+                                <a href="#doc">Document statistics</a>
+                            </li>
+                        </xsl:if>
+                    </ul>
+                </div>
+                <xsl:if test="response/lst[@name='index']">
+                    <h2><a name="index"/>Index Statistics</h2>
+                    <xsl:apply-templates select="response/lst[@name='index']"/>
+                </xsl:if>
+                <xsl:if test="response/lst[@name='fields']">
+                    <h2><a name="fields"/>Field Statistics</h2>
+                    <xsl:apply-templates select="response/lst[@name='fields']"/>
+                </xsl:if>
+                <xsl:if test="response/lst[@name='doc']">
+                    <h2><a name="doc"/>Document statistics</h2>
+                    <xsl:apply-templates select="response/lst[@name='doc']"/>
+                </xsl:if>
+            </body>
+        </html>
+    </xsl:template>
+
+    <xsl:template match="lst">
+        <xsl:if test="parent::lst">
+            <tr>
+                <td colspan="2">
+                    <div class="doc">
+                        <xsl:call-template name="list"/>
+                    </div>
+                </td>
+            </tr>
+        </xsl:if>
+        <xsl:if test="not(parent::lst)">
+            <div class="doc">
+                <xsl:call-template name="list"/>
+            </div>
+        </xsl:if>
+    </xsl:template>
+
+    <xsl:template name="list">
+        <xsl:if test="count(child::*)>0">
+            <table>
+                <thead>
+                    <tr>
+                        <th colspan="2">
+                            <p>
+                                <a name="{@name}"/>
+                            </p>
+                            <xsl:value-of select="@name"/>
+                        </th>
+                    </tr>
+                </thead>
+                <tbody>
+                    <xsl:choose>
+                        <xsl:when
+                            test="@name='histogram'">
+                            <tr>
+                                <td colspan="2">
+                                    <xsl:call-template name="histogram"/>
+                                </td>
+                            </tr>
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <xsl:apply-templates/>
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </tbody>
+            </table>
+        </xsl:if>
+    </xsl:template>
+
+    <xsl:template name="histogram">
+        <div class="doc">
+            <xsl:call-template name="barchart">
+                <xsl:with-param name="max_bar_width">50</xsl:with-param>
+                <xsl:with-param name="iwidth">800</xsl:with-param>
+                <xsl:with-param name="iheight">160</xsl:with-param>
+                <xsl:with-param name="fill">blue</xsl:with-param>
+            </xsl:call-template>
+        </div>
+    </xsl:template>
+
+    <xsl:template name="barchart">
+        <xsl:param name="max_bar_width"/>
+        <xsl:param name="iwidth"/>
+        <xsl:param name="iheight"/>
+        <xsl:param name="fill"/>
+        <xsl:variable name="max">
+            <xsl:for-each select="int">
+                <xsl:sort data-type="number" order="descending"/>
+                <xsl:if test="position()=1">
+                    <xsl:value-of select="."/>
+                </xsl:if>
+            </xsl:for-each>
+        </xsl:variable>
+        <xsl:variable name="bars">
+           <xsl:value-of select="count(int)"/>
+        </xsl:variable>
+        <xsl:variable name="bar_width">
+           <xsl:choose>
+             <xsl:when test="$max_bar_width &lt; ($iwidth div $bars)">
+               <xsl:value-of select="$max_bar_width"/>
+             </xsl:when>
+             <xsl:otherwise>
+               <xsl:value-of select="$iwidth div $bars"/>
+             </xsl:otherwise>
+           </xsl:choose>
+        </xsl:variable>
+        <table class="histogram">
+           <tbody>
+              <tr>
+                <xsl:for-each select="int">
+                   <td>
+                 <xsl:value-of select="."/>
+                 <div class="histogram">
+                  <xsl:attribute name="style">background-color: <xsl:value-of select="$fill"/>; width: <xsl:value-of select="$bar_width"/>px; height: <xsl:value-of select="($iheight*number(.)) div $max"/>px;</xsl:attribute>
+                 </div>
+                   </td>
+                </xsl:for-each>
+              </tr>
+              <tr>
+                <xsl:for-each select="int">
+                   <td>
+                       <xsl:value-of select="@name"/>
+                   </td>
+                </xsl:for-each>
+              </tr>
+           </tbody>
+        </table>
+    </xsl:template>
+
+    <xsl:template name="keyvalue">
+        <xsl:choose>
+            <xsl:when test="@name">
+                <tr>
+                    <td class="name">
+                        <xsl:value-of select="@name"/>
+                    </td>
+                    <td class="value">
+                        <xsl:value-of select="."/>
+                    </td>
+                </tr>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:value-of select="."/>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+
+    <xsl:template match="int|bool|long|float|double|uuid|date">
+        <xsl:call-template name="keyvalue"/>
+    </xsl:template>
+
+    <xsl:template match="arr">
+        <tr>
+            <td class="name">
+                <xsl:value-of select="@name"/>
+            </td>
+            <td class="value">
+                <ul>
+                    <xsl:for-each select="child::*">
+                        <li>
+                            <xsl:apply-templates/>
+                        </li>
+                    </xsl:for-each>
+                </ul>
+            </td>
+        </tr>
+    </xsl:template>
+
+    <xsl:template match="str">
+        <xsl:choose>
+            <xsl:when test="@name='schema' or @name='index' or @name='flags'">
+                <xsl:call-template name="schema"/>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:call-template name="keyvalue"/>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+
+    <xsl:template name="schema">
+        <tr>
+            <td class="name">
+                <xsl:value-of select="@name"/>
+            </td>
+            <td class="value">
+                <xsl:if test="contains(.,'unstored')">
+                    <xsl:value-of select="."/>
+                </xsl:if>
+                <xsl:if test="not(contains(.,'unstored'))">
+                    <xsl:call-template name="infochar2string">
+                        <xsl:with-param name="charList">
+                            <xsl:value-of select="."/>
+                        </xsl:with-param>
+                    </xsl:call-template>
+                </xsl:if>
+            </td>
+        </tr>
+    </xsl:template>
+
+    <xsl:template name="infochar2string">
+        <xsl:param name="i">1</xsl:param>
+        <xsl:param name="charList"/>
+
+        <xsl:variable name="char">
+            <xsl:value-of select="substring($charList,$i,1)"/>
+        </xsl:variable>
+        <xsl:choose>
+            <xsl:when test="$char='I'">
+                <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='I']"/> - </xsl:when>
+            <xsl:when test="$char='T'">
+                <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='T']"/> - </xsl:when>
+            <xsl:when test="$char='S'">
+                <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='S']"/> - </xsl:when>
+            <xsl:when test="$char='M'">
+                <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='M']"/> - </xsl:when>
+            <xsl:when test="$char='V'">
+                <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='V']"/> - </xsl:when>
+            <xsl:when test="$char='o'">
+                <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='o']"/> - </xsl:when>
+            <xsl:when test="$char='p'">
+                <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='p']"/> - </xsl:when>
+            <xsl:when test="$char='O'">
+                <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='O']"/> - </xsl:when>
+            <xsl:when test="$char='L'">
+                <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='L']"/> - </xsl:when>
+            <xsl:when test="$char='B'">
+                <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='B']"/> - </xsl:when>
+            <xsl:when test="$char='C'">
+                <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='C']"/> - </xsl:when>
+            <xsl:when test="$char='f'">
+                <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='f']"/> - </xsl:when>
+            <xsl:when test="$char='l'">
+                <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='l']"/> -
+            </xsl:when>
+        </xsl:choose>
+
+        <xsl:if test="not($i>=string-length($charList))">
+            <xsl:call-template name="infochar2string">
+                <xsl:with-param name="i">
+                    <xsl:value-of select="$i+1"/>
+                </xsl:with-param>
+                <xsl:with-param name="charList">
+                    <xsl:value-of select="$charList"/>
+                </xsl:with-param>
+            </xsl:call-template>
+        </xsl:if>
+    </xsl:template>
+    <xsl:template name="css">
+        <style type="text/css">
+            <![CDATA[
+            td.name {font-style: italic; font-size:80%; }
+            .doc { margin: 0.5em; border: solid grey 1px; }
+            .exp { display: none; font-family: monospace; white-space: pre; }
+            div.histogram { background: none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;}
+            table.histogram { width: auto; vertical-align: bottom; }
+            table.histogram td, table.histogram th { text-align: center; vertical-align: bottom; border-bottom: 1px solid #ff9933; width: auto; }
+            ]]>
+        </style>
+    </xsl:template>
+</xsl:stylesheet>

Propchange: ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/luke.xsl
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/updateXml.xsl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/updateXml.xsl?rev=1707042&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/updateXml.xsl (added)
+++ ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/updateXml.xsl Tue Oct  6 12:48:53 2015
@@ -0,0 +1,70 @@
+<!--
+ * 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.
+ -->
+
+<!--
+  Simple transform of Solr query response into Solr Update XML compliant XML.
+  When used in the xslt response writer you will get UpdaateXML as output.
+  But you can also store a query response XML to disk and feed this XML to
+  the XSLTUpdateRequestHandler to index the content. Provided as example only.
+  See http://wiki.apache.org/solr/XsltUpdateRequestHandler for more info
+ -->
+<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
+  <xsl:output media-type="text/xml" method="xml" indent="yes"/>
+
+  <xsl:template match='/'>
+    <add>
+        <xsl:apply-templates select="response/result/doc"/>
+    </add>
+  </xsl:template>
+  
+  <!-- Ignore score (makes no sense to index) -->
+  <xsl:template match="doc/*[@name='score']" priority="100">
+  </xsl:template>
+
+  <xsl:template match="doc">
+    <xsl:variable name="pos" select="position()"/>
+    <doc>
+        <xsl:apply-templates>
+          <xsl:with-param name="pos"><xsl:value-of select="$pos"/></xsl:with-param>
+        </xsl:apply-templates>
+    </doc>
+  </xsl:template>
+
+  <!-- Flatten arrays to duplicate field lines -->
+  <xsl:template match="doc/arr" priority="100">
+      <xsl:variable name="fn" select="@name"/>
+      
+      <xsl:for-each select="*">
+ <xsl:element name="field">
+    <xsl:attribute name="name"><xsl:value-of select="$fn"/></xsl:attribute>
+        <xsl:value-of select="."/>
+ </xsl:element>
+      </xsl:for-each>
+  </xsl:template>
+
+
+  <xsl:template match="doc/*">
+      <xsl:variable name="fn" select="@name"/>
+
+ <xsl:element name="field">
+    <xsl:attribute name="name"><xsl:value-of select="$fn"/></xsl:attribute>
+        <xsl:value-of select="."/>
+ </xsl:element>
+  </xsl:template>
+
+  <xsl:template match="*"/>
+</xsl:stylesheet>

Propchange: ofbiz/trunk/specialpurpose/solr/home/solrdefault/conf/xslt/updateXml.xsl
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/trunk/specialpurpose/solr/home/solrdefault/core.properties
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/home/solrdefault/core.properties?rev=1707042&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/home/solrdefault/core.properties (added)
+++ ofbiz/trunk/specialpurpose/solr/home/solrdefault/core.properties Tue Oct  6 12:48:53 2015
@@ -0,0 +1,2 @@
+# To config this file, please read:
+# https://cwiki.apache.org/confluence/display/solr/Defining+core.properties

Propchange: ofbiz/trunk/specialpurpose/solr/home/solrdefault/core.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/trunk/specialpurpose/solr/home/solrdefault/runtime/indexes/tlog/tlog.0000000000000000000
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/home/solrdefault/runtime/indexes/tlog/tlog.0000000000000000000?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/home/solrdefault/runtime/indexes/tlog/tlog.0000000000000000000
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/home/zoo.cfg
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/home/zoo.cfg?rev=1707042&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/home/zoo.cfg (added)
+++ ofbiz/trunk/specialpurpose/solr/home/zoo.cfg Tue Oct  6 12:48:53 2015
@@ -0,0 +1,17 @@
+# The number of milliseconds of each tick
+tickTime=2000
+# The number of ticks that the initial
+# synchronization phase can take
+initLimit=10
+# The number of ticks that can pass between
+# sending a request and getting an acknowledgement
+syncLimit=5
+
+# the directory where the snapshot is stored.
+# dataDir=/opt/zookeeper/data
+# NOTE: Solr defaults the dataDir to <solrHome>/zoo_data
+
+# the port at which the clients will connect
+# clientPort=2181
+# NOTE: Solr sets this based on zkRun / zkHost params
+

Added: ofbiz/trunk/specialpurpose/solr/lib/compile/solr-core-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/lib/compile/solr-core-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/lib/compile/solr-core-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/lib/compile/solr-solrj-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/lib/compile/solr-solrj-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/lib/compile/solr-solrj-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-codecs-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-codecs-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-codecs-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-highlighter-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-highlighter-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-highlighter-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-join-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-join-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-join-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-misc-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-misc-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-misc-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-queries-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-queries-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-queries-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-spatial-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-spatial-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-spatial-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-suggest-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-suggest-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/lib/runtime/lucene-suggest-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/lib/runtime/noggit-0.6.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/lib/runtime/noggit-0.6.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/lib/runtime/noggit-0.6.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/lib/runtime/org.restlet-2.3.0.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/lib/runtime/org.restlet-2.3.0.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/lib/runtime/org.restlet-2.3.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/lib/runtime/org.restlet.ext.servlet-2.3.0.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/lib/runtime/org.restlet.ext.servlet-2.3.0.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/lib/runtime/org.restlet.ext.servlet-2.3.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/SolrProductSearch.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/SolrProductSearch.java?rev=1707042&r1=1707041&r2=1707042&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/SolrProductSearch.java (original)
+++ ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/SolrProductSearch.java Tue Oct  6 12:48:53 2015
@@ -35,7 +35,7 @@ import javolution.util.FastMap;
 import org.apache.commons.lang.StringUtils;
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.client.solrj.response.FacetField;
 import org.apache.solr.client.solrj.response.FacetField.Count;
 import org.apache.solr.client.solrj.response.QueryResponse;
@@ -112,7 +112,7 @@ public abstract class SolrProductSearch
      * Adds product to solr index.
      */
     public static Map<String, Object> addToSolrIndex(DispatchContext dctx, Map<String, Object> context) throws GenericEntityException {
-        HttpSolrServer server = null;
+        HttpSolrClient client = null;
         Map<String, Object> result;
         String productId = (String) context.get("productId");
         // connectErrorNonFatal is a necessary option because in some cases it may be considered normal that solr server is unavailable;
@@ -121,7 +121,7 @@ public abstract class SolrProductSearch
         try {
             Debug.logInfo("Solr: Generating and indexing document for productId '" + productId + "'", module);
             
-            server = new HttpSolrServer(SolrUtil.solrUrl);
+            client = new HttpSolrClient(SolrUtil.solrUrl);
             //Debug.log(server.ping().toString());
 
             // Construct Documents
@@ -135,8 +135,8 @@ public abstract class SolrProductSearch
             docs.add(doc1);
 
             // push Documents to server
-            server.add(docs);
-            server.commit();
+            client.add(docs);
+            client.commit();
             
             final String statusStr = "Document for productId " + productId + " added to solr index";
             Debug.logInfo("Solr: " + statusStr, module);
@@ -168,6 +168,14 @@ public abstract class SolrProductSearch
             Debug.logError(e, e.getMessage(), module);
             result = ServiceUtil.returnError(e.toString());
             result.put("errorType", "ioError");
+        } finally {
+            if (client != null) {
+                try {
+                    client.close();
+                } catch (IOException e) {
+                    // do nothing
+                }
+            }
         }
         return result;
     }
@@ -178,7 +186,7 @@ public abstract class SolrProductSearch
      * This is faster than reflushing the index each time.
      */
     public static Map<String, Object> addListToSolrIndex(DispatchContext dctx, Map<String, Object> context) throws GenericEntityException {
-        HttpSolrServer server = null;
+        HttpSolrClient client = null;
         Map<String, Object> result;
         Boolean treatConnectErrorNonFatal = (Boolean) context.get("treatConnectErrorNonFatal");
         try {
@@ -197,9 +205,9 @@ public abstract class SolrProductSearch
                 docs.add(doc1);
             }
             // push Documents to server
-            server = new HttpSolrServer(SolrUtil.solrUrl);
-            server.add(docs);
-            server.commit();
+            client = new HttpSolrClient(SolrUtil.solrUrl);
+            client.add(docs);
+            client.commit();
             
             final String statusStr = "Added " + fieldList.size() + " documents to solr index";
             Debug.logInfo("Solr: " + statusStr, module);
@@ -230,6 +238,14 @@ public abstract class SolrProductSearch
             Debug.logError(e, e.getMessage(), module);
             result = ServiceUtil.returnError(e.toString());
             result.put("errorType", "ioError");
+        } finally {
+            if (client != null) {
+                try {
+                    client.close();
+                } catch (IOException e) {
+                    // do nothing
+                }
+            }
         }
         return result;
     }
@@ -242,10 +258,10 @@ public abstract class SolrProductSearch
      */
     public static Map<String, Object> runSolrQuery(DispatchContext dctx, Map<String, Object> context) {
         // get Connection
-        HttpSolrServer server = null;
+        HttpSolrClient client = null;
         Map<String, Object> result;
         try {
-            server = new HttpSolrServer(SolrUtil.solrUrl);
+            client = new HttpSolrClient(SolrUtil.solrUrl);
             // create Query Object
             SolrQuery solrQuery = new SolrQuery();
             solrQuery.setQuery((String) context.get("query"));
@@ -324,12 +340,20 @@ public abstract class SolrProductSearch
                 solrQuery.addFacetQuery((String) context.get("facetQuery"));
             }
 
-            QueryResponse rsp = server.query(solrQuery);
+            QueryResponse rsp = client.query(solrQuery);
             result = ServiceUtil.returnSuccess();
             result.put("queryResult", rsp);
         } catch (Exception e) {
             Debug.logError(e, e.getMessage(), module);
             result = ServiceUtil.returnError(e.toString());
+        } finally {
+            if (client != null) {
+                try {
+                    client.close();
+                } catch (IOException e) {
+                    // do nothing
+                }
+            }
         }
         return result;
     }
@@ -584,7 +608,7 @@ public abstract class SolrProductSearch
      * Rebuilds the solr index.
      */
     public static Map<String, Object> rebuildSolrIndex(DispatchContext dctx, Map<String, Object> context) throws GenericEntityException {
-        HttpSolrServer server = null;
+        HttpSolrClient client = null;
         Map<String, Object> result;
         GenericDelegator delegator = (GenericDelegator) dctx.getDelegator();
         LocalDispatcher dispatcher = dctx.getDispatcher();
@@ -594,7 +618,7 @@ public abstract class SolrProductSearch
         Boolean treatConnectErrorNonFatal = (Boolean) context.get("treatConnectErrorNonFatal");
         
         try {
-            server = new HttpSolrServer(SolrUtil.solrUrl);
+            client = new HttpSolrClient(SolrUtil.solrUrl);
 
             // now lets fetch all products
             List<Map<String, Object>> solrDocs = FastList.newInstance();
@@ -614,8 +638,8 @@ public abstract class SolrProductSearch
             }
 
             // this removes everything from the index
-            server.deleteByQuery("*:*");
-            server.commit();
+            client.deleteByQuery("*:*");
+            client.commit();
 
             // THis adds all products to the Index (instantly)
             Map<String, Object> runResult = dispatcher.runSync("addListToSolrIndex", UtilMisc.toMap("fieldList", solrDocs, "userLogin", userLogin,
@@ -669,6 +693,14 @@ public abstract class SolrProductSearch
         } catch (Exception e) {
             Debug.logError(e, e.getMessage(), module);
             result = ServiceUtil.returnError(e.toString());
+        } finally {
+            if (client != null) {
+                try {
+                    client.close();
+                } catch (IOException e) {
+                    // do nothing
+                }
+            }
         }
         return result;
     }

Modified: ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/SolrUtil.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/SolrUtil.java?rev=1707042&r1=1707041&r2=1707042&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/SolrUtil.java (original)
+++ ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/SolrUtil.java Tue Oct  6 12:48:53 2015
@@ -27,7 +27,7 @@ import javolution.util.FastMap;
 
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrRequest.METHOD;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrInputDocument;
 import org.ofbiz.base.component.ComponentConfig;
@@ -189,11 +189,11 @@ public abstract class SolrUtil {
     public static Map<String, Object> categoriesAvailable(String catalogId, String categoryId, String productId, String facetPrefix, boolean displayproducts, int viewIndex, int viewSize) {
         // create the data model
         Map<String, Object> result = FastMap.newInstance();
-        HttpSolrServer server = null;
+        HttpSolrClient client = null;
         QueryResponse returnMap = new QueryResponse();
         try {
             // do the basic query
-            server = new HttpSolrServer(solrUrl);
+            client = new HttpSolrClient(solrUrl);
             // create Query Object
             String query = "inStock[1 TO *]";
             if (categoryId != null)
@@ -227,7 +227,7 @@ public abstract class SolrUtil {
             solrQuery.addFacetField("cat");
             solrQuery.setFacetLimit(-1);
             Debug.logVerbose("solr: solrQuery: " + solrQuery, module);
-            returnMap = server.query(solrQuery, METHOD.POST);
+            returnMap = client.query(solrQuery, METHOD.POST);
             result.put("rows", returnMap);
             result.put("numFound", returnMap.getResults().getNumFound());
         } catch (Exception e) {

Modified: ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/webapp/OFBizSolrContextFilter.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/webapp/OFBizSolrContextFilter.java?rev=1707042&r1=1707041&r2=1707042&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/webapp/OFBizSolrContextFilter.java (original)
+++ ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/webapp/OFBizSolrContextFilter.java Tue Oct  6 12:48:53 2015
@@ -27,6 +27,7 @@ import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Properties;
 import java.util.Set;
 
 import javax.servlet.FilterChain;
@@ -39,9 +40,9 @@ import javax.servlet.http.HttpServletReq
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
-import org.apache.solr.core.ConfigSolr;
+import org.apache.solr.core.NodeConfig;
+import org.apache.solr.common.SolrException;
 import org.apache.solr.core.CoreContainer;
-import org.apache.solr.core.SolrResourceLoader;
 import org.apache.solr.servlet.SolrDispatchFilter;
 import org.ofbiz.base.conversion.ConversionException;
 import org.ofbiz.base.conversion.JSONConverters.MapToJSON;
@@ -179,7 +180,8 @@ public class OFBizSolrContextFilter exte
         } else {
             // check if the request is from an authorized user
             if (UtilValidate.isNotEmpty(servletPath) && (servletPath.startsWith("/admin/") || servletPath.endsWith("/update")
-                    || servletPath.endsWith("/update/json") || servletPath.endsWith("/update/csv") || servletPath.endsWith("/update/extract"))) {
+                    || servletPath.endsWith("/update/json") || servletPath.endsWith("/update/csv") || servletPath.endsWith("/update/extract")
+             || servletPath.endsWith("/replication") || servletPath.endsWith("/file") || servletPath.endsWith("/file/"))) {
                 HttpSession session = httpRequest.getSession();
                 GenericValue userLogin = (GenericValue) session.getAttribute("userLogin");
                 Security security = (Security) request.getAttribute("security");
@@ -199,9 +201,10 @@ public class OFBizSolrContextFilter exte
                     response.setContentType("application/json");
                     MapToJSON mapToJson = new MapToJSON();
                     JSON json;
+                    OutputStream os = null;
                     try {
                         json = mapToJson.convert(UtilMisc.toMap("ofbizLogin", (Object) "true"));
-                        OutputStream os = response.getOutputStream();
+                        os = response.getOutputStream();
                         os.write(json.toString().getBytes());
                         os.flush();
                         String message = "";
@@ -213,6 +216,10 @@ public class OFBizSolrContextFilter exte
                         Debug.logInfo("[" + httpRequest.getRequestURI().substring(1) + "(Domain:" + request.getScheme() + "://" + request.getServerName() + ")] Request error: " + message, module);
                     } catch (ConversionException e) {
                         Debug.logError("Error while converting Solr ofbizLogin map to JSON.", module);
+                    } finally {
+                     if (os != null) {
+                     os.close();
+                     }
                     }
                     return;
                 } else if (servletPath.endsWith("/update") || servletPath.endsWith("/update/json") || servletPath.endsWith("/update/csv") || servletPath.endsWith("/update/extract")) {
@@ -224,8 +231,9 @@ public class OFBizSolrContextFilter exte
                         Map<String, Object> responseHeader = new HashMap<String, Object>();
                         JSON json;
                         String message = "";
+                        OutputStream os = null;
                         try {
-                            OutputStream os = httpResponse.getOutputStream();
+                            os = httpResponse.getOutputStream();
                             if (UtilValidate.isEmpty(userLogin)) {
                                 httpResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
                                 responseHeader.put("status", HttpServletResponse.SC_UNAUTHORIZED);
@@ -243,6 +251,80 @@ public class OFBizSolrContextFilter exte
                             Debug.logInfo("[" + httpRequest.getRequestURI().substring(1) + "(Domain:" + request.getScheme() + "://" + request.getServerName() + ")] Request error: " + message, module);
                         } catch (ConversionException e) {
                             Debug.logError("Error while converting responseHeader map to JSON.", module);
+                        } finally {
+                         if (os != null) {
+                         os.close();
+                         }
+                        }
+                        return;
+                    }
+                } else if (servletPath.endsWith("/replication")) {
+                    // get the Solr index name from the request
+                    if (UtilValidate.isEmpty(userLogin) || !LoginWorker.hasBasePermission(userLogin, httpRequest)) {
+                        httpResponse.setContentType("application/json");
+                        MapToJSON mapToJson = new MapToJSON();
+                        Map<String, Object> responseHeader = new HashMap<String, Object>();
+                        JSON json;
+                        String message = "";
+                        OutputStream os = null;
+                        try {
+                            os = httpResponse.getOutputStream();
+                            if (UtilValidate.isEmpty(userLogin)) {
+                                httpResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
+                                responseHeader.put("status", HttpServletResponse.SC_UNAUTHORIZED);
+                                message = "To enable/disable replication of a Solr index in OFBiz, you have to login first and have the permission to do so.";
+                                responseHeader.put("message", message);
+                            } else {
+                                httpResponse.setStatus(HttpServletResponse.SC_FORBIDDEN);
+                                responseHeader.put("status", HttpServletResponse.SC_FORBIDDEN);
+                                message = "To enable/disable replication of a Solr index in OFBiz, you have to have the permission to do so.";
+                                responseHeader.put("message", message);
+                            }
+                            json = mapToJson.convert(UtilMisc.toMap("responseHeader", (Object) responseHeader));
+                            os.write(json.toString().getBytes());
+                            os.flush();
+                            Debug.logInfo("[" + httpRequest.getRequestURI().substring(1) + "(Domain:" + request.getScheme() + "://" + request.getServerName() + ")] Request error: " + message, module);
+                        } catch (ConversionException e) {
+                            Debug.logError("Error while converting responseHeader map to JSON.", module);
+                        } finally {
+                         if (os != null) {
+                         os.close();
+                         }
+                        }
+                        return;
+                    }
+                } else if (servletPath.endsWith("/file") || servletPath.endsWith("/file/")) {
+                    // get the Solr index name from the request
+                    if (UtilValidate.isEmpty(userLogin) || !LoginWorker.hasBasePermission(userLogin, httpRequest)) {
+                        httpResponse.setContentType("application/json");
+                        MapToJSON mapToJson = new MapToJSON();
+                        Map<String, Object> responseHeader = new HashMap<String, Object>();
+                        JSON json;
+                        String message = "";
+                        OutputStream os = null;
+                        try {
+                            os = httpResponse.getOutputStream();
+                            if (UtilValidate.isEmpty(userLogin)) {
+                                httpResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
+                                responseHeader.put("status", HttpServletResponse.SC_UNAUTHORIZED);
+                                message = "To view files of a Solr index in OFBiz, you have to login first and have the permission to do so.";
+                                responseHeader.put("message", message);
+                            } else {
+                                httpResponse.setStatus(HttpServletResponse.SC_FORBIDDEN);
+                                responseHeader.put("status", HttpServletResponse.SC_FORBIDDEN);
+                                message = "To view files of a Solr index in OFBiz, you have to have the permission to do so.";
+                                responseHeader.put("message", message);
+                            }
+                            json = mapToJson.convert(UtilMisc.toMap("responseHeader", (Object) responseHeader));
+                            os.write(json.toString().getBytes());
+                            os.flush();
+                            Debug.logInfo("[" + httpRequest.getRequestURI().substring(1) + "(Domain:" + request.getScheme() + "://" + request.getServerName() + ")] Request error: " + message, module);
+                        } catch (ConversionException e) {
+                            Debug.logError("Error while converting responseHeader map to JSON.", module);
+                        } finally {
+                         if (os != null) {
+                         os.close();
+                         }
                         }
                         return;
                     }
@@ -561,10 +643,14 @@ public class OFBizSolrContextFilter exte
      * Override this to change CoreContainer initialization
      * @return a CoreContainer to hold this server's cores
      */
-    protected CoreContainer createCoreContainer() {
-        SolrResourceLoader loader = new SolrResourceLoader("specialpurpose/solr/conf");
-        ConfigSolr config = ConfigSolr.fromSolrHome(loader, loader.getInstanceDir());
-        CoreContainer cores = new CoreContainer(loader, config);
+    protected CoreContainer createCoreContainer(String solrHome, Properties extraProperties) {
+        NodeConfig nodeConfig = null;
+        try {
+            nodeConfig = loadNodeConfig(solrHome, extraProperties);
+        } catch (SolrException e) {
+            nodeConfig = loadNodeConfig("specialpurpose/solr/home", extraProperties);
+        }
+        cores = new CoreContainer(nodeConfig, extraProperties, true);
         cores.load();
         return cores;
     }

Modified: ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/webapp/OFBizSolrLoadAdminUiServlet.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/webapp/OFBizSolrLoadAdminUiServlet.java?rev=1707042&r1=1707041&r2=1707042&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/webapp/OFBizSolrLoadAdminUiServlet.java (original)
+++ ofbiz/trunk/specialpurpose/solr/src/org/ofbiz/solr/webapp/OFBizSolrLoadAdminUiServlet.java Tue Oct  6 12:48:53 2015
@@ -30,6 +30,7 @@ import javax.servlet.http.HttpServletRes
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.core.CoreContainer;
 import org.apache.solr.core.SolrCore;
 
@@ -65,7 +66,7 @@ public class OFBizSolrLoadAdminUiServlet
                 String[] search = new String[] { "${contextPath}", "${adminPath}", "${version}" };
                 String[] replace = new String[] {
                         StringEscapeUtils.escapeJavaScript(request.getContextPath()),
-                        StringEscapeUtils.escapeJavaScript(cores.getAdminPath()),
+                        StringEscapeUtils.escapeJavaScript(CommonParams.CORES_HANDLER_PATH),
                         StringEscapeUtils.escapeJavaScript(pack.getSpecificationVersion()) };
 
                 out.write(StringUtils.replaceEach(html, search, replace));

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/commons-exec-1.3.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/commons-exec-1.3.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/commons-exec-1.3.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/hadoop-annotations-2.6.0.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/hadoop-annotations-2.6.0.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/hadoop-annotations-2.6.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/hadoop-auth-2.6.0.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/hadoop-auth-2.6.0.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/hadoop-auth-2.6.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/hadoop-common-2.6.0.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/hadoop-common-2.6.0.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/hadoop-common-2.6.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/hadoop-hdfs-2.6.0.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/hadoop-hdfs-2.6.0.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/hadoop-hdfs-2.6.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/htrace-core-3.0.4.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/htrace-core-3.0.4.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/htrace-core-3.0.4.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/httpmime-4.4.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/httpmime-4.4.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/httpmime-4.4.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/jackson-core-2.5.4.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/jackson-core-2.5.4.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/jackson-core-2.5.4.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/jackson-dataformat-smile-2.5.4.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/jackson-dataformat-smile-2.5.4.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/jackson-dataformat-smile-2.5.4.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/joda-time-2.2.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/joda-time-2.2.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/joda-time-2.2.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-analyzers-kuromoji-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-analyzers-kuromoji-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-analyzers-kuromoji-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-analyzers-phonetic-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-analyzers-phonetic-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-analyzers-phonetic-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-backward-codecs-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-backward-codecs-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-backward-codecs-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-codecs-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-codecs-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-codecs-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-expressions-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-expressions-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-expressions-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-grouping-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-grouping-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-grouping-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-highlighter-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-highlighter-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-highlighter-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-join-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-join-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-join-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-memory-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-memory-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-memory-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-queries-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-queries-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-queries-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-sandbox-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-sandbox-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-sandbox-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-spatial-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-spatial-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-spatial-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-suggest-5.3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-suggest-5.3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/lucene-suggest-5.3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/stax2-api-3.1.4.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/stax2-api-3.1.4.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/stax2-api-3.1.4.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/t-digest-3.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/t-digest-3.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/t-digest-3.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/woodstox-core-asl-4.4.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/woodstox-core-asl-4.4.1.jar?rev=1707042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/lib/woodstox-core-asl-4.4.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/web.xml?rev=1707042&r1=1707041&r2=1707042&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/web.xml (original)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/web.xml Tue Oct  6 12:48:53 2015
@@ -23,22 +23,22 @@
     <context-param>
         <param-name>entityDelegatorName</param-name>
         <param-value>default</param-value>
-        <description>The Name of the Entity Delegator to use, defined in entityengine.xml</description>
+        <!-- The Name of the Entity Delegator to use, defined in entityengine.xml -->
     </context-param>
     <context-param>
         <param-name>localDispatcherName</param-name>
         <param-value>solr</param-value>
-        <description>A unique name used to identify/recognize the local dispatcher for the Service Engine</description>
+        <!-- A unique name used to identify/recognize the local dispatcher for the Service Engine -->
     </context-param>
     <context-param>
         <param-name>mainDecoratorLocation</param-name>
         <param-value>component://content/widget/CommonScreens.xml</param-value>
-        <description>The location of the main-decorator screen to use for this webapp; referred to as a context variable in screen def XML files.</description>
+        <!-- The location of the main-decorator screen to use for this webapp; referred to as a context variable in screen def XML files. -->
     </context-param>
     <context-param>
         <param-name>partyDecoratorLocation</param-name>
         <param-value>component://content/widget/CommonScreens.xml</param-value>
-        <description>The location of the CommonPartyDecorator screen to use for this webapp; referred to as a context variable in screen def XML files.</description>
+        <!-- The location of the CommonPartyDecorator screen to use for this webapp; referred to as a context variable in screen def XML files. -->
     </context-param>
 
     <filter>
@@ -76,8 +76,7 @@
     
     <servlet>
         <servlet-name>ControlServlet</servlet-name>
-        <display-name>ControlServlet</display-name>
-        <description>Main Control Servlet</description>
+        <!-- Main Control Servlet -->
         <servlet-class>org.ofbiz.webapp.control.ControlServlet</servlet-class>
         <load-on-startup>1</load-on-startup>
     </servlet>
@@ -139,15 +138,6 @@
         </init-param>
     </servlet>
 
-    <servlet>
-        <servlet-name>SolrConfigRestApi</servlet-name>
-        <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
-        <init-param>
-            <param-name>org.restlet.application</param-name>
-            <param-value>org.apache.solr.rest.SolrConfigRestApi</param-value>
-        </init-param>
-    </servlet>
-  
     <servlet-mapping>
         <servlet-name>RedirectOldAdminUI</servlet-name>
         <url-pattern>/admin/</url-pattern>
@@ -180,13 +170,8 @@
         <url-pattern>/schema/*</url-pattern>
     </servlet-mapping>
   
-    <servlet-mapping>
-        <servlet-name>SolrConfigRestApi</servlet-name>
-        <url-pattern>/config/*</url-pattern>
-    </servlet-mapping>
-  
     <session-config>
-        <session-timeout>60</session-timeout>
+        <session-timeout>2</session-timeout>
     </session-config>
 
     <mime-mapping>

Modified: ofbiz/trunk/specialpurpose/solr/webapp/solr/admin.html
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/admin.html?rev=1707042&r1=1707041&r2=1707042&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/admin.html (original)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/admin.html Tue Oct  6 12:48:53 2015
@@ -22,7 +22,8 @@ limitations under the License.
     
   <title>Solr Admin</title>
     
-  <link rel="icon" type="image/ico" href="img/favicon.ico?_=${version}">
+  <link rel="icon" type="image/x-icon" href="img/favicon.ico?_=${version}">
+  <link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico?_=${version}">
 
   <link rel="stylesheet" type="text/css" href="css/styles/common.css?_=${version}">
   <link rel="stylesheet" type="text/css" href="css/styles/analysis.css?_=${version}">
@@ -41,6 +42,7 @@ limitations under the License.
   <link rel="stylesheet" type="text/css" href="css/styles/replication.css?_=${version}">
   <link rel="stylesheet" type="text/css" href="css/styles/schema-browser.css?_=${version}">
   <link rel="stylesheet" type="text/css" href="css/styles/threads.css?_=${version}">
+  <link rel="stylesheet" type="text/css" href="css/styles/segments.css?_=${version}">
   <link rel="stylesheet" type="text/css" href="css/chosen.css?_=${version}">
 
   <meta http-equiv="x-ua-compatible" content="IE=9">
@@ -135,11 +137,11 @@ limitations under the License.
                 
         <ul>
                     
-          <li class="documentation"><a href="http://lucene.apache.org/solr/" target="_blank"><span>Documentation</span></a></li>
-          <li class="issues"><a href="http://issues.apache.org/jira/browse/SOLR" target="_blank"><span>Issue Tracker</span></a></li>
-          <li class="irc"><a href="http://webchat.freenode.net/?channels=#solr" target="_blank"><span>IRC Channel</span></a></li>
-          <li class="mailinglist"><a href="http://wiki.apache.org/solr/UsingMailingLists" target="_blank"><span>Community forum</span></a></li>
-          <li class="wiki-query-syntax"><a href="http://wiki.apache.org/solr/SolrQuerySyntax" target="_blank"><span>Solr Query Syntax</span></a></li>
+          <li class="documentation"><a href="http://lucene.apache.org/solr/"><span>Documentation</span></a></li>
+          <li class="issues"><a href="http://issues.apache.org/jira/browse/SOLR"><span>Issue Tracker</span></a></li>
+          <li class="irc"><a href="https://wiki.apache.org/solr/IRCChannels"><span>IRC Channel</span></a></li>
+          <li class="mailinglist"><a href="http://lucene.apache.org/solr/resources.html#community"><span>Community forum</span></a></li>
+          <li class="wiki-query-syntax"><a href="https://cwiki.apache.org/confluence/display/solr/Query+Syntax+and+Parsing"><span>Solr Query Syntax</span></a></li>
                     
         </ul>
                 

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/analysis.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/analysis.css?rev=1707042&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/analysis.css (added)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/analysis.css Tue Oct  6 12:48:53 2015
@@ -0,0 +1,304 @@
+/*
+
+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.
+
+*/
+
+#content #analysis-holder
+{
+  background-image: url( ../../img/div.gif );
+  background-position: 50% 0;
+  background-repeat: repeat-y;
+}
+
+#content #analysis #field-analysis
+{
+  margin-bottom: 0;
+}
+
+#content #analysis #field-analysis .content
+{
+  padding-bottom: 0;
+}
+
+#content #analysis .settings-holder
+{
+  clear: both;
+  padding-top: 15px;
+}
+
+#content #analysis .settings
+{
+  background-color: #fff;
+  border-top: 1px solid #fafafa;
+  border-bottom: 1px solid #fafafa;
+  padding-top: 10px;
+  padding-bottom: 10px;
+}
+
+#content #analysis .settings select.loader
+{
+  background-position: 3px 50%;
+  padding-left: 21px;
+}
+
+#content #analysis .settings select optgroup
+{
+  font-style: normal;
+  padding: 5px;
+}
+
+#content #analysis .settings select option
+{
+  padding-left: 10px;
+}
+
+#content #analysis .settings #tor_schema
+{
+  background-image: url( ../../img/ico/question-white.png );
+  background-position: 0 50%;
+  color: #c0c0c0;
+  margin-left: 5px;
+  padding-left: 21px;
+}
+
+#content #analysis .settings #tor_schema:hover
+{
+  background-image: url( ../../img/ico/question.png );
+}
+
+#content #analysis .settings #tor_schema span
+{
+//  display: none;
+}
+
+#content #analysis .settings #tor_schema:hover span
+{
+  display: inline;
+}
+
+#content #analysis .settings .buttons
+{
+  float: right;
+  width: 47%;
+}
+
+#content #analysis .settings button
+{
+  float: right;
+}
+
+#content #analysis .settings button span
+{
+  background-image: url( ../../img/ico/funnel.png );
+}
+
+#content #analysis .settings .verbose_output
+{
+  float: left;
+  width: auto;
+}
+
+#content #analysis .settings .verbose_output a
+{
+  background-image: url( ../../img/ico/ui-check-box-uncheck.png );
+  background-position: 0 50%;
+  color: #999;
+  display: block;
+  padding-left: 21px;
+}
+
+#content #analysis .settings .verbose_output.active a
+{
+  background-image: url( ../../img/ico/ui-check-box.png );
+}
+
+#content #analysis .index label,
+#content #analysis .query label
+{
+  display: block;
+}
+
+#content #analysis .index textarea,
+#content #analysis .query textarea
+{
+  display: block;
+  width: 100%;
+}
+
+#content #analysis .index
+{
+  float: left;
+  margin-right: 0.5%;
+  min-width: 47%;
+  max-width: 99%;
+}
+
+#content #analysis .query
+{
+  float: right;
+  margin-left: 0.5%;
+  min-width: 47%;
+  max-width: 99%;
+}
+
+#content #analysis .analysis-error
+{
+  background-color: #f00;
+  background-image: url( ../../img/ico/construction.png );
+  background-position: 10px 50%;
+  color: #fff;
+  font-weight: bold;
+  margin-bottom: 20px;
+  padding: 10px;
+  padding-left: 35px;
+}
+
+#content #analysis .analysis-error .head a
+{
+  color: #fff;
+  cursor: auto;
+}
+
+#content #analysis #analysis-result
+{
+  overflow: auto;
+}
+
+#content #analysis #analysis-result .index,
+#content #analysis #analysis-result .query
+{
+  background-color: #fff;
+  padding-top: 20px;
+}
+
+#content #analysis #analysis-result table
+{
+  border-collapse: collapse;
+}
+
+#content #analysis #analysis-result td
+{
+  vertical-align: top;
+  white-space: nowrap;
+}
+
+#content #analysis #analysis-result td.part.analyzer div,
+#content #analysis #analysis-result td.part.spacer .holder,
+#content #analysis #analysis-result td td td
+{
+  padding-top: 1px;
+  padding-bottom: 1px;
+}
+
+#content #analysis #analysis-result.verbose_output td.legend
+{
+  display: table-cell;
+}
+
+#content #analysis #analysis-result.verbose_output td.data tr.verbose_output
+{
+  display: table-row;
+}
+
+#content #analysis #analysis-result .match
+{
+  background-color: #e9eff7;
+  background-color: #f2f2ff;
+}
+
+#content #analysis #analysis-result td.part
+{
+  padding-bottom: 10px;
+}
+
+#content #analysis #analysis-result td.part.analyzer div
+{
+  border-right: 1px solid #f0f0f0;
+  padding-right: 10px;
+}
+
+#content #analysis #analysis-result td.part.analyzer abbr
+{
+  color: #c0c0c0;
+}
+
+#content #analysis #analysis-result td.part.legend .holder,
+#content #analysis #analysis-result td.part.data .holder
+{
+  padding-left: 10px;
+  padding-right: 10px;
+  border-right: 1px solid #c0c0c0;
+}
+
+#content #analysis #analysis-result td.part.legend td
+{
+  color: #c0c0c0;
+}
+
+#content #analysis #analysis-result td.part.legend .holder
+{
+  border-right-color: #f0f0f0;
+}
+
+#content #analysis #analysis-result td.part.data:last-child .holder
+{
+  padding-right: 0;
+  border-right: 0;
+}
+
+#content #analysis #analysis-result td.details
+{
+  padding-left: 10px;
+  padding-right: 10px;
+  border-left: 1px solid #f0f0f0;
+  border-right: 1px solid #f0f0f0;
+}
+
+#content #analysis #analysis-result td.details:first-child
+{
+  padding-left: 0;
+  border-left: 0;
+}
+
+#content #analysis #analysis-result td.details:last-child
+{
+  padding-right: 0;
+  border-right: 0;
+}
+
+#content #analysis #analysis-result td.details tr.empty td
+{
+  color: #f0f0f0;
+}
+
+#content #analysis #analysis-result td.details tr.raw_bytes td
+{
+  letter-spacing: -1px;
+}
+
+#content #analysis #analysis-result .part table table td
+{
+  border-top: 1px solid #f0f0f0;
+}
+
+#content #analysis #analysis-result .part table table tr:first-child td
+{
+  border-top: 0;
+}
+
+#content #analysis #field-analysis h2 { background-image: url( ../../img/ico/receipt.png ); }
+#content #analysis .analysis-result h2 { background-image: url( ../../img/ico/receipt-invoice.png ); }

Propchange: ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/analysis.css
------------------------------------------------------------------------------
    svn:mime-type = text/plain