Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(bin): add missing JAR directory to windows batch script #1581

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

aogzpa
Copy link

@aogzpa aogzpa commented Feb 7, 2025

What

Fixed the windows batch file in a way that Confluent Community Edition kafka works without docker. Loop through shared folders to include the different JARs to %CLASSPATH% leveraging :concat jump goto label.

See also
confluentinc/schema-registry#3553

Checklist

  • Contains customer facing changes? Including API/behavior changes
  • Is this change gated behind feature flag(s)?
    • List the LD flags needed to be set to enable this change
  • Did you add sufficient unit test and/or integration test coverage for this PR?
    • If not, please explain why it is not required
  • Does this change require modifying existing system tests or adding new system tests?
    • If so, include tracking information for the system test changes

Test & Review

Open before and after sections to check console output.

Zookeeper

Before:
PS C:\confluent-7.8.0\bin\windows> .\zookeeper-server-start.bat ..\..\etc\kafka\zookeeper.properties
Classpath is empty. Please build the project first e.g. by running 'gradlew jarAll'
After:
PS C:\confluent-7.8.0\bin\windows> .\zookeeper-server-start.bat ..\..\etc\kafka\zookeeper.properties
[2025-02-08 00:19:18,981] INFO Reading configuration from: ..\..\etc\kafka\zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2025-02-08 00:19:18,984] WARN ..\..\etc\kafka\zookeeper.properties is relative. Prepend .\ to indicate that you're sure! (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2025-02-08 00:19:18,985] WARN \tmp\zookeeper is relative. Prepend .\ to indicate that you're sure! (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2025-02-08 00:19:18,987] INFO clientPortAddress is 0.0.0.0:2181 (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2025-02-08 00:19:18,988] INFO secureClientPort is not set (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2025-02-08 00:19:18,988] INFO observerMasterPort is not set (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2025-02-08 00:19:18,988] INFO metricsProvider.className is org.apache.zookeeper.metrics.impl.DefaultMetricsProvider (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2025-02-08 00:19:18,990] INFO autopurge.snapRetainCount set to 3 (org.apache.zookeeper.server.DatadirCleanupManager)
[2025-02-08 00:19:18,990] INFO autopurge.purgeInterval set to 0 (org.apache.zookeeper.server.DatadirCleanupManager)
[2025-02-08 00:19:18,990] INFO Purge task is not scheduled. (org.apache.zookeeper.server.DatadirCleanupManager)
[2025-02-08 00:19:18,990] WARN Either no config or no quorum defined in config, running in standalone mode (org.apache.zookeeper.server.quorum.QuorumPeerMain)
[2025-02-08 00:19:18,991] INFO Log4j 1.2 jmx support not found; jmx disabled. (org.apache.zookeeper.jmx.ManagedUtil)
[2025-02-08 00:19:18,992] INFO Reading configuration from: ..\..\etc\kafka\zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2025-02-08 00:19:18,993] WARN ..\..\etc\kafka\zookeeper.properties is relative. Prepend .\ to indicate that you're sure! (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2025-02-08 00:19:18,994] WARN \tmp\zookeeper is relative. Prepend .\ to indicate that you're sure! (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2025-02-08 00:19:18,994] INFO clientPortAddress is 0.0.0.0:2181 (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2025-02-08 00:19:18,994] INFO secureClientPort is not set (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2025-02-08 00:19:18,994] INFO observerMasterPort is not set (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2025-02-08 00:19:18,994] INFO metricsProvider.className is org.apache.zookeeper.metrics.impl.DefaultMetricsProvider (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
[2025-02-08 00:19:18,995] INFO Starting server (org.apache.zookeeper.server.ZooKeeperServerMain)
[2025-02-08 00:19:19,008] INFO ServerMetrics initialized with provider org.apache.zookeeper.metrics.impl.DefaultMetricsProvider@3af9c5b7 (org.apache.zookeeper.server.ServerMetrics)
[2025-02-08 00:19:19,010] INFO ACL digest algorithm is: SHA1 (org.apache.zookeeper.server.auth.DigestAuthenticationProvider)
[2025-02-08 00:19:19,010] INFO zookeeper.DigestAuthenticationProvider.enabled = true (org.apache.zookeeper.server.auth.DigestAuthenticationProvider)
[2025-02-08 00:19:19,012] INFO zookeeper.snapshot.trust.empty : false (org.apache.zookeeper.server.persistence.FileTxnSnapLog)
[2025-02-08 00:19:19,019] INFO  (org.apache.zookeeper.server.ZooKeeperServer)
[2025-02-08 00:19:19,020] INFO   ______                  _                                           (org.apache.zookeeper.server.ZooKeeperServer)
[2025-02-08 00:19:19,020] INFO  |___  /                 | |                                          (org.apache.zookeeper.server.ZooKeeperServer)
[2025-02-08 00:19:19,020] INFO     / /    ___     ___   | | __   ___    ___   _ __     ___   _ __    (org.apache.zookeeper.server.ZooKeeperServer)
[2025-02-08 00:19:19,020] INFO    / /    / _ \   / _ \  | |/ /  / _ \  / _ \ | '_ \   / _ \ | '__| (org.apache.zookeeper.server.ZooKeeperServer)
[2025-02-08 00:19:19,020] INFO   / /__  | (_) | | (_) | |   <  |  __/ |  __/ | |_) | |  __/ | |     (org.apache.zookeeper.server.ZooKeeperServer)
[2025-02-08 00:19:19,020] INFO  /_____|  \___/   \___/  |_|\_\  \___|  \___| | .__/   \___| |_| (org.apache.zookeeper.server.ZooKeeperServer)
[2025-02-08 00:19:19,021] INFO                                               | |                      (org.apache.zookeeper.server.ZooKeeperServer)
[2025-02-08 00:19:19,021] INFO                                               |_|                      (org.apache.zookeeper.server.ZooKeeperServer)
[2025-02-08 00:19:19,021] INFO  (org.apache.zookeeper.server.ZooKeeperServer)
[2025-02-08 00:19:19,024] INFO Server environment:zookeeper.version=3.8.4-9316c2a7a97e1666d8f4593f34dd6fc36ecc436c, built on 2024-02-12 22:16 UTC (org.apache.zookeeper.server.ZooKeeperServer)
[2025-02-08 00:19:19,025] INFO Server environment:java.version=21.0.6 (org.apache.zookeeper.server.ZooKeeperServer)
[2025-02-08 00:19:19,025] INFO Server environment:java.vendor=Eclipse Adoptium (org.apache.zookeeper.server.ZooKeeperServer)
[...]

