Index: gs3-extensions/solr/trunk/src/perllib/solrbuilder.pm
===================================================================
--- gs3-extensions/solr/trunk/src/perllib/solrbuilder.pm	(revision 29141)
+++ gs3-extensions/solr/trunk/src/perllib/solrbuilder.pm	(revision 29142)
@@ -318,5 +318,5 @@
     
     # make sure output conf directory exists
-    if (!FileUtils::directoryExists($out_dirname)) {
+    if (!&FileUtils::directoryExists($out_dirname)) {
 	&FileUtils::makeDirectory($out_dirname);
     }
@@ -328,10 +328,23 @@
 
     my @in_file_list = ( "solrconfig.xml", "stopwords.txt", "stopwords_en.txt",
-			 "synonyms.txt", "protwords.txt" );
+			 "synonyms.txt", "protwords.txt", "currency.xml", "elevate.xml" );
  
     foreach my $file ( @in_file_list ) {
 	my $in_filename = &FileUtils::filenameConcatenate($in_dirname,$file.".in");
 	my $out_filename = &FileUtils::filenameConcatenate($out_dirname,$file);
-	filter_in_out_file($in_filename,$out_filename,[]);
+
+	if(&FileUtils::fileExists($in_filename)) {
+	    filter_in_out_file($in_filename,$out_filename,[]);
+	}
+    }
+
+    my @in_dir_list = ( "lang" );
+    foreach my $dir ( @in_dir_list ) {
+	
+	my $full_subdir_name = &FileUtils::filenameConcatenate($in_dirname,$dir);
+
+	if(&FileUtils::directoryExists($full_subdir_name)) {
+	    &FileUtils::copyFilesRecursiveNoSVN($full_subdir_name, $out_dirname);
+	}
     }
 }
@@ -469,4 +482,7 @@
 	    &FileUtils::makeDirectory($full_index_dir);
 
+	    my $full_tlog_dir = &FileUtils::filenameConcatenate($full_index_dir, "tlog");
+	    &FileUtils::makeDirectory($full_tlog_dir);
+
 	    # Solr then wants an "index" folder within this general index area!
 #	    my $full_index_index_dir = &FileUtils::filenameConcatenate($full_index_dir,"index");
Index: gs3-extensions/solr/trunk/src/perllib/solrserver.pm
===================================================================
--- gs3-extensions/solr/trunk/src/perllib/solrserver.pm	(revision 29141)
+++ gs3-extensions/solr/trunk/src/perllib/solrserver.pm	(revision 29142)
@@ -158,5 +158,5 @@
     my $have_error = defined $output->{'error'};
 
-    my $running = !$have_error;
+    my $running = ($have_error) ? 0 : 1;
 
     return $running;
@@ -407,5 +407,8 @@
     my $full_server_jar = $self->{'full_server_jar'};
     
-    my $server_java_cmd = "java $server_props -jar \"$full_server_jar\"";
+    # https://wiki.apache.org/solr/SolrLogging
+    my $solr_slf4j    = &util::filename_cat($solr_home, "lib", "ext");
+    my $solr_log4j    = &util::filename_cat($solr_home, "conf", "log4j.properties");
+    my $server_java_cmd = "java -Dlog4j.configuration=file://$solr_log4j -classpath \"$solr_home/lib/java/*:$solr_slf4j/*\" $server_props -jar \"$full_server_jar\"";
 
 
@@ -431,5 +434,5 @@
 	    }
 	    
-	    if ($line =~ m/WARN::failed SocketConnector/) {
+	    if ($line =~ m/WARN.*failed SocketConnector/) {
 		if ($line =~ m/Address already in use/) {
 		    $server_status = "already-running";
@@ -441,5 +444,5 @@
 	    }
 	    
-	    if ($line =~ m/INFO::Started SocketConnector/) {
+	    if ($line =~ m/INFO.*Started SocketConnector/) {
 		$server_status = "explicitly-started";
 		last;
Index: gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/service/GS2SolrSearch.java
===================================================================
--- gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/service/GS2SolrSearch.java	(revision 29141)
+++ gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/service/GS2SolrSearch.java	(revision 29142)
@@ -35,5 +35,5 @@
 import org.apache.solr.core.CoreContainer;
 import org.apache.solr.core.SolrCore;
-import org.greenstone.LuceneWrapper3.SharedSoleneQueryResult;
+import org.greenstone.LuceneWrapper4.SharedSoleneQueryResult;
 import org.greenstone.gsdl3.util.FacetWrapper;
 import org.greenstone.gsdl3.util.GSFile;
@@ -109,5 +109,6 @@
 		    File solr_xml = new File( solr_home,"solr.xml" );
 		    
-		    all_solr_cores.load(solr_home_str,solr_xml);
+		    //all_solr_cores.load(solr_home_str,solr_xml);
+		    all_solr_cores.load();
 
 		} catch (Exception e) {
@@ -184,5 +185,5 @@
 			    if(solrCoreName.startsWith(collection_core_name_prefix)) {
 				
-				logger.error("**** Removing collection-specific core: " + solrCoreName + " from CoreContainer");
+				logger.info("**** Removing collection-specific core: " + solrCoreName + " from CoreContainer");
 				
 				// CoreContainer.remove(String name): removes and returns registered core w/o decrementing it's reference count
@@ -190,9 +191,9 @@
 				SolrCore solr_core = all_solr_cores.remove(solrCoreName);
 				while(!solr_core.isClosed()) {
-				    logger.error("@@@@@@ " + solrCoreName + " was not closed. Closing....");
+				    logger.warn("@@@@@@ " + solrCoreName + " was not closed. Closing....");
 				    solr_core.close(); // http://lucene.apache.org/solr/api/org/apache/solr/core/SolrCore.html
 				} 
 				if(solr_core.isClosed()) {
-				    logger.error("@@@@@@ " + solrCoreName + " is closed.");
+				    logger.info("@@@@@@ " + solrCoreName + " is closed.");
 				}
 				solr_core = null;
@@ -208,5 +209,5 @@
 		    Collection<String> coreNamesRemaining = all_solr_cores.getCoreNames();
 		    if(coreNamesRemaining.isEmpty()) {
-			logger.error("**** CoreContainer contains 0 solrCores. Shutting down...");
+			logger.info("**** CoreContainer contains 0 solrCores. Shutting down...");
 			
 			all_solr_cores.shutdown(); // wouldn't do anything anyway for 0 cores I think
Index: gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/service/SolrSearch.java
===================================================================
--- gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/service/SolrSearch.java	(revision 29141)
+++ gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/service/SolrSearch.java	(revision 29142)
@@ -146,5 +146,6 @@
 		    File solr_xml = new File( solr_home,"solr.xml" );
 		    
-		    solr_cores.load(solr_home_str,solr_xml);			
+		    //solr_cores.load(solr_home_str,solr_xml);			
+		    solr_cores.load();
 		} catch (Exception e) {
 		    logger.error("Exception in SolrSearch.configure(): " + e.getMessage());
Index: gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/util/SolrQueryResult.java
===================================================================
--- gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/util/SolrQueryResult.java	(revision 29141)
+++ gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/util/SolrQueryResult.java	(revision 29142)
@@ -30,5 +30,5 @@
 
 import org.apache.solr.client.solrj.response.FacetField;
-import org.greenstone.LuceneWrapper3.SharedSoleneQueryResult;
+import org.greenstone.LuceneWrapper4.SharedSoleneQueryResult;
 
 /**
Index: gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/util/SolrQueryWrapper.java
===================================================================
--- gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/util/SolrQueryWrapper.java	(revision 29141)
+++ gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/util/SolrQueryWrapper.java	(revision 29142)
@@ -39,6 +39,6 @@
 import org.apache.solr.common.SolrDocumentList;
 import org.apache.solr.common.params.ModifiableSolrParams;
-import org.greenstone.LuceneWrapper3.SharedSoleneQuery;
-import org.greenstone.LuceneWrapper3.SharedSoleneQueryResult;
+import org.greenstone.LuceneWrapper4.SharedSoleneQuery;
+import org.greenstone.LuceneWrapper4.SharedSoleneQueryResult;
 
 import com.google.gson.Gson;
