This is an automated email from the ASF dual-hosted git repository.
andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git
The following commit(s) were added to refs/heads/main by this push:
new b257c56d01 GH-1880: Replace ad hoc version information system
new 909a56ad99 Merge pull request #1904 from afs/version2
b257c56d01 is described below
commit b257c56d01f3ae1f6c2e9bc74a702aec64db2116
Author: Andy Seaborne <[email protected]>
AuthorDate: Sun Jun 4 18:23:13 2023 +0100
GH-1880: Replace ad hoc version information system
---
.../src/main/java/org/apache/jena/query/ARQ.java | 24 +---
.../src/main/java/org/apache/jena/riot/RIOT.java | 17 +--
.../java/org/apache/jena/sparql/SystemARQ.java | 23 ++--
.../apache/jena/sparql/engine/QueryEngineBase.java | 7 --
.../jena/sparql/function/StandardFunctions.java | 3 -
.../ARQMgt.java => function/library/version.java} | 17 +--
.../java/org/apache/jena/sparql/mgt/ARQMgt_X.java | 135 ---------------------
.../org/apache/jena/sparql/mgt/ContextMBean.java | 132 --------------------
.../apache/jena/sparql/mgt/QueryEngineInfo.java | 14 ++-
.../jena/sparql/mgt/QueryEngineInfoMBean.java | 13 +-
.../org/apache/jena/sparql/mgt/QueryExecMBean.java | 11 +-
.../org/apache/jena/sparql/mgt/SystemInfo.java | 4 +
.../apache/jena/sparql/mgt/SystemInfoMBean.java | 4 +
.../jena/sparql/pfunction/library/version.java | 78 ------------
.../jena/sparql/pfunction/library/versionARQ.java | 70 -----------
jena-core/src/main/java/org/apache/jena/Jena.java | 29 ++---
.../src/main/java/org/apache/jena/JenaRuntime.java | 18 +--
.../main/java/org/apache/jena/util/FileUtils.java | 17 +--
.../main/java/org/apache/jena/util/Metadata.java | 103 ----------------
.../main/java/org/apache/jena/fuseki/Fuseki.java | 34 +-----
.../apache/jena/fuseki/server/FusekiCoreInfo.java | 14 +--
.../src/services/mock/json-server.js | 3 +-
.../apache/jena/fuseki/mgt/ActionServerStatus.java | 10 +-
.../java/org/apache/jena/tdb/StoreConnection.java | 4 -
.../src/main/java/org/apache/jena/tdb/TDB.java | 27 +----
.../main/java/org/apache/jena/tdb/mgt/TDBMgt.java | 33 -----
.../test/java/org/apache/jena/tdb/sys/TestSys.java | 13 +-
.../src/main/java/org/apache/jena/tdb2/TDB2.java | 21 +---
.../java/org/apache/jena/tdb2/sys/TestSys.java | 8 +-
29 files changed, 110 insertions(+), 776 deletions(-)
diff --git a/jena-arq/src/main/java/org/apache/jena/query/ARQ.java
b/jena-arq/src/main/java/org/apache/jena/query/ARQ.java
index d77e3d80f6..bd5e69de85 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/ARQ.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/ARQ.java
@@ -18,6 +18,7 @@
package org.apache.jena.query;
+import org.apache.jena.atlas.lib.Version;
import org.apache.jena.http.sys.HttpRequestModifier;
import org.apache.jena.http.sys.RegistryRequestModifier;
import org.apache.jena.riot.RIOT;
@@ -31,17 +32,14 @@ import org.apache.jena.sparql.exec.http.QuerySendMode;
import org.apache.jena.sparql.expr.aggregate.AggregateRegistry;
import org.apache.jena.sparql.function.FunctionRegistry;
import org.apache.jena.sparql.function.scripting.ScriptLangSymbols;
-import org.apache.jena.sparql.mgt.ARQMgt;
import org.apache.jena.sparql.mgt.Explain;
import org.apache.jena.sparql.mgt.Explain.InfoLevel;
-import org.apache.jena.sparql.mgt.SystemInfo;
import org.apache.jena.sparql.pfunction.PropertyFunctionRegistry;
import org.apache.jena.sparql.service.ServiceExecutorRegistry;
import org.apache.jena.sparql.util.Context;
import org.apache.jena.sparql.util.MappingRegistry;
import org.apache.jena.sparql.util.Symbol;
import org.apache.jena.sys.JenaSystem;
-import org.apache.jena.util.Metadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -599,21 +597,11 @@ public class ARQ
// ----------------------------------
- /** The root package name for ARQ */
- public static final String PATH = "org.apache.jena.arq";
-
- static private String metadataLocation =
"org/apache/jena/arq/arq-properties.xml";
-
- static private Metadata metadata = new Metadata(metadataLocation);
-
/** The product name */
- public static final String NAME = "ARQ";
-
- /** The full name of the current ARQ version */
- public static final String VERSION = metadata.get(PATH+".version",
"unknown");
+ public static final String NAME = "Apache Jena ARQ";
- /** The date and time at which this release was built */
- public static final String BUILD_DATE =
metadata.get(PATH+".build.datetime", "unset");
+ /** The ARQ version */
+ public static final String VERSION =
Version.versionForClass(ARQ.class).orElse("<development>");
/**
* Ensure things have started - applications do not need call this.
@@ -636,12 +624,8 @@ public class ARQ
ResultSetLang.init();
// Done as a class init.
//globalContext = defaultSettings();
- ARQMgt.init(); // After context and after
PATH/NAME/VERSION/BUILD_DATE are set
MappingRegistry.addPrefixMapping(ARQ.arqSymbolPrefix,
ARQ.arqParamNS);
- // This is the pattern for any subsystem to register.
- SystemInfo sysInfo = new SystemInfo(ARQ.arqIRI, ARQ.PATH,
ARQ.VERSION, ARQ.BUILD_DATE);
- SystemARQ.registerSubSystem(sysInfo);
AssemblerUtils.init();
// Register RIOT details here, not earlier, to avoid
// initialization loops with RIOT.init() called directly.
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java
b/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java
index 230e039dce..88c457e275 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java
@@ -18,11 +18,10 @@
package org.apache.jena.riot ;
-import org.apache.jena.query.ARQ ;
+import org.apache.jena.atlas.lib.Version;
import org.apache.jena.riot.resultset.ResultSetLang;
import org.apache.jena.riot.system.StreamRDF;
import org.apache.jena.sparql.SystemARQ ;
-import org.apache.jena.sparql.mgt.SystemInfo ;
import org.apache.jena.sparql.util.Context ;
import org.apache.jena.sparql.util.MappingRegistry;
import org.apache.jena.sparql.util.Symbol ;
@@ -45,8 +44,7 @@ public class RIOT {
// public static final String VERSION = NAME+"/"+ARQ.VERSION ;
// public static final String BUILD_DATE = ARQ.BUILD_DATE ;
- public static String VERSION ;
- public static String BUILD_DATE ;
+ public static final String VERSION =
Version.versionForClass(RIOT.class).orElse("<development>");;
/** The root package name for RIOT */
public static final String PATH = "org.apache.jena.riot" ;
@@ -107,20 +105,15 @@ public class RIOT {
if ( registered )
return ;
registered = true ;
-
- VERSION = getVersion() ;
- BUILD_DATE = getBuildDate() ;
-
- SystemInfo sysInfo2 = new SystemInfo(RIOT.riotIRI, RIOT.PATH, VERSION,
BUILD_DATE) ;
- SystemARQ.registerSubSystem(sysInfo2) ;
}
public static String getVersion() {
- return ARQ.VERSION ;
+ return RIOT.VERSION ;
}
+ @Deprecated
public static String getBuildDate() {
- return ARQ.BUILD_DATE ;
+ return "";
}
// ---- Symbols
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java
b/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java
index 17054964cd..f7eda15038 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java
@@ -18,10 +18,9 @@
package org.apache.jena.sparql;
-import java.util.ArrayList ;
import java.util.Iterator ;
-import java.util.List ;
+import org.apache.jena.atlas.iterator.Iter;
import org.apache.jena.atlas.lib.Sync ;
import org.apache.jena.graph.Graph ;
import org.apache.jena.graph.compose.Polyadic ;
@@ -33,10 +32,10 @@ import org.apache.jena.reasoner.InfGraph ;
import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.core.GraphView ;
import org.apache.jena.sparql.graph.GraphWrapper ;
-import org.apache.jena.sparql.mgt.ARQMgt ;
import org.apache.jena.sparql.mgt.SystemInfo ;
import org.apache.jena.sparql.util.Symbol ;
+@SuppressWarnings("deprecation")
public class SystemARQ
{
// Various system wide settings, "constants" that might change e.g. test
setups
@@ -126,16 +125,18 @@ public class SystemARQ
((Sync)object).sync() ;
}
- private static List<SystemInfo> versions = new ArrayList<>() ;
+ /**
+ * @deprected To be removed. This is a no-op.
+ */
+ @Deprecated(since="4.9.0")
public static void registerSubSystem(SystemInfo systemInfo)
- {
- ARQMgt.register(systemInfo.getJmxPath() + ".system:type=SystemInfo",
systemInfo) ;
- versions.add(systemInfo) ;
- }
+ { }
- public static Iterator<SystemInfo> registeredSubsystems() {
- return versions.iterator() ;
- }
+ /**
+ * @deprected To be removed. This is a no-op.
+ */
+ @Deprecated(since="4.9.0")
+ public static Iterator<SystemInfo> registeredSubsystems() { return
Iter.nullIterator(); }
public static Symbol allocSymbol(String shortName) {
// This must work even if initialization is happening.
diff --git
a/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryEngineBase.java
b/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryEngineBase.java
index 9d86a1b87b..d2158eba3e 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryEngineBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/QueryEngineBase.java
@@ -33,14 +33,12 @@ import org.apache.jena.sparql.core.Substitute;
import org.apache.jena.sparql.engine.binding.Binding;
import org.apache.jena.sparql.engine.binding.BindingRoot;
import org.apache.jena.sparql.mgt.Explain;
-import org.apache.jena.sparql.mgt.QueryEngineInfo;
import org.apache.jena.sparql.util.Context;
import org.apache.jena.sparql.util.DatasetUtils;
/** Main part of a QueryEngine - something that takes responsibility for a
complete query execution */
public abstract class QueryEngineBase implements OpEval, Closeable
{
- public final static QueryEngineInfo queryEngineInfo = new
QueryEngineInfo();
// See also ExecutionContext.getDataset()
protected final DatasetGraph originalDataset;
protected DatasetGraph dataset = null;
@@ -163,11 +161,6 @@ public abstract class QueryEngineBase implements OpEval,
Closeable
if ( query != null )
Explain.explain("QUERY", query, context);
Explain.explain("ALGEBRA", op, context);
- queryEngineInfo.incQueryCount();
- queryEngineInfo.setLastQueryExecAt();
- //queryEngineInfo.setLastQueryExecTime(-1);
-
queryEngineInfo.setLastQueryString((Query)context.get(ARQConstants.sysCurrentQuery));
- queryEngineInfo.setLastOp(op);
return eval(op, dsg, binding, context);
}
diff --git
a/jena-arq/src/main/java/org/apache/jena/sparql/function/StandardFunctions.java
b/jena-arq/src/main/java/org/apache/jena/sparql/function/StandardFunctions.java
index 31458c340a..c3fff3936f 100644
---
a/jena-arq/src/main/java/org/apache/jena/sparql/function/StandardFunctions.java
+++
b/jena-arq/src/main/java/org/apache/jena/sparql/function/StandardFunctions.java
@@ -61,10 +61,7 @@ public class StandardFunctions
String math = ARQConstants.mathPrefix ;
String sparqlfn = ARQConstants.fnSparql ;
-
-
// Update documentation in xsd-support.md
-
// See also:
// http://www.w3.org/TR/xpath-datamodel/#types-hierarchy
// https://www.w3.org/TR/xpath-datamodel-3/
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/ARQMgt.java
b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/version.java
similarity index 69%
rename from jena-arq/src/main/java/org/apache/jena/sparql/mgt/ARQMgt.java
rename to
jena-arq/src/main/java/org/apache/jena/sparql/function/library/version.java
index 88f4f636d5..1a4c7f47fb 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/ARQMgt.java
+++
b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/version.java
@@ -16,12 +16,15 @@
* limitations under the License.
*/
-package org.apache.jena.sparql.mgt ;
+package org.apache.jena.sparql.function.library;
-public class ARQMgt {
- // No-op version.
- // See JENA-614 and ARQMgt_X
- public static void init() {}
- public static void register(String name, Object bean) { }
- public static void unregister(String name) { }
+import org.apache.jena.query.ARQ;
+import org.apache.jena.sparql.expr.NodeValue ;
+import org.apache.jena.sparql.function.FunctionBase0 ;
+
+/** Version number, as a string */
+public class version extends FunctionBase0
+{
+ @Override
+ public NodeValue exec() { return NodeValue.makeNodeString(ARQ.VERSION);}
}
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/ARQMgt_X.java
b/jena-arq/src/main/java/org/apache/jena/sparql/mgt/ARQMgt_X.java
deleted file mode 100644
index 386380b095..0000000000
--- a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/ARQMgt_X.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.jena.sparql.mgt ;
-
-import java.lang.management.ManagementFactory ;
-import java.util.HashMap ;
-import java.util.Map ;
-
-import javax.management.* ;
-
-import org.apache.jena.atlas.lib.InternalErrorException ;
-import org.apache.jena.atlas.logging.Log ;
-import org.apache.jena.query.ARQ ;
-import org.apache.jena.sparql.ARQException ;
-import org.apache.jena.sparql.engine.QueryEngineBase ;
-import org.slf4j.Logger ;
-import org.slf4j.LoggerFactory ;
-
-/* Old version of the class which did JMX operations.
- * See JENA-614
- */
-class ARQMgt_X {
- // In some environments, JMX does not exist.
- static private Logger log =
LoggerFactory.getLogger(ARQMgt_X.class) ;
- private static boolean initialized = false ;
- private static boolean noJMX = false ;
- private static Map<ObjectName, Object> mgtObjects = new HashMap<>() ;
- private static MBeanServer mbs = null ;
-
- public static synchronized void init() {
- if (initialized)
- return ;
- initialized = true ;
- if ( noJMX )
- return ;
-
- try {
- mbs = ManagementFactory.getPlatformMBeanServer() ;
- } catch (Throwable ex) {
- Log.debug(ARQMgt_X.class, "Failed to initialize JMX:
"+ex.getMessage()) ;
- noJMX = true ;
- mbs = null ;
- }
- }
-
- public static void register() {
- init() ;
- String NS = ARQ.PATH ;
- ContextMBean cxtBean = new ContextMBean(ARQ.getContext()) ;
- QueryEngineInfo qeInfo = QueryEngineBase.queryEngineInfo ;
- // Done in ARQ initialization --
- // register(NS+".system:type=SystemInfo", ARQ.systemInfo) ;
- register(NS + ".system:type=Context", cxtBean) ;
- register(NS + ".system:type=Engine", qeInfo) ;
- }
-
- public static void register(String name, Object bean) {
- init() ;
- if (noJMX)
- return ;
- ObjectName objName = objectName(name) ;
- register(objName, bean) ;
- }
-
- public static void unregister(String name) {
- init() ;
- if (noJMX)
- return ;
- ObjectName objName = objectName(name) ;
- unregister(objName) ;
- }
-
- private static void register(ObjectName objName, Object bean) {
- try {
- // Unregister to avoid classloader problems.
- // A previous load of this class will have registered something
- // with the object name. Remove it - copes with reloading.
- // (Does not cope with multiple loads running in parallel.)
- if (mbs.isRegistered(objName)) {
- try {
- mbs.unregisterMBean(objName) ;
- } catch (InstanceNotFoundException ex) {}
- }
- log.debug("Register MBean: " + objName) ;
- mbs.registerMBean(bean, objName) ;
- // remember ...
- mgtObjects.put(objName, bean) ;
- } catch (NotCompliantMBeanException ex) {
- log.warn("Failed to register (NotCompliantMBeanException)'" +
objName.getCanonicalName() + "': " + ex.getMessage()) ;
- throw new ARQException("Failed to register '" +
objName.getCanonicalName() + "': " + ex.getMessage(), ex) ;
- } catch (InstanceAlreadyExistsException ex) {
- log.warn("Failed to register (InstanceAlreadyExistsException)'" +
objName.getCanonicalName() + "': " + ex.getMessage()) ;
- throw new ARQException("Failed to register '" +
objName.getCanonicalName() + "': " + ex.getMessage(), ex) ;
- } catch (MBeanRegistrationException ex) {
- log.warn("Failed to register (MBeanRegistrationException)'" +
objName.getCanonicalName() + "': " + ex.getMessage()) ;
- throw new ARQException("Failed to register '" +
objName.getCanonicalName() + "': " + ex.getMessage(), ex) ;
- }
- }
-
- private static void unregister(ObjectName objName) {
- log.debug("Unregister MBean: " + objName) ;
- if ( ! mgtObjects.containsKey(objName) )
- log.warn("MBean not already registered: " + objName) ;
- try {
- mbs.unregisterMBean(objName) ;
- }
- catch (InstanceNotFoundException ex) { } // Meh, whatever
- catch (MBeanRegistrationException ex) {
- throw new InternalErrorException(ex) ;
- }
- }
-
- private static ObjectName objectName(String name) {
- try { return new ObjectName(name) ; }
- catch (MalformedObjectNameException ex) {
- throw new ARQException("Failed to create name '" + name + "': " +
ex.getMessage(), ex) ;
- }
- }
-}
diff --git
a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/ContextMBean.java
b/jena-arq/src/main/java/org/apache/jena/sparql/mgt/ContextMBean.java
deleted file mode 100644
index 9327daf5ad..0000000000
--- a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/ContextMBean.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.jena.sparql.mgt;
-
-import javax.management.* ;
-
-import org.apache.jena.sparql.util.Context ;
-import org.apache.jena.sparql.util.Symbol ;
-
-/** MBean for a context object (which can change) */
-public class ContextMBean implements DynamicMBean
-{
- private final Context context ;
-
- public ContextMBean(Context context)
- {
- this.context = context ;
- }
-
- private Object getAsString(String name) { return
context.getAsString(Symbol.create(name)) ; }
-
- @Override
- public Object getAttribute(String attribute) throws
AttributeNotFoundException, MBeanException, ReflectionException
- {
- return getAsString(attribute) ;
- }
-
- @Override
- public AttributeList getAttributes(String[] attributes)
- {
- AttributeList x = new AttributeList() ;
- for ( String k : attributes )
- {
- Attribute a = new Attribute(k, getAsString(k)) ;
- x.add(a) ;
- }
- return x ;
- }
-
- @Override
- public MBeanInfo getMBeanInfo()
- {
- /*
- * MBeanAttributeInfo(String name, String type, String description,
boolean isReadable, boolean isWritable, boolean isIs)
- */
- MBeanAttributeInfo[] attrInfo = new MBeanAttributeInfo[context.size()]
;
- int idx = 0 ;
- for ( Symbol sk : context.keys() )
- {
- // Not all are settable - only is string, boolean, integer.
- Object obj = context.get(sk) ;
- boolean settable = false ;
-
- if ( obj instanceof String ) settable = true ;
- if ( obj instanceof Boolean ) settable = true ;
- if ( obj instanceof Integer ) settable = true ;
-
- MBeanAttributeInfo attr = new MBeanAttributeInfo(sk.getSymbol(),
"java.lang.String", sk.getSymbol(),
- true, settable,
false) ;
- attrInfo[idx++] = attr ;
- }
-
- /*
- * String className,
- String description,
- MBeanAttributeInfo[] attributes,
- MBeanConstructorInfo[] constructors,
- MBeanOperationInfo[] operations,
- MBeanNotificationInfo[] notifications)
- throws IllegalArgumentException
- */
- MBeanInfo info = new MBeanInfo(this.getClass().getName(), "ARQ global
context",
- attrInfo,
- null, // Constructors
- null, // Operations
- null // Notifications
- ) ;
- return info ;
- }
-
- @Override
- public Object invoke(String actionName, Object[] params, String[]
signature) throws MBeanException,
-
ReflectionException
- {
- return null ;
- }
-
- @Override
- public void setAttribute(Attribute attribute) throws
AttributeNotFoundException, InvalidAttributeValueException,
- MBeanException,
ReflectionException
- {
- context.set(Symbol.create(attribute.getName()), attribute.getValue()) ;
- }
-
- @Override
- public AttributeList setAttributes(AttributeList attributes)
- {
- AttributeList results = new AttributeList() ;
- for ( Object obj : attributes )
- {
- Attribute a = (Attribute)obj ;
-
- Object value = a.getValue() ;
- Object oldValue = getAsString(a.getName()) ;
-
- // Check type of old value.
- //if ( oldValue instanceof Boolean )
-
- try { setAttribute(a) ; } catch (Exception ex) {}
- results.add(new Attribute( a.getName(), getAsString(a.getName())
)) ;
- }
-
- return results ;
- }
-
-}
diff --git
a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/QueryEngineInfo.java
b/jena-arq/src/main/java/org/apache/jena/sparql/mgt/QueryEngineInfo.java
index c9079ee1ce..ffbeeb52e0 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/QueryEngineInfo.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/mgt/QueryEngineInfo.java
@@ -24,21 +24,25 @@ import org.apache.jena.atlas.lib.DateTimeUtils ;
import org.apache.jena.query.Query ;
import org.apache.jena.sparql.algebra.Op ;
+/**
+ * @deprecated To be removed.
+ */
+@Deprecated(since="4.9.0")
public class QueryEngineInfo implements QueryEngineInfoMBean
{
// Has to be careful about concurrency.
// It is possible that the count may be momentarily wrong
// (reading longs is not atomic).
-
+
private AtomicLong count = new AtomicLong(0) ;
@Override
public long getQueryCount() { return count.get() ; }
public void incQueryCount() { count.incrementAndGet() ; }
-
+
Query query = null ;
@Override
public String getLastQueryString()
- {
+ {
Query q = query ; // Get once.
if ( q != null ) return q.toString() ;
// Sometimes an alegra expression is executited without a query.
@@ -63,6 +67,6 @@ public class QueryEngineInfo implements QueryEngineInfoMBean
// private long lastExecTime ;
// public long getLastQueryExecTime() { return lastExecTime ; }
// public void setLastQueryExecTime(long timeMillis) { lastExecTime =
timeMillis ; }
-
-
+
+
}
diff --git
a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/QueryEngineInfoMBean.java
b/jena-arq/src/main/java/org/apache/jena/sparql/mgt/QueryEngineInfoMBean.java
index 75b36ea766..6dc5e3fb99 100644
---
a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/QueryEngineInfoMBean.java
+++
b/jena-arq/src/main/java/org/apache/jena/sparql/mgt/QueryEngineInfoMBean.java
@@ -18,21 +18,24 @@
package org.apache.jena.sparql.mgt;
-/** Overall statistics from a query engine - one such per type of engine. */
+/**
+ * @deprecated To be removed.
+ */
+@Deprecated(since="4.9.0")
public interface QueryEngineInfoMBean
{
/** Number of queries executed */
- long getQueryCount() ;
-
+ long getQueryCount() ;
+
/** Last query seen, as a string */
String getLastQueryString() ;
-
+
/** Last algebra expression seen, as a string */
String getLastAlgebra() ;
/** Point in time when last query seen */
String getLastQueryExecAt() ;
-// /** Length of elapsed time (in microseconds) for the last query : -1 for
unknown */
+// /** Length of elapsed time (in microseconds) for the last query : -1 for
unknown */
// long getLastQueryExecTime() ;
}
diff --git
a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/QueryExecMBean.java
b/jena-arq/src/main/java/org/apache/jena/sparql/mgt/QueryExecMBean.java
index 135e0905ed..07e3d4e87a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/QueryExecMBean.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/mgt/QueryExecMBean.java
@@ -18,18 +18,21 @@
package org.apache.jena.sparql.mgt;
-/** Details of a single query execution */
+/**
+ * @deprecated To be removed.
+ */
+@Deprecated(since="4.9.0")
public interface QueryExecMBean
{
/** State - what's it doing */
String getState() ;
-
+
/** Query as a string */
String getQueryString() ;
-
+
/** Point in time when query execution started */
String getQueryExecAt() ;
- /** Length of elapsed time (in microseconds) for query : -1 for unknown or
unfinished */
+ /** Length of elapsed time (in microseconds) for query : -1 for unknown or
unfinished */
long getQueryExecTime() ;
}
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/SystemInfo.java
b/jena-arq/src/main/java/org/apache/jena/sparql/mgt/SystemInfo.java
index f19f80af7c..911aa1c5bf 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/SystemInfo.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/mgt/SystemInfo.java
@@ -22,6 +22,10 @@ import org.apache.jena.graph.Node ;
import org.apache.jena.graph.NodeFactory ;
import org.apache.jena.irix.IRIs;
+/**
+ * @deprecated To be removed.
+ */
+@Deprecated(since="4.9.0")
public class SystemInfo implements SystemInfoMBean {
private final String name ;
private final Node iri ;
diff --git
a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/SystemInfoMBean.java
b/jena-arq/src/main/java/org/apache/jena/sparql/mgt/SystemInfoMBean.java
index 5a8baa176c..0c34d96faa 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/mgt/SystemInfoMBean.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/mgt/SystemInfoMBean.java
@@ -18,6 +18,10 @@
package org.apache.jena.sparql.mgt;
+/**
+ * @deprecated To be removed.
+ */
+@Deprecated(since="4.9.0")
public interface SystemInfoMBean
{
public String getName() ;
diff --git
a/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/version.java
b/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/version.java
deleted file mode 100644
index b667c5743e..0000000000
---
a/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/version.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.jena.sparql.pfunction.library;
-
-import java.util.ArrayList ;
-import java.util.Iterator ;
-import java.util.List ;
-
-import org.apache.jena.graph.Node ;
-import org.apache.jena.graph.NodeFactory ;
-import org.apache.jena.sparql.SystemARQ ;
-import org.apache.jena.sparql.core.Var ;
-import org.apache.jena.sparql.engine.ExecutionContext ;
-import org.apache.jena.sparql.engine.QueryIterator ;
-import org.apache.jena.sparql.engine.binding.Binding ;
-import org.apache.jena.sparql.engine.binding.BindingBuilder;
-import org.apache.jena.sparql.engine.iterator.QueryIterPlainWrapper ;
-import org.apache.jena.sparql.mgt.SystemInfo ;
-import org.apache.jena.sparql.pfunction.PropFuncArg ;
-import org.apache.jena.sparql.pfunction.PropFuncArgType ;
-import org.apache.jena.sparql.pfunction.PropertyFunctionEval ;
-
-/** Access the subsystem version registry and yield URI/version for each entry
*/
-public class version extends PropertyFunctionEval
-{
- public version()
- { super(PropFuncArgType.PF_ARG_SINGLE, PropFuncArgType.PF_ARG_SINGLE) ; }
-
- @Override
- public QueryIterator execEvaluated(Binding binding, PropFuncArg subject,
Node predicate, PropFuncArg object, ExecutionContext execCxt)
- {
-
- List<Binding> results = new ArrayList<>() ;
- Node subj = subject.getArg() ;
- Node obj = object.getArg() ;
-
- Iterator<SystemInfo> iter = SystemARQ.registeredSubsystems() ;
-
- for ( ; iter.hasNext() ; )
- {
- SystemInfo info = iter.next();
- if ( ! isSameOrVar(subj, info.getIRI()) )
- continue ;
- Node version = NodeFactory.createLiteral(info.getVersion()) ;
- if ( ! isSameOrVar(obj, version) )
- continue ;
-
- BindingBuilder builder = Binding.builder(binding) ;
- if ( subj.isVariable() )
- builder.add(Var.alloc(subj), info.getIRI()) ;
- if ( subj.isVariable() )
- builder.add(Var.alloc(obj), version) ;
- results.add(builder.build()) ;
- }
- return QueryIterPlainWrapper.create(results.iterator(), execCxt) ;
- }
-
- private boolean isSameOrVar(Node var, Node value)
- {
- return var.isVariable() || var.equals(value) ;
- }
-}
diff --git
a/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/versionARQ.java
b/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/versionARQ.java
deleted file mode 100644
index f6e4af0e76..0000000000
---
a/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/versionARQ.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.jena.sparql.pfunction.library;
-
-import org.apache.jena.graph.Node ;
-import org.apache.jena.graph.NodeFactory ;
-import org.apache.jena.query.ARQ ;
-import org.apache.jena.sparql.core.Var ;
-import org.apache.jena.sparql.engine.ExecutionContext ;
-import org.apache.jena.sparql.engine.QueryIterator ;
-import org.apache.jena.sparql.engine.binding.Binding ;
-import org.apache.jena.sparql.engine.binding.BindingBuilder;
-import org.apache.jena.sparql.expr.NodeValue ;
-import org.apache.jena.sparql.pfunction.PropFuncArg ;
-import org.apache.jena.sparql.pfunction.PropFuncArgType ;
-import org.apache.jena.sparql.pfunction.PropertyFunctionEval ;
-import org.apache.jena.sparql.util.IterLib ;
-
-public class versionARQ extends PropertyFunctionEval
-{
- static String versionStr = ARQ.VERSION ; // X.Y.Z
-
- static Node version = NodeValue.makeString(versionStr).asNode() ;
-
- static Node arq = NodeFactory.createURI(ARQ.arqIRI) ;
-
- public versionARQ()
- { super(PropFuncArgType.PF_ARG_SINGLE, PropFuncArgType.PF_ARG_SINGLE) ; }
-
- @Override
- public QueryIterator execEvaluated(Binding binding, PropFuncArg subject,
Node predicate, PropFuncArg object, ExecutionContext execCxt)
- {
- BindingBuilder builder = Binding.builder(binding) ;
-
- Node subj = subject.getArg() ;
- if ( ! isSameOrVar(subj, arq) )
- IterLib.noResults(execCxt) ;
- if ( subj.isVariable() )
- builder.add(Var.alloc(subj), arq) ;
-
- Node obj = object.getArg() ;
- if ( ! isSameOrVar(obj, version) )
- IterLib.noResults(execCxt) ;
- if ( obj.isVariable() )
- builder.add(Var.alloc(obj), version) ;
-
- return IterLib.result(builder.build(), execCxt) ;
- }
-
- private boolean isSameOrVar(Node var, Node value)
- {
- return var.isVariable() || var.equals(value) ;
- }
-}
diff --git a/jena-core/src/main/java/org/apache/jena/Jena.java
b/jena-core/src/main/java/org/apache/jena/Jena.java
index 56cf970ece..a2d539b807 100644
--- a/jena-core/src/main/java/org/apache/jena/Jena.java
+++ b/jena-core/src/main/java/org/apache/jena/Jena.java
@@ -18,6 +18,8 @@
package org.apache.jena;
+import org.apache.jena.atlas.lib.Version;
+
/**
* <p>
* Provides various meta-data constants about the Jena package.
@@ -25,23 +27,18 @@ package org.apache.jena;
*/
public interface Jena
{
- /** The root package name for Jena */
+ /** The root package name for Jena */
public static final String PATH = "org.apache.jena";
-
+
/** The root name for metadata */
-
public static final String MPATH = "org.apache.jena";
- static final String UNSET = "unset" ;
-
- /** The product name */
- public static final String NAME = JenaRuntime.getMetadata( MPATH +
".name", UNSET ) ;
-
- /** The Jena web site */
- public static final String WEBSITE = JenaRuntime.getMetadata( MPATH +
".website", UNSET ) ;
-
- /** The full name of the current Jena version */
- public static final String VERSION = JenaRuntime.getMetadata( MPATH +
".version", UNSET ) ;
-
- /** The date and time at which this release was built */
- public static final String BUILD_DATE = JenaRuntime.getMetadata( MPATH +
".build.datetime", UNSET ) ;
+
+ /** The product name */
+ public static final String NAME = "Apache Jena";
+
+ /** The Jena web site */
+ public static final String WEBSITE = "https://jena.apache.org/";
+
+ /** The full name of the current Jena version */
+ public static final String VERSION =
Version.versionForClass(Jena.class).orElse("<development>");
}
diff --git a/jena-core/src/main/java/org/apache/jena/JenaRuntime.java
b/jena-core/src/main/java/org/apache/jena/JenaRuntime.java
index 7001b07206..71a491c405 100644
--- a/jena-core/src/main/java/org/apache/jena/JenaRuntime.java
+++ b/jena-core/src/main/java/org/apache/jena/JenaRuntime.java
@@ -20,8 +20,6 @@ package org.apache.jena;
import java.util.* ;
-import org.apache.jena.util.Metadata ;
-
/**
* Methods and constants that define features of the current the environment.
* Primarily for other parts of the Jena framework.
@@ -84,14 +82,16 @@ public class JenaRuntime
// --------------------------------------------------------------
- private static String metadataLocation =
"org/apache/jena/jena-properties.xml" ;
- private static Metadata metadata = new Metadata(metadataLocation) ;
- public static String getMetadata(String key, String defaultValue) { return
metadata.get(key, defaultValue) ; }
+ /** @deprecated To be removed */
+ @Deprecated(since="4.9.0")
+ public static String getMetadata(String key, String defaultValue) { return
null; }
- /** The JVM does not implement java.security (correctly) */
+ /** @deprecated To be removed */
+ @Deprecated(since="4.9.0")
public static final String featureNoSecurity =
"http://jena.hpl.hp.com/2004/07/feature/noSecurity" ;
- /** The JVM does not implement java.nio.charset.Charset operations
(correctly) */
+ /** @deprecated To be removed */
+ @Deprecated(since="4.9.0")
public static final String featureNoCharset =
"http://jena.hpl.hp.com/2004/07/feature/noCharset" ;
static Map<String, String> features = new HashMap<>() ;
@@ -105,9 +105,9 @@ public class JenaRuntime
setFeature(featureNoCharset) ;
}
+ /** @deprecated To be removed */
+ @Deprecated(since="4.9.0")
public static void setFeature(String featureName) {
features.put(featureName, "true") ; }
- public static boolean runUnder(String featureName) { return
features.containsKey(featureName) ; }
- public static boolean runNotUnder(String featureName) { return !
features.containsKey(featureName) ; }
static final String lineSeparator = getSystemProperty("line.separator",
"\n") ;
diff --git a/jena-core/src/main/java/org/apache/jena/util/FileUtils.java
b/jena-core/src/main/java/org/apache/jena/util/FileUtils.java
index d7416d2d85..f85a7e5ebc 100644
--- a/jena-core/src/main/java/org/apache/jena/util/FileUtils.java
+++ b/jena-core/src/main/java/org/apache/jena/util/FileUtils.java
@@ -45,30 +45,21 @@ public class FileUtils
static Charset utf8 = StandardCharsets.UTF_8 ;
/** Create a reader that uses UTF-8 encoding */
-
static public Reader asUTF8(InputStream in) {
- if ( JenaRuntime.runUnder(JenaRuntime.featureNoCharset) )
- return new InputStreamReader(in) ;
- // Not ,utf8 -- GNUClassPath (0.20) apparently fails on passing in a
charset
- // but if passed not the decoder or the name of the charset.
- // Reported and fixed.
return new InputStreamReader(in, utf8.newDecoder());
}
/** Create a buffered reader that uses UTF-8 encoding */
- static public BufferedReader asBufferedUTF8(InputStream in)
- {
- BufferedReader r = new BufferedReader(asUTF8(in)) ;
- return r ;
+ static public BufferedReader asBufferedUTF8(InputStream in) {
+ BufferedReader r = new BufferedReader(asUTF8(in));
+ return r;
}
/** Create a writer that uses UTF-8 encoding */
static public Writer asUTF8(OutputStream out) {
- if ( JenaRuntime.runUnder(JenaRuntime.featureNoCharset) )
- return new OutputStreamWriter(out) ;
- return new OutputStreamWriter(out, utf8.newEncoder());
+ return new OutputStreamWriter(out, utf8);
}
/** Create a print writer that uses UTF-8 encoding */
diff --git a/jena-core/src/main/java/org/apache/jena/util/Metadata.java
b/jena-core/src/main/java/org/apache/jena/util/Metadata.java
deleted file mode 100644
index c564766c3a..0000000000
--- a/jena-core/src/main/java/org/apache/jena/util/Metadata.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.jena.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList ;
-import java.util.InvalidPropertiesFormatException;
-import java.util.List ;
-import java.util.Properties;
-
-import org.apache.jena.atlas.AtlasException;
-import org.apache.jena.atlas.RuntimeIOException;
-import org.apache.jena.atlas.lib.SystemUtils;
-import org.apache.jena.atlas.logging.Log;
-import org.apache.jena.shared.JenaException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Pluck data out of the ether - or failing that, read it from a properties
file. Assumes
- * the properties file is in the "right place" through configuration of the
build or
- * compile processes.
- */
-public class Metadata {
- private static Logger log = LoggerFactory.getLogger(Metadata.class);
- List<String> resources = new ArrayList<>();
- Properties properties = new Properties();
-
- public Metadata() {}
-
- public Metadata(String resourceName) {
- this();
- addMetadata(resourceName);
- }
-
- public void addMetadata(String resourceName) {
- resources.add(resourceName);
- read(properties, resourceName);
- }
-
- // Protect all classloader choosing -- sometimes systems mess with even
the system
- // class loader.
- private static void read(Properties properties, String resourceName) {
- // Armour-plate this - classloaders and using them can be blocked by
some
- // environments.
- try {
- ClassLoader classLoader = null;
-
- try { classLoader = SystemUtils.chooseClassLoader(); } catch
(AtlasException ex) {}
-
- if ( classLoader == null ) {
- try { classLoader = Metadata.class.getClassLoader(); } catch
(AtlasException ex) {}
- }
-
- if ( classLoader == null ) {
- Log.error(Metadata.class, "No classloader");
- return;
- }
-
- InputStream in = classLoader.getResourceAsStream(resourceName);
- if ( in == null )
- return;
-
- try {
- properties.loadFromXML(in);
- } catch (InvalidPropertiesFormatException ex) {
- throw new JenaException("Invalid properties file", ex);
- } catch (IOException ex) {
- throw new RuntimeIOException("Metadata ==> IOException", ex);
- }
- } catch (Throwable ex) {
- Log.error(Metadata.class, "Unexpected Throwable", ex);
- return;
- }
- }
-
- public String get(String name) {
- return get(name, null);
- }
-
- public String get(String name, String defaultValue) {
- if ( properties == null )
- return defaultValue;
- return properties.getProperty(name, defaultValue);
- }
-}
diff --git
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
index fabcae866e..9097b6e48d 100644
---
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
+++
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
@@ -25,18 +25,16 @@ import java.util.concurrent.TimeUnit;
import javax.servlet.ServletContext;
import org.apache.jena.atlas.lib.DateTimeUtils;
+import org.apache.jena.atlas.lib.Version;
import org.apache.jena.query.ARQ;
import org.apache.jena.riot.system.stream.LocatorFTP;
import org.apache.jena.riot.system.stream.LocatorHTTP;
import org.apache.jena.riot.system.stream.StreamManager;
-import org.apache.jena.sparql.SystemARQ;
-import org.apache.jena.sparql.mgt.SystemInfo;
import org.apache.jena.sparql.util.Context;
import org.apache.jena.sparql.util.MappingRegistry;
import org.apache.jena.sys.JenaSystem;
import org.apache.jena.tdb.TDB;
import org.apache.jena.tdb.transaction.TransactionManager;
-import org.apache.jena.util.Metadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -68,30 +66,11 @@ public class Fuseki {
/** Add CORS header */
static public final boolean CORS_ENABLED = false;
- /**
- * A relative resources path to the location of
- * <code>fuseki-properties.xml</code> file.
- */
- static private String metadataLocation =
"org/apache/jena/fuseki/fuseki-properties.xml";
-
- /**
- * Object which holds metadata specified within
- * {@link Fuseki#metadataLocation}
- */
- static private Metadata metadata = initMetadata();
-
- private static Metadata initMetadata() {
- return new Metadata(metadataLocation);
- }
-
/** The name of the Fuseki server.*/
static public final String NAME = "Apache Jena Fuseki";
/** Version of this Fuseki instance */
- static public final String VERSION = metadata.get(PATH +
".version", "development");
-
- /** Date when Fuseki was built */
- static public final String BUILD_DATE = metadata.get(PATH +
".build.datetime", "unknown");
+ static public final String VERSION =
Version.versionForClass(Fuseki.class).orElse("<devlopment>");
/** Supporting Graph Store Protocol direct naming.
* <p>
@@ -264,12 +243,10 @@ public class Fuseki {
return;
initialized = true;
JenaSystem.init();
- SystemInfo sysInfo = new SystemInfo(FusekiIRI, PATH, VERSION,
BUILD_DATE);
- SystemARQ.registerSubSystem(sysInfo);
MappingRegistry.addPrefixMapping("fuseki", FusekiSymbolIRI);
TDB.setOptimizerWarningFlag(false);
- // Don't set TDB batch commits.
+ // Don't use TDB1 batch commits.
// This can be slower, but it less memory hungry and more predictable.
TransactionManager.QueueBatchSize = 0;
}
@@ -282,9 +259,4 @@ public class Fuseki {
public static Context getContext() {
return ARQ.getContext();
}
-
- // Force a call to init.
- static {
- init();
- }
}
diff --git
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiCoreInfo.java
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiCoreInfo.java
index cc2cb89c18..0b64600f25 100644
---
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiCoreInfo.java
+++
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiCoreInfo.java
@@ -22,7 +22,6 @@ import static java.lang.String.format;
import java.util.*;
-import org.apache.jena.atlas.lib.DateTimeUtils;
import org.apache.jena.atlas.logging.FmtLog;
import org.apache.jena.fuseki.Fuseki;
import org.slf4j.Logger;
@@ -33,19 +32,8 @@ public class FusekiCoreInfo {
/** Details of the code version. */
public static void logCode(Logger log) {
String version = Fuseki.VERSION;
- String buildDate = Fuseki.BUILD_DATE;
String serverName = Fuseki.NAME;
-
- if ( version != null && version.equals("${project.version}") )
- version = null;
- if ( buildDate != null && buildDate.equals("${build.time.xsd}") )
- buildDate = DateTimeUtils.nowAsXSDDateTimeString();
- if ( version != null ) {
- if ( Fuseki.developmentMode && buildDate != null )
- FmtLog.info(log, "%s %s %s", serverName, version, buildDate);
- else
- FmtLog.info(log, "%s %s", serverName, version);
- }
+ FmtLog.info(log, "%s %s", serverName, version);
}
/** Log details - this function is about command line details */
diff --git a/jena-fuseki2/jena-fuseki-ui/src/services/mock/json-server.js
b/jena-fuseki2/jena-fuseki-ui/src/services/mock/json-server.js
index 1bc021bac7..8a9f31e330 100644
--- a/jena-fuseki2/jena-fuseki-ui/src/services/mock/json-server.js
+++ b/jena-fuseki2/jena-fuseki-ui/src/services/mock/json-server.js
@@ -42,8 +42,7 @@ server.get('/index.html', (req, res) => res.jsonp(''))
// GET SERVER INFO
server.get('/\\$/server', (req, res) => {
res.jsonp({
- version: '3.14.0',
- built: builtTime.toISOString(),
+ version: '4.x.y',
startDateTime: startTime.toISOString(),
uptime: parseInt(`${(new Date() - startTime) / 1000}`),
datasets: Object.values(DATASETS)
diff --git
a/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/mgt/ActionServerStatus.java
b/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/mgt/ActionServerStatus.java
index 7d3783e30a..33df28e62a 100644
---
a/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/mgt/ActionServerStatus.java
+++
b/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/mgt/ActionServerStatus.java
@@ -82,19 +82,11 @@ public class ActionServerStatus extends ActionCtl
private void describeServer(JsonBuilder builder, int requestPort) {
String versionStr = Fuseki.VERSION;
- String builtDateStr = Fuseki.BUILD_DATE;
- if ( versionStr == null || versionStr.startsWith("${") )
- versionStr = "Development";
- if ( builtDateStr == null || builtDateStr.startsWith("${") )
- builtDateStr = "Unknown";
-
builder
.pair(ServerMgtConst.version, versionStr)
- .pair(ServerMgtConst.built, builtDateStr)
.pair(ServerMgtConst.startDT, Fuseki.serverStartedAt())
.pair(ServerMgtConst.uptime, Fuseki.serverUptimeSeconds())
-;
-
+ ;
}
private void describeDatasets(JsonBuilder builder, DataAccessPointRegistry
registry) {
diff --git a/jena-tdb1/src/main/java/org/apache/jena/tdb/StoreConnection.java
b/jena-tdb1/src/main/java/org/apache/jena/tdb/StoreConnection.java
index d70bb36635..4163763ca4 100644
--- a/jena-tdb1/src/main/java/org/apache/jena/tdb/StoreConnection.java
+++ b/jena-tdb1/src/main/java/org/apache/jena/tdb/StoreConnection.java
@@ -23,7 +23,6 @@ import java.util.Map ;
import java.util.Set ;
import org.apache.jena.query.TxnType;
-import org.apache.jena.sparql.mgt.ARQMgt ;
import org.apache.jena.tdb.base.file.ChannelManager ;
import org.apache.jena.tdb.base.file.Location ;
import org.apache.jena.tdb.base.file.LocationLock ;
@@ -282,9 +281,6 @@ public class StoreConnection
if (!location.isMemUnique())
// Don't cache use-once in-memory datasets.
cache.put(location, sConn) ;
- String NS = TDB.PATH ;
- TransactionInfo txInfo = new
TransactionInfo(sConn.transactionManager) ;
- ARQMgt.register(NS + ".system:type=Transactions", txInfo) ;
}
return sConn ;
}
diff --git a/jena-tdb1/src/main/java/org/apache/jena/tdb/TDB.java
b/jena-tdb1/src/main/java/org/apache/jena/tdb/TDB.java
index 50fabaed37..46ba684a2b 100644
--- a/jena-tdb1/src/main/java/org/apache/jena/tdb/TDB.java
+++ b/jena-tdb1/src/main/java/org/apache/jena/tdb/TDB.java
@@ -22,6 +22,7 @@ import java.util.Iterator ;
import org.apache.jena.atlas.iterator.Iter ;
import org.apache.jena.atlas.lib.Sync ;
+import org.apache.jena.atlas.lib.Version;
import org.apache.jena.graph.Graph ;
import org.apache.jena.graph.Node ;
import org.apache.jena.ontology.OntModel ;
@@ -30,11 +31,9 @@ import org.apache.jena.query.ARQ ;
import org.apache.jena.query.Dataset ;
import org.apache.jena.rdf.model.Model ;
import org.apache.jena.reasoner.InfGraph ;
-import org.apache.jena.sparql.SystemARQ ;
import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.engine.main.StageBuilder ;
import org.apache.jena.sparql.engine.main.StageGenerator ;
-import org.apache.jena.sparql.mgt.SystemInfo ;
import org.apache.jena.sparql.util.Context ;
import org.apache.jena.sparql.util.MappingRegistry ;
import org.apache.jena.sparql.util.Symbol ;
@@ -49,7 +48,6 @@ import org.apache.jena.tdb.sys.EnvTDB ;
import org.apache.jena.tdb.sys.SystemTDB ;
import org.apache.jena.tdb.sys.TDBInternal;
import org.apache.jena.tdb.transaction.DatasetGraphTransaction ;
-import org.apache.jena.util.Metadata;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
@@ -214,20 +212,13 @@ public class TDB {
((Sync)object).sync() ;
}
- // ---- Static constants read by modVersion
- // ---- Must be after initialization.
-
- static private String metadataLocation =
"org/apache/jena/tdb/tdb-properties.xml" ;
- static private Metadata metadata = new
Metadata(metadataLocation) ;
/** The root package name for TDB */
public static final String PATH = "org.apache.jena.tdb" ;
// The names known to ModVersion : "NAME", "VERSION", "BUILD_DATE"
public static final String NAME = "TDB1" ;
/** The full name of the current TDB version */
- public static final String VERSION = metadata.get(PATH +
".version", "DEV") ;
- /** The date and time at which this release was built */
- public static final String BUILD_DATE = metadata.get(PATH +
".build.datetime", "unset") ;
+ public static final String VERSION =
Version.versionForClass(TDB.class).orElse("<development>");
static { JenaSystem.init(); }
@@ -274,22 +265,10 @@ public class TDB {
StageBuilder.setGenerator(ARQ.getContext(), stageGenerator) ;
}
- // ---- Static constants read by modVersion
- // ---- Must be after initialization.
-
-
-
- // The names known to ModVersion : "NAME", "VERSION", "BUILD_DATE"
-
// Final initialization (in case any statics in this file are important).
static {
initialization2() ;
}
- private static void initialization2() {
- // Set management information.
- SystemInfo systemInfo = new SystemInfo(TDB.tdbIRI, TDB.PATH,
TDB.VERSION, TDB.BUILD_DATE) ;
- SystemARQ.registerSubSystem(systemInfo) ;
- }
-
+ private static void initialization2() {}
}
diff --git a/jena-tdb1/src/main/java/org/apache/jena/tdb/mgt/TDBMgt.java
b/jena-tdb1/src/main/java/org/apache/jena/tdb/mgt/TDBMgt.java
deleted file mode 100644
index ea92eaa4c3..0000000000
--- a/jena-tdb1/src/main/java/org/apache/jena/tdb/mgt/TDBMgt.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.
- */
-
-package org.apache.jena.tdb.mgt;
-
-import org.apache.jena.sparql.mgt.SystemInfo ;
-import org.apache.jena.tdb.TDB ;
-
-public class TDBMgt
-{
- public static void init()
- {
- String NS = TDB.PATH ;
- SystemInfo sysInfo = new SystemInfo(TDB.tdbIRI, TDB.PATH, TDB.VERSION,
TDB.BUILD_DATE) ;
-// ARQMgt.register(NS+".system:type=SystemInfo", sysInfo) ;
-// ARQMgt.register(NS+".system2:type=SystemInfo", new TDBSystemInfo())
;
- }
-}
diff --git a/jena-tdb1/src/test/java/org/apache/jena/tdb/sys/TestSys.java
b/jena-tdb1/src/test/java/org/apache/jena/tdb/sys/TestSys.java
index dd52720026..089fb832b9 100644
--- a/jena-tdb1/src/test/java/org/apache/jena/tdb/sys/TestSys.java
+++ b/jena-tdb1/src/test/java/org/apache/jena/tdb/sys/TestSys.java
@@ -18,17 +18,14 @@
package org.apache.jena.tdb.sys;
-
import static org.junit.Assert.assertNotNull;
-import org.apache.jena.tdb.TDB ;
+import org.apache.jena.tdb.TDB;
import org.junit.Test;
-public class TestSys
-{
- @Test public void sys1()
- {
- assertNotNull(TDB.VERSION) ;
- assertNotNull(TDB.BUILD_DATE) ;
+public class TestSys {
+ @Test
+ public void sys1() {
+ assertNotNull(TDB.VERSION);
}
}
diff --git a/jena-tdb2/src/main/java/org/apache/jena/tdb2/TDB2.java
b/jena-tdb2/src/main/java/org/apache/jena/tdb2/TDB2.java
index 49763564d9..bc1a10c3a5 100644
--- a/jena-tdb2/src/main/java/org/apache/jena/tdb2/TDB2.java
+++ b/jena-tdb2/src/main/java/org/apache/jena/tdb2/TDB2.java
@@ -18,12 +18,11 @@
package org.apache.jena.tdb2;
+import org.apache.jena.atlas.lib.Version;
import org.apache.jena.query.ARQ;
-import org.apache.jena.sparql.SystemARQ;
import org.apache.jena.sparql.core.assembler.AssemblerUtils;
import org.apache.jena.sparql.engine.main.StageBuilder;
import org.apache.jena.sparql.engine.main.StageGenerator;
-import org.apache.jena.sparql.mgt.SystemInfo;
import org.apache.jena.sparql.util.Context;
import org.apache.jena.sparql.util.MappingRegistry;
import org.apache.jena.sparql.util.Symbol;
@@ -35,7 +34,7 @@ import org.apache.jena.tdb2.solver.StageGeneratorDirectTDB;
import org.apache.jena.tdb2.sys.EnvTDB;
import org.apache.jena.tdb2.sys.SystemTDB;
import org.apache.jena.tdb2.sys.TDBInternal;
-import org.apache.jena.util.Metadata;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -153,12 +152,8 @@ public class TDB2 {
StageBuilder.setGenerator(ARQ.getContext(), stageGenerator);
}
- // ---- Static constants read by modVersion
// ---- Must be after initialization.
- private static final String metadataLocation =
"org/apache/jena/tdb2/tdb2-properties.xml";
- private static final Metadata metadata = new
Metadata(metadataLocation);
-
/** The root package name for TDB */
public static final String PATH = "org.apache.jena.tdb2";
@@ -167,20 +162,12 @@ public class TDB2 {
public static final String NAME = "TDB";
/** The full name of the current TDB version */
- public static final String VERSION = metadata.get(PATH +
".version", "DEV");
-
- /** The date and time at which this release was built */
- public static final String BUILD_DATE = metadata.get(PATH +
".build.datetime", "unset");
+ public static final String VERSION =
Version.versionForClass(TDB2.class).orElse("<development>");
// Final initialization (in case any statics in this file are important).
static {
initialization2();
}
- private static void initialization2() {
- // Set management information.
- SystemInfo systemInfo = new SystemInfo(TDB2.tdbIRI, TDB2.PATH,
TDB2.VERSION, TDB2.BUILD_DATE);
- SystemARQ.registerSubSystem(systemInfo);
- }
-
+ private static void initialization2() {}
}
diff --git a/jena-tdb2/src/test/java/org/apache/jena/tdb2/sys/TestSys.java
b/jena-tdb2/src/test/java/org/apache/jena/tdb2/sys/TestSys.java
index 0f2631a60b..2e2242d87d 100644
--- a/jena-tdb2/src/test/java/org/apache/jena/tdb2/sys/TestSys.java
+++ b/jena-tdb2/src/test/java/org/apache/jena/tdb2/sys/TestSys.java
@@ -24,11 +24,9 @@ import static org.junit.Assert.*;
import org.apache.jena.tdb2.TDB2;
import org.junit.Test;
-public class TestSys
-{
- @Test public void sys1()
- {
+public class TestSys {
+ @Test
+ public void sys1() {
assertNotNull(TDB2.VERSION);
- assertNotNull(TDB2.BUILD_DATE);
}
}