Kafka

Before:
PS C:\confluent-7.8.0\bin\windows> .\kafka-server-start.bat ..\..\etc\kafka\server.properties
Classpath is empty. Please build the project first e.g. by running 'gradlew jarAll'
After:
PS C:\confluent-7.8.0\bin\windows> .\kafka-server-start.bat ..\..\etc\kafka\server.properties
[2025-02-08 00:27:05,708] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
[2025-02-08 00:27:05,914] INFO Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation (org.apache.zookeeper.common.X509Util)
[2025-02-08 00:27:05,915] INFO RemoteLogManagerConfig values: 
        log.local.retention.bytes = -2
        log.local.retention.ms = -2
        remote.fetch.max.wait.ms = 500
        remote.log.index.file.cache.total.size.bytes = 1073741824
        remote.log.manager.copier.thread.pool.size = 10
        remote.log.manager.copy.max.bytes.per.second = 9223372036854775807
        remote.log.manager.copy.quota.window.num = 11
        remote.log.manager.copy.quota.window.size.seconds = 1
        remote.log.manager.expiration.thread.pool.size = 10
        remote.log.manager.fetch.max.bytes.per.second = 9223372036854775807
        remote.log.manager.fetch.quota.window.num = 11
        remote.log.manager.fetch.quota.window.size.seconds = 1
        remote.log.manager.task.interval.ms = 30000
        remote.log.manager.task.retry.backoff.max.ms = 30000
        remote.log.manager.task.retry.backoff.ms = 500
        remote.log.manager.task.retry.jitter = 0.2
        remote.log.manager.thread.pool.size = 10
        remote.log.metadata.custom.metadata.max.bytes = 128
        remote.log.metadata.manager.class.name = org.apache.kafka.server.log.remote.metadata.storage.TopicBasedRemoteLogMetadataManager
        remote.log.metadata.manager.class.path = null
        remote.log.metadata.manager.impl.prefix = rlmm.config.
        remote.log.metadata.manager.listener.name = null
        remote.log.reader.max.pending.tasks = 100
        remote.log.reader.threads = 10
        remote.log.storage.manager.class.name = null
        remote.log.storage.manager.class.path = null
        remote.log.storage.manager.impl.prefix = rsm.config.
        remote.log.storage.system.enable = false
 (org.apache.kafka.server.log.remote.storage.RemoteLogManagerConfig)
[2025-02-08 00:27:05,997] INFO starting (kafka.server.KafkaServer)
[2025-02-08 00:27:05,998] INFO Connecting to zookeeper on localhost:2181 (kafka.server.KafkaServer)
[2025-02-08 00:27:06,007] INFO [ZooKeeperClient Kafka server] Initializing a new session to localhost:2181. (kafka.zookeeper.ZooKeeperClient)
[2025-02-08 00:27:06,012] INFO Client environment:zookeeper.version=3.8.4-9316c2a7a97e1666d8f4593f34dd6fc36ecc436c, built on 2024-02-12 22:16 UTC (org.apache.zookeeper.ZooKeeper)
[2025-02-08 00:27:06,013] INFO Client environment:java.version=21.0.6 (org.apache.zookeeper.ZooKeeper)
[2025-02-08 00:27:06,013] INFO Client environment:java.vendor=Eclipse Adoptium (org.apache.zookeeper.ZooKeeper)
[...]

@aogzpa aogzpa requested review from a team as code owners February 7, 2025 23:31
@aogzpa aogzpa changed the title fix(bin): add missing JAR directory for windows batch script fix(bin): add missing JAR directory to windows batch script Feb 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant