Makefile 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471
  1. NATIVE_JAVA_CLASSES = \
  2. org.rocksdb.AbstractCompactionFilter\
  3. org.rocksdb.AbstractCompactionFilterFactory\
  4. org.rocksdb.AbstractComparator\
  5. org.rocksdb.AbstractEventListener\
  6. org.rocksdb.AbstractSlice\
  7. org.rocksdb.AbstractTableFilter\
  8. org.rocksdb.AbstractTraceWriter\
  9. org.rocksdb.AbstractTransactionNotifier\
  10. org.rocksdb.AbstractWalFilter\
  11. org.rocksdb.BackupEngine\
  12. org.rocksdb.BackupEngineOptions\
  13. org.rocksdb.BlockBasedTableConfig\
  14. org.rocksdb.BloomFilter\
  15. org.rocksdb.Checkpoint\
  16. org.rocksdb.ClockCache\
  17. org.rocksdb.Cache\
  18. org.rocksdb.CassandraCompactionFilter\
  19. org.rocksdb.CassandraValueMergeOperator\
  20. org.rocksdb.ColumnFamilyHandle\
  21. org.rocksdb.ColumnFamilyOptions\
  22. org.rocksdb.CompactionJobInfo\
  23. org.rocksdb.CompactionJobStats\
  24. org.rocksdb.CompactionOptions\
  25. org.rocksdb.CompactionOptionsFIFO\
  26. org.rocksdb.CompactionOptionsUniversal\
  27. org.rocksdb.CompactRangeOptions\
  28. org.rocksdb.ComparatorOptions\
  29. org.rocksdb.CompressionOptions\
  30. org.rocksdb.ConfigOptions\
  31. org.rocksdb.DBOptions\
  32. org.rocksdb.DirectSlice\
  33. org.rocksdb.Env\
  34. org.rocksdb.EnvOptions\
  35. org.rocksdb.FlushOptions\
  36. org.rocksdb.Filter\
  37. org.rocksdb.IngestExternalFileOptions\
  38. org.rocksdb.HashLinkedListMemTableConfig\
  39. org.rocksdb.HashSkipListMemTableConfig\
  40. org.rocksdb.ConcurrentTaskLimiter\
  41. org.rocksdb.ConcurrentTaskLimiterImpl\
  42. org.rocksdb.KeyMayExist\
  43. org.rocksdb.Logger\
  44. org.rocksdb.LRUCache\
  45. org.rocksdb.MemoryUsageType\
  46. org.rocksdb.MemoryUtil\
  47. org.rocksdb.MergeOperator\
  48. org.rocksdb.NativeComparatorWrapper\
  49. org.rocksdb.OptimisticTransactionDB\
  50. org.rocksdb.OptimisticTransactionOptions\
  51. org.rocksdb.Options\
  52. org.rocksdb.OptionsUtil\
  53. org.rocksdb.PersistentCache\
  54. org.rocksdb.PerfContext\
  55. org.rocksdb.PerfLevel\
  56. org.rocksdb.PlainTableConfig\
  57. org.rocksdb.RateLimiter\
  58. org.rocksdb.ReadOptions\
  59. org.rocksdb.RemoveEmptyValueCompactionFilter\
  60. org.rocksdb.RestoreOptions\
  61. org.rocksdb.RocksCallbackObject\
  62. org.rocksdb.RocksDB\
  63. org.rocksdb.RocksEnv\
  64. org.rocksdb.RocksIterator\
  65. org.rocksdb.RocksMemEnv\
  66. org.rocksdb.SkipListMemTableConfig\
  67. org.rocksdb.Slice\
  68. org.rocksdb.SstFileManager\
  69. org.rocksdb.SstFileWriter\
  70. org.rocksdb.SstFileReader\
  71. org.rocksdb.SstFileReaderIterator\
  72. org.rocksdb.SstPartitionerFactory\
  73. org.rocksdb.SstPartitionerFixedPrefixFactory\
  74. org.rocksdb.Statistics\
  75. org.rocksdb.ThreadStatus\
  76. org.rocksdb.TimedEnv\
  77. org.rocksdb.Transaction\
  78. org.rocksdb.TransactionDB\
  79. org.rocksdb.TransactionDBOptions\
  80. org.rocksdb.TransactionOptions\
  81. org.rocksdb.TransactionLogIterator\
  82. org.rocksdb.TtlDB\
  83. org.rocksdb.VectorMemTableConfig\
  84. org.rocksdb.Snapshot\
  85. org.rocksdb.StringAppendOperator\
  86. org.rocksdb.UInt64AddOperator\
  87. org.rocksdb.WriteBatch\
  88. org.rocksdb.WriteBatch.Handler\
  89. org.rocksdb.WriteOptions\
  90. org.rocksdb.WriteBatchWithIndex\
  91. org.rocksdb.WriteBufferManager\
  92. org.rocksdb.WBWIRocksIterator\
  93. org.rocksdb.util.StdErrLogger
  94. NATIVE_JAVA_TEST_CLASSES = \
  95. org.rocksdb.RocksDBExceptionTest\
  96. org.rocksdb.test.TestableEventListener\
  97. org.rocksdb.NativeComparatorWrapperTest.NativeStringComparatorWrapper\
  98. org.rocksdb.WriteBatchTest\
  99. org.rocksdb.WriteBatchTestInternalHelper
  100. ROCKSDB_MAJOR = $(shell grep -E "ROCKSDB_MAJOR.[0-9]" ../include/rocksdb/version.h | cut -d ' ' -f 3)
  101. ROCKSDB_MINOR = $(shell grep -E "ROCKSDB_MINOR.[0-9]" ../include/rocksdb/version.h | cut -d ' ' -f 3)
  102. ROCKSDB_PATCH = $(shell grep -E "ROCKSDB_PATCH.[0-9]" ../include/rocksdb/version.h | cut -d ' ' -f 3)
  103. NATIVE_INCLUDE = ./include
  104. ARCH := $(shell getconf LONG_BIT)
  105. SHA256_CMD ?= sha256sum
  106. JAVA_TESTS = \
  107. org.rocksdb.BackupEngineOptionsTest\
  108. org.rocksdb.BackupEngineTest\
  109. org.rocksdb.BlobOptionsTest\
  110. org.rocksdb.BlockBasedTableConfigTest\
  111. org.rocksdb.BuiltinComparatorTest\
  112. org.rocksdb.ByteBufferUnsupportedOperationTest\
  113. org.rocksdb.BytewiseComparatorRegressionTest\
  114. org.rocksdb.util.BytewiseComparatorTest\
  115. org.rocksdb.util.BytewiseComparatorIntTest\
  116. org.rocksdb.CheckPointTest\
  117. org.rocksdb.ClockCacheTest\
  118. org.rocksdb.ColumnFamilyOptionsTest\
  119. org.rocksdb.ColumnFamilyTest\
  120. org.rocksdb.CompactionFilterFactoryTest\
  121. org.rocksdb.CompactionJobInfoTest\
  122. org.rocksdb.CompactionJobStatsTest\
  123. org.rocksdb.CompactionOptionsTest\
  124. org.rocksdb.CompactionOptionsFIFOTest\
  125. org.rocksdb.CompactionOptionsUniversalTest\
  126. org.rocksdb.CompactionPriorityTest\
  127. org.rocksdb.CompactionStopStyleTest\
  128. org.rocksdb.ComparatorOptionsTest\
  129. org.rocksdb.CompressionOptionsTest\
  130. org.rocksdb.CompressionTypesTest\
  131. org.rocksdb.DBOptionsTest\
  132. org.rocksdb.DirectSliceTest\
  133. org.rocksdb.util.EnvironmentTest\
  134. org.rocksdb.EnvOptionsTest\
  135. org.rocksdb.EventListenerTest\
  136. org.rocksdb.IngestExternalFileOptionsTest\
  137. org.rocksdb.util.IntComparatorTest\
  138. org.rocksdb.util.JNIComparatorTest\
  139. org.rocksdb.FilterTest\
  140. org.rocksdb.FlushTest\
  141. org.rocksdb.ImportColumnFamilyTest\
  142. org.rocksdb.InfoLogLevelTest\
  143. org.rocksdb.KeyExistsTest \
  144. org.rocksdb.KeyMayExistTest\
  145. org.rocksdb.ConcurrentTaskLimiterTest\
  146. org.rocksdb.LoggerTest\
  147. org.rocksdb.LRUCacheTest\
  148. org.rocksdb.MemoryUtilTest\
  149. org.rocksdb.MemTableTest\
  150. org.rocksdb.MergeCFVariantsTest\
  151. org.rocksdb.MergeTest\
  152. org.rocksdb.MergeVariantsTest\
  153. org.rocksdb.MultiColumnRegressionTest \
  154. org.rocksdb.MultiGetManyKeysTest\
  155. org.rocksdb.MultiGetTest\
  156. org.rocksdb.MixedOptionsTest\
  157. org.rocksdb.MutableColumnFamilyOptionsTest\
  158. org.rocksdb.MutableDBOptionsTest\
  159. org.rocksdb.MutableOptionsGetSetTest \
  160. org.rocksdb.NativeComparatorWrapperTest\
  161. org.rocksdb.NativeLibraryLoaderTest\
  162. org.rocksdb.OptimisticTransactionTest\
  163. org.rocksdb.OptimisticTransactionDBTest\
  164. org.rocksdb.OptimisticTransactionOptionsTest\
  165. org.rocksdb.OptionsUtilTest\
  166. org.rocksdb.OptionsTest\
  167. org.rocksdb.PerfLevelTest \
  168. org.rocksdb.PerfContextTest \
  169. org.rocksdb.PutCFVariantsTest\
  170. org.rocksdb.PutVariantsTest\
  171. org.rocksdb.PlainTableConfigTest\
  172. org.rocksdb.RateLimiterTest\
  173. org.rocksdb.ReadOnlyTest\
  174. org.rocksdb.ReadOptionsTest\
  175. org.rocksdb.util.ReverseBytewiseComparatorIntTest\
  176. org.rocksdb.RocksDBTest\
  177. org.rocksdb.RocksDBExceptionTest\
  178. org.rocksdb.DefaultEnvTest\
  179. org.rocksdb.RocksIteratorTest\
  180. org.rocksdb.RocksMemEnvTest\
  181. org.rocksdb.util.SizeUnitTest\
  182. org.rocksdb.SecondaryDBTest\
  183. org.rocksdb.SliceTest\
  184. org.rocksdb.SnapshotTest\
  185. org.rocksdb.SstFileManagerTest\
  186. org.rocksdb.SstFileWriterTest\
  187. org.rocksdb.SstFileReaderTest\
  188. org.rocksdb.SstPartitionerTest\
  189. org.rocksdb.TableFilterTest\
  190. org.rocksdb.TimedEnvTest\
  191. org.rocksdb.TransactionTest\
  192. org.rocksdb.TransactionDBTest\
  193. org.rocksdb.TransactionOptionsTest\
  194. org.rocksdb.TransactionDBOptionsTest\
  195. org.rocksdb.TransactionLogIteratorTest\
  196. org.rocksdb.TtlDBTest\
  197. org.rocksdb.StatisticsTest\
  198. org.rocksdb.StatisticsCollectorTest\
  199. org.rocksdb.VerifyChecksumsTest\
  200. org.rocksdb.WalFilterTest\
  201. org.rocksdb.WALRecoveryModeTest\
  202. org.rocksdb.WriteBatchHandlerTest\
  203. org.rocksdb.WriteBatchTest\
  204. org.rocksdb.WriteBatchThreadedTest\
  205. org.rocksdb.WriteOptionsTest\
  206. org.rocksdb.WriteBatchWithIndexTest\
  207. org.rocksdb.util.StdErrLoggerTest
  208. MAIN_SRC = src/main/java
  209. TEST_SRC = src/test/java
  210. OUTPUT = target
  211. MAIN_CLASSES = $(OUTPUT)/classes
  212. TEST_CLASSES = $(OUTPUT)/test-classes
  213. JAVADOC = $(OUTPUT)/apidocs
  214. BENCHMARK_MAIN_SRC = benchmark/src/main/java
  215. BENCHMARK_OUTPUT = benchmark/target
  216. BENCHMARK_MAIN_CLASSES = $(BENCHMARK_OUTPUT)/classes
  217. SAMPLES_MAIN_SRC = samples/src/main/java
  218. SAMPLES_OUTPUT = samples/target
  219. SAMPLES_MAIN_CLASSES = $(SAMPLES_OUTPUT)/classes
  220. JAVA_TEST_LIBDIR = test-libs
  221. JAVA_JUNIT_VER = 4.13.1
  222. JAVA_JUNIT_SHA256 = c30719db974d6452793fe191b3638a5777005485bae145924044530ffa5f6122
  223. JAVA_JUNIT_JAR = junit-$(JAVA_JUNIT_VER).jar
  224. JAVA_JUNIT_JAR_PATH = $(JAVA_TEST_LIBDIR)/$(JAVA_JUNIT_JAR)
  225. JAVA_HAMCREST_VER = 2.2
  226. JAVA_HAMCREST_SHA256 = 5e62846a89f05cd78cd9c1a553f340d002458380c320455dd1f8fc5497a8a1c1
  227. JAVA_HAMCREST_JAR = hamcrest-$(JAVA_HAMCREST_VER).jar
  228. JAVA_HAMCREST_JAR_PATH = $(JAVA_TEST_LIBDIR)/$(JAVA_HAMCREST_JAR)
  229. JAVA_MOCKITO_VER = 1.10.19
  230. JAVA_MOCKITO_SHA256 = d1a7a7ef14b3db5c0fc3e0a63a81b374b510afe85add9f7984b97911f4c70605
  231. JAVA_MOCKITO_JAR = mockito-all-$(JAVA_MOCKITO_VER).jar
  232. JAVA_MOCKITO_JAR_PATH = $(JAVA_TEST_LIBDIR)/$(JAVA_MOCKITO_JAR)
  233. JAVA_CGLIB_VER = 3.3.0
  234. JAVA_CGLIB_SHA256 = 9fe0c26d7464140ccdfe019ac687be1fb906122b508ab54beb810db0f09a9212
  235. JAVA_CGLIB_JAR = cglib-$(JAVA_CGLIB_VER).jar
  236. JAVA_CGLIB_JAR_PATH = $(JAVA_TEST_LIBDIR)/$(JAVA_CGLIB_JAR)
  237. JAVA_ASSERTJ_VER = 2.9.0
  238. JAVA_ASSERTJ_SHA256 = 5e88ea3ecbe3c48aa1346fec76c84979fa9c8d22499f11479011691230e8babf
  239. JAVA_ASSERTJ_JAR = assertj-core-$(JAVA_ASSERTJ_VER).jar
  240. JAVA_ASSERTJ_JAR_PATH = $(JAVA_TEST_LIBDIR)/$(JAVA_ASSERTJ_JAR)
  241. JAVA_TESTCLASSPATH = $(JAVA_JUNIT_JAR_PATH):$(JAVA_HAMCREST_JAR_PATH):$(JAVA_MOCKITO_JAR_PATH):$(JAVA_CGLIB_JAR_PATH):$(JAVA_ASSERTJ_JAR_PATH)
  242. MVN_LOCAL = ~/.m2/repository
  243. # Set the path of the java commands
  244. ifeq ($(JAVA_CMD),)
  245. ifneq ($(JAVA_HOME),)
  246. JAVA_CMD := $(JAVA_HOME)/bin/java
  247. else
  248. JAVA_CMD := java
  249. endif
  250. endif
  251. ifeq ($(JAVAC_CMD),)
  252. ifneq ($(JAVA_HOME),)
  253. JAVAC_CMD := $(JAVA_HOME)/bin/javac
  254. else
  255. JAVAC_CMD := javac
  256. endif
  257. endif
  258. ifeq ($(JAVADOC_CMD),)
  259. ifneq ($(JAVA_HOME),)
  260. JAVADOC_CMD := $(JAVA_HOME)/bin/javadoc
  261. else
  262. JAVADOC_CMD := javadoc
  263. endif
  264. endif
  265. MAVEN_CMD := mvn
  266. # Look for the Java version (1.6->6, 1.7->7, 1.8->8, 11.0->11, 13.0->13, 15.0->15 etc..)
  267. JAVAC_VERSION := $(shell $(JAVAC_CMD) -version 2>&1)
  268. JAVAC_MAJOR_VERSION := $(word 2,$(subst ., ,$(JAVAC_VERSION)))
  269. ifeq ($(JAVAC_MAJOR_VERSION),1)
  270. JAVAC_MAJOR_VERSION := $(word 3,$(subst ., ,$(JAVAC_VERSION)))
  271. endif
  272. # Test whether the version we see meets our minimum
  273. MIN_JAVAC_MAJOR_VERSION := 8
  274. JAVAC_VERSION_GE_MIN := $(shell [ $(JAVAC_MAJOR_VERSION) -ge $(MIN_JAVAC_MAJOR_VERSION) ] > /dev/null 2>&1 && echo true)
  275. # Set the default JAVA_ARGS to "" for DEBUG_LEVEL=0
  276. JAVA_ARGS ?=
  277. JAVAC_ARGS ?=
  278. # Read plugin configuration
  279. PLUGIN_PATH = ../plugin
  280. ROCKSDB_PLUGIN_MKS = $(foreach plugin, $(ROCKSDB_PLUGINS), $(PLUGIN_PATH)/$(plugin)/*.mk)
  281. include $(ROCKSDB_PLUGIN_MKS)
  282. # Add paths to Java sources in plugins
  283. ROCKSDB_PLUGIN_JAVA_ROOTS = $(foreach plugin, $(ROCKSDB_PLUGINS), $(PLUGIN_PATH)/$(plugin)/java)
  284. PLUGIN_SOURCES = $(foreach root, $(ROCKSDB_PLUGIN_JAVA_ROOTS), $(foreach pkg, org/rocksdb/util org/rocksdb, $(root)/$(MAIN_SRC)/$(pkg)/*.java))
  285. CORE_SOURCES = $(foreach pkg, org/rocksdb/util org/rocksdb, $(MAIN_SRC)/$(pkg)/*.java)
  286. SOURCES = $(wildcard $(CORE_SOURCES) $(PLUGIN_SOURCES))
  287. PLUGIN_TEST_SOURCES = $(foreach root, $(ROCKSDB_PLUGIN_JAVA_ROOTS), $(foreach pkg, org/rocksdb/test org/rocksdb/util org/rocksdb, $(root)/$(TEST_SRC)/$(pkg)/*.java))
  288. CORE_TEST_SOURCES = $(foreach pkg, org/rocksdb/test org/rocksdb/util org/rocksdb, $(TEST_SRC)/$(pkg)/*.java)
  289. TEST_SOURCES = $(wildcard $(CORE_TEST_SOURCES) $(PLUGIN_TEST_SOURCES))
  290. # Configure the plugin tests and java classes
  291. ROCKSDB_PLUGIN_NATIVE_JAVA_CLASSES = $(foreach plugin, $(ROCKSDB_PLUGINS), $(foreach class, $($(plugin)_NATIVE_JAVA_CLASSES), $(class)))
  292. NATIVE_JAVA_CLASSES = $(NATIVE_JAVA_CLASSES) $(ROCKSDB_PLUGIN_NATIVE_JAVA_CLASSES)
  293. ROCKSDB_PLUGIN_JAVA_TESTS = $(foreach plugin, $(ROCKSDB_PLUGINS), $(foreach testclass, $($(plugin)_JAVA_TESTS), $(testclass)))
  294. ALL_JAVA_TESTS = $(JAVA_TESTS) $(ROCKSDB_PLUGIN_JAVA_TESTS)
  295. # When debugging add -Xcheck:jni to the java args
  296. ifneq ($(DEBUG_LEVEL),0)
  297. JAVA_ARGS += -ea -Xcheck:jni
  298. JAVAC_ARGS += -Xlint:deprecation -Xlint:unchecked
  299. endif
  300. # Using a Facebook AWS account for S3 storage. (maven.org has a history
  301. # of failing in Travis builds.)
  302. DEPS_URL?=https://rocksdb-deps.s3-us-west-2.amazonaws.com/jars
  303. java-version:
  304. ifneq ($(JAVAC_VERSION_GE_MIN),true)
  305. echo 'Java version is $(JAVAC_VERSION), minimum required version is $(MIN_JAVAC_MAJOR_VERSION)'
  306. exit 1
  307. endif
  308. clean: clean-not-downloaded clean-downloaded
  309. clean-not-downloaded:
  310. $(AM_V_at)rm -rf $(NATIVE_INCLUDE)
  311. $(AM_V_at)rm -rf $(OUTPUT)
  312. $(AM_V_at)rm -rf $(BENCHMARK_OUTPUT)
  313. $(AM_V_at)rm -rf $(SAMPLES_OUTPUT)
  314. clean-downloaded:
  315. $(AM_V_at)rm -rf $(JAVA_TEST_LIBDIR)
  316. javadocs: java
  317. $(AM_V_GEN)mkdir -p $(JAVADOC)
  318. $(AM_V_at)$(JAVADOC_CMD) -d $(JAVADOC) -sourcepath $(MAIN_SRC) -subpackages org
  319. javalib: java java_test javadocs
  320. java: java-version
  321. $(AM_V_GEN)mkdir -p $(MAIN_CLASSES)
  322. $(AM_V_at) $(JAVAC_CMD) $(JAVAC_ARGS) -h $(NATIVE_INCLUDE) -d $(MAIN_CLASSES) $(SOURCES)
  323. $(AM_V_at)@cp ../HISTORY.md ./HISTORY-CPP.md
  324. $(AM_V_at)@rm -f ./HISTORY-CPP.md
  325. sample: java
  326. $(AM_V_GEN)mkdir -p $(SAMPLES_MAIN_CLASSES)
  327. $(AM_V_at)$(JAVAC_CMD) $(JAVAC_ARGS) -cp $(MAIN_CLASSES) -d $(SAMPLES_MAIN_CLASSES) $(SAMPLES_MAIN_SRC)/RocksDBSample.java
  328. $(AM_V_at)@rm -rf /tmp/rocksdbjni
  329. $(AM_V_at)@rm -rf /tmp/rocksdbjni_not_found
  330. $(JAVA_CMD) $(JAVA_ARGS) -Djava.library.path=target -cp $(MAIN_CLASSES):$(SAMPLES_MAIN_CLASSES) RocksDBSample /tmp/rocksdbjni
  331. $(AM_V_at)@rm -rf /tmp/rocksdbjni
  332. $(AM_V_at)@rm -rf /tmp/rocksdbjni_not_found
  333. column_family_sample: java
  334. $(AM_V_GEN)mkdir -p $(SAMPLES_MAIN_CLASSES)
  335. $(AM_V_at)$(JAVAC_CMD) $(JAVAC_ARGS) -cp $(MAIN_CLASSES) -d $(SAMPLES_MAIN_CLASSES) $(SAMPLES_MAIN_SRC)/RocksDBColumnFamilySample.java
  336. $(AM_V_at)@rm -rf /tmp/rocksdbjni
  337. $(JAVA_CMD) $(JAVA_ARGS) -Djava.library.path=target -cp $(MAIN_CLASSES):$(SAMPLES_MAIN_CLASSES) RocksDBColumnFamilySample /tmp/rocksdbjni
  338. $(AM_V_at)@rm -rf /tmp/rocksdbjni
  339. transaction_sample: java
  340. $(AM_V_GEN)mkdir -p $(SAMPLES_MAIN_CLASSES)
  341. $(AM_V_at)$(JAVAC_CMD) -cp $(MAIN_CLASSES) -d $(SAMPLES_MAIN_CLASSES) $(SAMPLES_MAIN_SRC)/TransactionSample.java
  342. $(AM_V_at)@rm -rf /tmp/rocksdbjni
  343. $(JAVA_CMD) -ea -Xcheck:jni -Djava.library.path=target -cp $(MAIN_CLASSES):$(SAMPLES_MAIN_CLASSES) TransactionSample /tmp/rocksdbjni
  344. $(AM_V_at)@rm -rf /tmp/rocksdbjni
  345. optimistic_transaction_sample: java
  346. $(AM_V_GEN)mkdir -p $(SAMPLES_MAIN_CLASSES)
  347. $(AM_V_at)$(JAVAC_CMD) -cp $(MAIN_CLASSES) -d $(SAMPLES_MAIN_CLASSES) $(SAMPLES_MAIN_SRC)/OptimisticTransactionSample.java
  348. $(AM_V_at)@rm -rf /tmp/rocksdbjni
  349. $(JAVA_CMD) -ea -Xcheck:jni -Djava.library.path=target -cp $(MAIN_CLASSES):$(SAMPLES_MAIN_CLASSES) OptimisticTransactionSample /tmp/rocksdbjni
  350. $(AM_V_at)@rm -rf /tmp/rocksdbjni
  351. $(JAVA_TEST_LIBDIR):
  352. mkdir -p "$(JAVA_TEST_LIBDIR)"
  353. $(JAVA_JUNIT_JAR_PATH): $(JAVA_TEST_LIBDIR)
  354. ifneq (,$(wildcard $(MVN_LOCAL)/junit/junit/$(JAVA_JUNIT_VER)/$(JAVA_JUNIT_JAR)))
  355. cp -v $(MVN_LOCAL)/junit/junit/$(JAVA_JUNIT_VER)/$(JAVA_JUNIT_JAR) $(JAVA_TEST_LIBDIR)
  356. else
  357. curl --fail --insecure --output $(JAVA_JUNIT_JAR_PATH) --location $(DEPS_URL)/$(JAVA_JUNIT_JAR)
  358. JAVA_JUNIT_SHA256_ACTUAL=`$(SHA256_CMD) $(JAVA_JUNIT_JAR_PATH) | cut -d ' ' -f 1`; \
  359. if [ "$(JAVA_JUNIT_SHA256)" != "$$JAVA_JUNIT_SHA256_ACTUAL" ]; then \
  360. echo $(JAVA_JUNIT_JAR_PATH) checksum mismatch, expected=\"$(JAVA_JUNIT_SHA256)\" actual=\"$$JAVA_JUNIT_SHA256_ACTUAL\"; \
  361. exit 1; \
  362. fi
  363. endif
  364. $(JAVA_HAMCREST_JAR_PATH): $(JAVA_TEST_LIBDIR)
  365. ifneq (,$(wildcard $(MVN_LOCAL)/org/hamcrest/hamcrest/$(JAVA_HAMCREST_VER)/$(JAVA_HAMCREST_JAR)))
  366. cp -v $(MVN_LOCAL)/org/hamcrest/hamcrest/$(JAVA_HAMCREST_VER)/$(JAVA_HAMCREST_JAR) $(JAVA_TEST_LIBDIR)
  367. else
  368. curl --fail --insecure --output $(JAVA_HAMCREST_JAR_PATH) --location $(DEPS_URL)/$(JAVA_HAMCREST_JAR)
  369. JAVA_HAMCREST_SHA256_ACTUAL=`$(SHA256_CMD) $(JAVA_HAMCREST_JAR_PATH) | cut -d ' ' -f 1`; \
  370. if [ "$(JAVA_HAMCREST_SHA256)" != "$$JAVA_HAMCREST_SHA256_ACTUAL" ]; then \
  371. echo $(JAVA_HAMCREST_JAR_PATH) checksum mismatch, expected=\"$(JAVA_HAMCREST_SHA256)\" actual=\"$$JAVA_HAMCREST_SHA256_ACTUAL\"; \
  372. exit 1; \
  373. fi
  374. endif
  375. $(JAVA_MOCKITO_JAR_PATH): $(JAVA_TEST_LIBDIR)
  376. ifneq (,$(wildcard $(MVN_LOCAL)/org/mockito/mockito-all/$(JAVA_MOCKITO_VER)/$(JAVA_MOCKITO_JAR)))
  377. cp -v $(MVN_LOCAL)/org/mockito/mockito-all/$(JAVA_MOCKITO_VER)/$(JAVA_MOCKITO_JAR) $(JAVA_TEST_LIBDIR)
  378. else
  379. curl --fail --insecure --output "$(JAVA_MOCKITO_JAR_PATH)" --location $(DEPS_URL)/$(JAVA_MOCKITO_JAR)
  380. JAVA_MOCKITO_SHA256_ACTUAL=`$(SHA256_CMD) $(JAVA_MOCKITO_JAR_PATH) | cut -d ' ' -f 1`; \
  381. if [ "$(JAVA_MOCKITO_SHA256)" != "$$JAVA_MOCKITO_SHA256_ACTUAL" ]; then \
  382. echo $(JAVA_MOCKITO_JAR_PATH) checksum mismatch, expected=\"$(JAVA_MOCKITO_SHA256)\" actual=\"$$JAVA_MOCKITO_SHA256_ACTUAL\"; \
  383. exit 1; \
  384. fi
  385. endif
  386. $(JAVA_CGLIB_JAR_PATH): $(JAVA_TEST_LIBDIR)
  387. ifneq (,$(wildcard $(MVN_LOCAL)/cglib/cglib/$(JAVA_CGLIB_VER)/$(JAVA_CGLIB_JAR)))
  388. cp -v $(MVN_LOCAL)/cglib/cglib/$(JAVA_CGLIB_VER)/$(JAVA_CGLIB_JAR) $(JAVA_TEST_LIBDIR)
  389. else
  390. curl --fail --insecure --output "$(JAVA_CGLIB_JAR_PATH)" --location $(DEPS_URL)/$(JAVA_CGLIB_JAR)
  391. JAVA_CGLIB_SHA256_ACTUAL=`$(SHA256_CMD) $(JAVA_CGLIB_JAR_PATH) | cut -d ' ' -f 1`; \
  392. if [ "$(JAVA_CGLIB_SHA256)" != "$$JAVA_CGLIB_SHA256_ACTUAL" ]; then \
  393. echo $(JAVA_CGLIB_JAR_PATH) checksum mismatch, expected=\"$(JAVA_CGLIB_SHA256)\" actual=\"$$JAVA_CGLIB_SHA256_ACTUAL\"; \
  394. exit 1; \
  395. fi
  396. endif
  397. $(JAVA_ASSERTJ_JAR_PATH): $(JAVA_TEST_LIBDIR)
  398. ifneq (,$(wildcard $(MVN_LOCAL)/org/assertj/assertj-core/$(JAVA_ASSERTJ_VER)/$(JAVA_ASSERTJ_JAR)))
  399. cp -v $(MVN_LOCAL)/org/assertj/assertj-core/$(JAVA_ASSERTJ_VER)/$(JAVA_ASSERTJ_JAR) $(JAVA_TEST_LIBDIR)
  400. else
  401. curl --fail --insecure --output "$(JAVA_ASSERTJ_JAR_PATH)" --location $(DEPS_URL)/$(JAVA_ASSERTJ_JAR)
  402. JAVA_ASSERTJ_SHA256_ACTUAL=`$(SHA256_CMD) $(JAVA_ASSERTJ_JAR_PATH) | cut -d ' ' -f 1`; \
  403. if [ "$(JAVA_ASSERTJ_SHA256)" != "$$JAVA_ASSERTJ_SHA256_ACTUAL" ]; then \
  404. echo $(JAVA_ASSERTJ_JAR_PATH) checksum mismatch, expected=\"$(JAVA_ASSERTJ_SHA256)\" actual=\"$$JAVA_ASSERTJ_SHA256_ACTUAL\"; \
  405. exit 1; \
  406. fi
  407. endif
  408. resolve_test_deps: $(JAVA_JUNIT_JAR_PATH) $(JAVA_HAMCREST_JAR_PATH) $(JAVA_MOCKITO_JAR_PATH) $(JAVA_CGLIB_JAR_PATH) $(JAVA_ASSERTJ_JAR_PATH)
  409. java_test: java resolve_test_deps
  410. $(AM_V_GEN)mkdir -p $(TEST_CLASSES)
  411. $(AM_V_at) $(JAVAC_CMD) $(JAVAC_ARGS) -cp $(MAIN_CLASSES):$(JAVA_TESTCLASSPATH) -h $(NATIVE_INCLUDE) -d $(TEST_CLASSES)\
  412. $(TEST_SOURCES)
  413. test: java java_test
  414. $(MAKE) run_test
  415. run_test:
  416. $(JAVA_CMD) $(JAVA_ARGS) -Djava.library.path=target -cp "$(MAIN_CLASSES):$(TEST_CLASSES):$(JAVA_TESTCLASSPATH):target/*" org.rocksdb.test.RocksJunitRunner $(ALL_JAVA_TESTS)
  417. $(JAVA_CMD) $(JAVA_ARGS) -Djava.library.path=target -cp "$(MAIN_CLASSES):$(TEST_CLASSES):$(JAVA_TESTCLASSPATH):target/*" org.rocksdb.test.RocksJunitRunner org.rocksdb.StatisticsTest
  418. run_plugin_test:
  419. $(JAVA_CMD) $(JAVA_ARGS) -Djava.library.path=target -cp "$(MAIN_CLASSES):$(TEST_CLASSES):$(JAVA_TESTCLASSPATH):target/*" org.rocksdb.test.RocksJunitRunner $(ROCKSDB_PLUGIN_JAVA_TESTS)
  420. db_bench: java
  421. $(AM_V_GEN)mkdir -p $(BENCHMARK_MAIN_CLASSES)
  422. $(AM_V_at)$(JAVAC_CMD) $(JAVAC_ARGS) -cp $(MAIN_CLASSES) -d $(BENCHMARK_MAIN_CLASSES) $(BENCHMARK_MAIN_SRC)/org/rocksdb/benchmark/*.java
  423. pmd:
  424. $(MAVEN_CMD) pmd:pmd pmd:cpd pmd:check