Skip to content

Commit

Permalink
Add language specification to property names (#2795)
Browse files Browse the repository at this point in the history
This is the first step in implementing #2746. Namely,

Properties in PropertyNames.xml now require an additional attribute languages="...". This specifies the languages which support this property. Languages which do not support the property do not generate an entry for it. As a consequence they'll warnings will be issued they you try to use an unsupported property.

languages is a comma separated list of cpp, csharp, java, js, or a all (by itself).

Reworked makeprops to delay generation until after we've parsed all the properties. We need to know ahead of time if an entire section will be empty or not.
  • Loading branch information
externl authored Sep 26, 2024
1 parent 6a6a8f4 commit 4bdf7c3
Show file tree
Hide file tree
Showing 12 changed files with 1,351 additions and 3,239 deletions.
613 changes: 308 additions & 305 deletions config/PropertyNames.xml

Large diffs are not rendered by default.

342 changes: 186 additions & 156 deletions config/makeprops.py

Large diffs are not rendered by default.

67 changes: 2 additions & 65 deletions cpp/src/Ice/PropertyNames.cpp

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion cpp/src/Ice/PropertyNames.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright (c) ZeroC, Inc.

// Generated by makeprops.py from PropertyNames.xml, Tue Sep 24 11:13:32 2024
// Generated by makeprops.py from PropertyNames.xml, Thu Sep 26 11:13:37 2024

// IMPORTANT: Do not edit this file -- any edits made here will be lost!

Expand Down
1,597 changes: 398 additions & 1,199 deletions csharp/src/Ice/Internal/PropertyNames.cs

Large diffs are not rendered by default.

1,761 changes: 440 additions & 1,321 deletions java/src/Ice/src/main/java/com/zeroc/Ice/PropertyNames.java

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions java/test/src/main/java/test/Ice/properties/Client.java
Original file line number Diff line number Diff line change
Expand Up @@ -97,13 +97,13 @@ public void run(String[] args) {
System.out.print("testing ice properties with unset default values...");
Properties properties = new Properties();

String stringValue = properties.getIceProperty("IceSSL.CAs");
String stringValue = properties.getIceProperty("Ice.Default.Host");
test(stringValue.isEmpty());

int intValue = properties.getIcePropertyAsInt("IceSSL.CAs");
int intValue = properties.getIcePropertyAsInt("Ice.Default.Host");
test(intValue == 0);

String[] listValue = properties.getIcePropertyAsList("IceSSL.CAs");
String[] listValue = properties.getIcePropertyAsList("Ice.Default.Host");
test(listValue.length == 0);

System.out.println("ok");
Expand Down
125 changes: 1 addition & 124 deletions js/src/Ice/PropertyNames.js
Original file line number Diff line number Diff line change
@@ -1,86 +1,22 @@
// Copyright (c) ZeroC, Inc.

// Generated by makeprops.py from PropertyNames.xml, Tue Sep 24 11:13:32 2024
// Generated by makeprops.py from PropertyNames.xml, Thu Sep 26 11:13:37 2024

// IMPORTANT: Do not edit this file -- any edits made here will be lost!

/* eslint comma-dangle: "off" */
/* eslint array-bracket-newline: "off" */
/* eslint no-useless-escape: "off" */

import { Property } from "./Property.js";
export const PropertyNames = {};
const IceProps =
[
new Property("Ice.AcceptClassCycles", false, "0", false),
new Property("Ice.Admin.AdapterId", false, "", false),
new Property("Ice.Admin.Connection.CloseTimeout", false, "10", false),
new Property("Ice.Admin.Connection.ConnectTimeout", false, "10", false),
new Property("Ice.Admin.Connection.EnableIdleCheck", false, "1", false),
new Property("Ice.Admin.Connection.IdleTimeout", false, "60", false),
new Property("Ice.Admin.Connection.InactivityTimeout", false, "300", false),
new Property("Ice.Admin.Connection.MaxDispatches", false, "100", false),
new Property("Ice.Admin.Endpoints", false, "", false),
new Property("Ice.Admin.Locator.EndpointSelection", false, "", false),
new Property("Ice.Admin.Locator.ConnectionCached", false, "", false),
new Property("Ice.Admin.Locator.PreferSecure", false, "", false),
new Property("Ice.Admin.Locator.LocatorCacheTimeout", false, "", false),
new Property("Ice.Admin.Locator.InvocationTimeout", false, "", false),
new Property("Ice.Admin.Locator.Locator", false, "", false),
new Property("Ice.Admin.Locator.Router", false, "", false),
new Property("Ice.Admin.Locator.CollocationOptimized", false, "", false),
new Property(/^Ice\.Admin\.Locator\.Context\../, true, "", false),
new Property("Ice.Admin.Locator", false, "", false),
new Property("Ice.Admin.PublishedEndpoints", false, "", false),
new Property("Ice.Admin.ReplicaGroupId", false, "", false),
new Property("Ice.Admin.Router.EndpointSelection", false, "", false),
new Property("Ice.Admin.Router.ConnectionCached", false, "", false),
new Property("Ice.Admin.Router.PreferSecure", false, "", false),
new Property("Ice.Admin.Router.LocatorCacheTimeout", false, "", false),
new Property("Ice.Admin.Router.InvocationTimeout", false, "", false),
new Property("Ice.Admin.Router.Locator", false, "", false),
new Property("Ice.Admin.Router.Router", false, "", false),
new Property("Ice.Admin.Router.CollocationOptimized", false, "", false),
new Property(/^Ice\.Admin\.Router\.Context\../, true, "", false),
new Property("Ice.Admin.Router", false, "", false),
new Property("Ice.Admin.ProxyOptions", false, "", false),
new Property("Ice.Admin.ThreadPool.Size", false, "1", false),
new Property("Ice.Admin.ThreadPool.SizeMax", false, "", false),
new Property("Ice.Admin.ThreadPool.SizeWarn", false, "0", false),
new Property("Ice.Admin.ThreadPool.StackSize", false, "0", false),
new Property("Ice.Admin.ThreadPool.Serialize", false, "0", false),
new Property("Ice.Admin.ThreadPool.ThreadIdleTime", false, "60", false),
new Property("Ice.Admin.ThreadPool.ThreadPriority", false, "", false),
new Property("Ice.Admin.MessageSizeMax", false, "", false),
new Property("Ice.Admin.DelayCreation", false, "0", false),
new Property("Ice.Admin.Enabled", false, "", false),
new Property("Ice.Admin.Facets", false, "", false),
new Property("Ice.Admin.InstanceName", false, "", false),
new Property("Ice.Admin.Logger.KeepLogs", false, "100", false),
new Property("Ice.Admin.Logger.KeepTraces", false, "100", false),
new Property("Ice.Admin.Logger.Properties", false, "", false),
new Property("Ice.Admin.ServerId", false, "", false),
new Property("Ice.BackgroundLocatorCacheUpdates", false, "0", false),
new Property("Ice.BatchAutoFlush", false, "", true),
new Property("Ice.BatchAutoFlushSize", false, "1024", false),
new Property("Ice.ChangeUser", false, "", false),
new Property("Ice.ClassGraphDepthMax", false, "10", false),
new Property("Ice.Compression.Level", false, "1", false),
new Property("Ice.Config", false, "", false),
new Property("Ice.Connection.Client.CloseTimeout", false, "10", false),
new Property("Ice.Connection.Client.ConnectTimeout", false, "10", false),
new Property("Ice.Connection.Client.EnableIdleCheck", false, "1", false),
new Property("Ice.Connection.Client.IdleTimeout", false, "60", false),
new Property("Ice.Connection.Client.InactivityTimeout", false, "300", false),
new Property("Ice.Connection.Client.MaxDispatches", false, "100", false),
new Property("Ice.Connection.Server.CloseTimeout", false, "10", false),
new Property("Ice.Connection.Server.ConnectTimeout", false, "10", false),
new Property("Ice.Connection.Server.EnableIdleCheck", false, "1", false),
new Property("Ice.Connection.Server.IdleTimeout", false, "60", false),
new Property("Ice.Connection.Server.InactivityTimeout", false, "300", false),
new Property("Ice.Connection.Server.MaxDispatches", false, "100", false),
new Property("Ice.ConsoleListener", false, "1", false),
new Property("Ice.Default.CollocationOptimized", false, "1", false),
new Property("Ice.Default.EncodingVersion", false, "1.1", false),
new Property("Ice.Default.EndpointSelection", false, "Random", false),
new Property("Ice.Default.Host", false, "", false),
Expand All @@ -96,7 +32,6 @@ const IceProps =
new Property("Ice.Default.Locator", false, "", false),
new Property("Ice.Default.LocatorCacheTimeout", false, "-1", false),
new Property("Ice.Default.InvocationTimeout", false, "-1", false),
new Property("Ice.Default.Package", false, "", false),
new Property("Ice.Default.PreferSecure", false, "0", false),
new Property("Ice.Default.Protocol", false, "tcp", false),
new Property("Ice.Default.Router.EndpointSelection", false, "", false),
Expand All @@ -111,79 +46,21 @@ const IceProps =
new Property("Ice.Default.Router", false, "", false),
new Property("Ice.Default.SlicedFormat", false, "0", false),
new Property("Ice.Default.SourceAddress", false, "", false),
new Property("Ice.EventLog.Source", false, "", false),
new Property("Ice.FactoryAssemblies", false, "", false),
new Property("Ice.HTTPProxyHost", false, "", false),
new Property("Ice.HTTPProxyPort", false, "1080", false),
new Property("Ice.ImplicitContext", false, "None", false),
new Property("Ice.InitPlugins", false, "1", false),
new Property("Ice.IPv4", false, "1", false),
new Property("Ice.IPv6", false, "1", false),
new Property("Ice.LogFile", false, "", false),
new Property("Ice.LogFile.SizeMax", false, "0", false),
new Property("Ice.LogStdErr.Convert", false, "1", false),
new Property("Ice.MessageSizeMax", false, "1024", false),
new Property("Ice.Nohup", false, "1", false),
new Property("Ice.Override.Compress", false, "", false),
new Property("Ice.Override.Secure", false, "", false),
new Property(/^Ice\.Package\../, true, "", false),
new Property(/^Ice\.Plugin\../, true, "", false),
new Property("Ice.PluginLoadOrder", false, "", false),
new Property("Ice.PreferIPv6Address", false, "0", false),
new Property("Ice.PreloadAssemblies", false, "0", false),
new Property("Ice.PrintAdapterReady", false, "", false),
new Property("Ice.PrintProcessId", false, "", false),
new Property("Ice.PrintStackTraces", false, "0", false),
new Property("Ice.ProgramName", false, "", false),
new Property("Ice.RetryIntervals", false, "0", false),
new Property("Ice.ServerIdleTime", false, "0", false),
new Property("Ice.SOCKSProxyHost", false, "", false),
new Property("Ice.SOCKSProxyPort", false, "1080", false),
new Property("Ice.StdErr", false, "", false),
new Property("Ice.StdOut", false, "", false),
new Property("Ice.SyslogFacility", false, "LOG_USER", false),
new Property("Ice.ThreadPool.Client.Size", false, "1", false),
new Property("Ice.ThreadPool.Client.SizeMax", false, "", false),
new Property("Ice.ThreadPool.Client.SizeWarn", false, "0", false),
new Property("Ice.ThreadPool.Client.StackSize", false, "0", false),
new Property("Ice.ThreadPool.Client.Serialize", false, "0", false),
new Property("Ice.ThreadPool.Client.ThreadIdleTime", false, "60", false),
new Property("Ice.ThreadPool.Client.ThreadPriority", false, "", false),
new Property("Ice.ThreadPool.Server.Size", false, "1", false),
new Property("Ice.ThreadPool.Server.SizeMax", false, "", false),
new Property("Ice.ThreadPool.Server.SizeWarn", false, "0", false),
new Property("Ice.ThreadPool.Server.StackSize", false, "0", false),
new Property("Ice.ThreadPool.Server.Serialize", false, "0", false),
new Property("Ice.ThreadPool.Server.ThreadIdleTime", false, "60", false),
new Property("Ice.ThreadPool.Server.ThreadPriority", false, "", false),
new Property("Ice.ThreadPriority", false, "", false),
new Property("Ice.ToStringMode", false, "Unicode", false),
new Property("Ice.Trace.Admin.Properties", false, "0", false),
new Property("Ice.Trace.Admin.Logger", false, "0", false),
new Property("Ice.Trace.Locator", false, "0", false),
new Property("Ice.Trace.Network", false, "0", false),
new Property("Ice.Trace.Protocol", false, "0", false),
new Property("Ice.Trace.Retry", false, "0", false),
new Property("Ice.Trace.Slicing", false, "0", false),
new Property("Ice.Trace.ThreadPool", false, "0", false),
new Property("Ice.UDP.RcvSize", false, "", false),
new Property("Ice.UDP.SndSize", false, "", false),
new Property("Ice.TCP.Backlog", false, "", false),
new Property("Ice.TCP.RcvSize", false, "", false),
new Property("Ice.TCP.SndSize", false, "", false),
new Property("Ice.UseApplicationClassLoader", false, "", false),
new Property("Ice.UseOSLog", false, "0", false),
new Property("Ice.UseSyslog", false, "0", false),
new Property("Ice.UseSystemdJournal", false, "0", false),
new Property("Ice.Warn.AMICallback", false, "1", false),
new Property("Ice.Warn.Connections", false, "0", false),
new Property("Ice.Warn.Datagrams", false, "0", false),
new Property("Ice.Warn.Dispatch", false, "1", false),
new Property("Ice.Warn.Endpoints", false, "1", false),
new Property("Ice.Warn.UnknownProperties", false, "1", false),
new Property("Ice.Warn.UnusedProperties", false, "0", false),
new Property("Ice.CacheMessageBuffers", false, "2", false),
new Property("Ice.ThreadInterruptSafe", false, "", false),
];

PropertyNames.validProps = new Map();
Expand Down
1 change: 0 additions & 1 deletion js/test/Glacier2/router/Client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,6 @@ export class Client extends TestHelper {
out.writeLine("ok");

out.write("creating and activating callback receiver adapter... ");
communicator.getProperties().setProperty("Ice.PrintAdapterReady", "0");
const adapter = await communicator.createObjectAdapterWithRouter("CallbackReceiverAdapter", router);
await adapter.activate();
out.writeLine("ok");
Expand Down
6 changes: 3 additions & 3 deletions js/test/Ice/properties/Client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,13 +74,13 @@ export class Client extends TestHelper {
out.write("testing ice properties with unset default values...");
const properties = Ice.createProperties();

const stringValue = properties.getIceProperty("Ice.Admin.Router");
const stringValue = properties.getIceProperty("Ice.Default.Host");
test(stringValue == "");

const intValue = properties.getIcePropertyAsInt("Ice.Admin.Router");
const intValue = properties.getIcePropertyAsInt("Ice.Default.Host");
test(intValue == 0);

const listValue = properties.getIcePropertyAsList("Ice.Admin.Router");
const listValue = properties.getIcePropertyAsList("Ice.Default.Host");
test(listValue.length == 0);

out.writeLine("ok");
Expand Down
12 changes: 9 additions & 3 deletions scripts/Util.py
Original file line number Diff line number Diff line change
Expand Up @@ -840,7 +840,7 @@ def cloneRunnable(self, current):
def cloneAndOverrideWith(self, current):
#
# Clone this configuration and override options with options from the given configuration
# (the parent configuraton). This is usefull when running cross-testing. For example, JS
# (the parent configuration). This is useful when running cross-testing. For example, JS
# tests don't support all the options so we clone the C++ configuration and override the
# options that are set on the JS configuration.
#
Expand All @@ -864,7 +864,9 @@ def getProps(self, process, current):
props["Ice.Override.Compress"] = "1"
if self.serialize:
props["Ice.ThreadPool.Server.Serialize"] = "1"
props["Ice.IPv6"] = self.ipv6
# JavaScript does not support the Ice.IPv6 property
if not isinstance(current.testsuite.getMapping(), JavaScriptMapping):
props["Ice.IPv6"] = self.ipv6
if self.ipv6:
props["Ice.PreferIPv6Address"] = True
if self.mx:
Expand Down Expand Up @@ -3598,8 +3600,12 @@ def __init__(self, options=[]):
self.pathOverride = os.path.abspath(self.pathOverride)

def getProps(self, process, current):
# JavaScript does not support Ice.PrintStackTraces
supportsPrintStackTraces = not isinstance(
current.testsuite.getMapping(), JavaScriptMapping
)
props = Mapping.getProps(self, process, current)
if isinstance(process, IceProcess):
if isinstance(process, IceProcess) and supportsPrintStackTraces:
props["Ice.PrintStackTraces"] = "1"
return props

Expand Down
58 changes: 0 additions & 58 deletions swift/src/Ice/Plugin.swift

This file was deleted.

0 comments on commit 4bdf7c3

Please sign in to comment.