[
https://issues.apache.org/jira/browse/HADOOP-17106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17149507#comment-17149507
]
Ahmed Hussein commented on HADOOP-17106:
----------------------------------------
{quote}So, If take that as reference I would prefer {{StringUtils.join}}
slightly more.{quote}
So, are we okay with extending code reliance on Apache commons jars? Or we want
to minimize any dependency on external jars? WDYT? are we going to face similar
problems as we do with Guava?
{quote}Regarding the second one, I am not sure but will StringJoiner help, have
a StringJoiner sj = new StringJoiner("-"); Then convert to stream() and then
forEach(sj::add), May be if you share me the context where exactly it is, I
might come up with some more Alternatives or at least give a try.{quote}
Let me list couple of examples here:
*
[DFSUtil#L386|https://github.com/apache/hadoop/blob/696a663cd0a1deb818f6b44ddc8ca20571bac980/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DFSClient.java#L386]
* I think we are going to write some wrappers to replace some of the
Guava.Joiner interface (I opened HADOOP-17108 for that purpose).
*#
[StorageStatistics#L64|https://github.com/apache/hadoop/blob/696a663cd0a1deb818f6b44ddc8ca20571bac980/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/StorageStatisticsTracker.java#L64]
*#
[QuorumCall#L186|https://github.com/apache/hadoop/blob/696a663cd0a1deb818f6b44ddc8ca20571bac980/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/client/QuorumCall.java#L186]
Feel free to take over the jira if you like to.
> Replace Guava Joiner with Java8 String Join
> -------------------------------------------
>
> Key: HADOOP-17106
> URL: https://issues.apache.org/jira/browse/HADOOP-17106
> Project: Hadoop Common
> Issue Type: Sub-task
> Reporter: Ahmed Hussein
> Assignee: Ahmed Hussein
> Priority: Major
> Attachments: HADOOP-17106.001.patch
>
>
> Replace \{{com.google.common.base.Joiner}} with String.join.
>
> {code:java}
> Targets
> Occurrences of 'com.google.common.base.Joiner' in project with mask
> '*.java'
> Found Occurrences (103 usages found)
> org.apache.hadoop.crypto.key.kms.server (1 usage found)
> SimpleKMSAuditLogger.java (1 usage found)
> 26 import com.google.common.base.Joiner;
> org.apache.hadoop.fs (1 usage found)
> TestPath.java (1 usage found)
> 37 import com.google.common.base.Joiner;
> org.apache.hadoop.fs.s3a (1 usage found)
> StorageStatisticsTracker.java (1 usage found)
> 25 import com.google.common.base.Joiner;
> org.apache.hadoop.ha (1 usage found)
> TestHAAdmin.java (1 usage found)
> 34 import com.google.common.base.Joiner;
> org.apache.hadoop.hdfs (8 usages found)
> DFSClient.java (1 usage found)
> 196 import com.google.common.base.Joiner;
> DFSTestUtil.java (1 usage found)
> 76 import com.google.common.base.Joiner;
> DFSUtil.java (1 usage found)
> 108 import com.google.common.base.Joiner;
> DFSUtilClient.java (1 usage found)
> 20 import com.google.common.base.Joiner;
> HAUtil.java (1 usage found)
> 59 import com.google.common.base.Joiner;
> MiniDFSCluster.java (1 usage found)
> 145 import com.google.common.base.Joiner;
> StripedFileTestUtil.java (1 usage found)
> 20 import com.google.common.base.Joiner;
> TestDFSUpgrade.java (1 usage found)
> 53 import com.google.common.base.Joiner;
> org.apache.hadoop.hdfs.protocol (1 usage found)
> LayoutFlags.java (1 usage found)
> 26 import com.google.common.base.Joiner;
> org.apache.hadoop.hdfs.protocolPB (1 usage found)
> TestPBHelper.java (1 usage found)
> 118 import com.google.common.base.Joiner;
> org.apache.hadoop.hdfs.qjournal (1 usage found)
> MiniJournalCluster.java (1 usage found)
> 43 import com.google.common.base.Joiner;
> org.apache.hadoop.hdfs.qjournal.client (5 usages found)
> AsyncLoggerSet.java (1 usage found)
> 38 import com.google.common.base.Joiner;
> QuorumCall.java (1 usage found)
> 32 import com.google.common.base.Joiner;
> QuorumException.java (1 usage found)
> 25 import com.google.common.base.Joiner;
> QuorumJournalManager.java (1 usage found)
> 62 import com.google.common.base.Joiner;
> TestQuorumCall.java (1 usage found)
> 29 import com.google.common.base.Joiner;
> org.apache.hadoop.hdfs.server.blockmanagement (4 usages found)
> HostSet.java (1 usage found)
> 21 import com.google.common.base.Joiner;
> TestBlockManager.java (1 usage found)
> 20 import com.google.common.base.Joiner;
> TestBlockReportRateLimiting.java (1 usage found)
> 24 import com.google.common.base.Joiner;
> TestPendingDataNodeMessages.java (1 usage found)
> 41 import com.google.common.base.Joiner;
> org.apache.hadoop.hdfs.server.common (1 usage found)
> StorageInfo.java (1 usage found)
> 37 import com.google.common.base.Joiner;
> org.apache.hadoop.hdfs.server.datanode (7 usages found)
> BlockPoolManager.java (1 usage found)
> 32 import com.google.common.base.Joiner;
> BlockRecoveryWorker.java (1 usage found)
> 21 import com.google.common.base.Joiner;
> BPServiceActor.java (1 usage found)
> 75 import com.google.common.base.Joiner;
> DataNode.java (1 usage found)
> 226 import com.google.common.base.Joiner;
> ShortCircuitRegistry.java (1 usage found)
> 49 import com.google.common.base.Joiner;
> TestDataNodeHotSwapVolumes.java (1 usage found)
> 21 import com.google.common.base.Joiner;
> TestRefreshNamenodes.java (1 usage found)
> 35 import com.google.common.base.Joiner;
> org.apache.hadoop.hdfs.server.datanode.fsdataset.impl (1 usage found)
> FsVolumeImpl.java (1 usage found)
> 90 import com.google.common.base.Joiner;
> org.apache.hadoop.hdfs.server.namenode (13 usages found)
> FileJournalManager.java (1 usage found)
> 49 import com.google.common.base.Joiner;
> FSDirectory.java (1 usage found)
> 24 import com.google.common.base.Joiner;
> FSEditLogLoader.java (1 usage found)
> 120 import com.google.common.base.Joiner;
> FSEditLogOp.java (1 usage found)
> 141 import com.google.common.base.Joiner;
> FSImage.java (1 usage found)
> 78 import com.google.common.base.Joiner;
> FSImageTestUtil.java (1 usage found)
> 66 import com.google.common.base.Joiner;
> NameNode.java (1 usage found)
> 21 import com.google.common.base.Joiner;
> TestAuditLogAtDebug.java (1 usage found)
> 21 import com.google.common.base.Joiner;
> TestCheckpoint.java (1 usage found)
> 97 import com.google.common.base.Joiner;
> TestFileJournalManager.java (1 usage found)
> 52 import com.google.common.base.Joiner;
> TestNNStorageRetentionFunctional.java (1 usage found)
> 39 import com.google.common.base.Joiner;
> TestNNStorageRetentionManager.java (1 usage found)
> 53 import com.google.common.base.Joiner;
> TestProtectedDirectories.java (1 usage found)
> 21 import com.google.common.base.Joiner;
> org.apache.hadoop.hdfs.server.namenode.ha (9 usages found)
> BootstrapStandby.java (1 usage found)
> 73 import com.google.common.base.Joiner;
> HATestUtil.java (1 usage found)
> 41 import com.google.common.base.Joiner;
> TestDelegationTokensWithHA.java (1 usage found)
> 20 import com.google.common.base.Joiner;
> TestDFSUpgradeWithHA.java (1 usage found)
> 56 import com.google.common.base.Joiner;
> TestEditLogsDuringFailover.java (1 usage found)
> 47 import com.google.common.base.Joiner;
> TestFailureOfSharedDir.java (1 usage found)
> 48 import com.google.common.base.Joiner;
> TestHAConfiguration.java (1 usage found)
> 34 import com.google.common.base.Joiner;
> TestObserverReadProxyProvider.java (1 usage found)
> 20 import com.google.common.base.Joiner;
> TestStandbyInProgressTail.java (1 usage found)
> 51 import com.google.common.base.Joiner;
> org.apache.hadoop.hdfs.server.protocol (3 usages found)
> BlockECReconstructionCommand.java (1 usage found)
> 20 import com.google.common.base.Joiner;
> BlockRecoveryCommand.java (1 usage found)
> 31 import com.google.common.base.Joiner;
> RemoteEditLogManifest.java (1 usage found)
> 23 import com.google.common.base.Joiner;
> org.apache.hadoop.hdfs.tools (5 usages found)
> CacheAdmin.java (1 usage found)
> 47 import com.google.common.base.Joiner;
> DFSAdmin.java (1 usage found)
> 41 import com.google.common.base.Joiner;
> TestDFSHAAdmin.java (1 usage found)
> 52 import com.google.common.base.Joiner;
> TestDFSHAAdminMiniCluster.java (1 usage found)
> 47 import com.google.common.base.Joiner;
> TestGetConf.java (1 usage found)
> 61 import com.google.common.base.Joiner;
> org.apache.hadoop.hdfs.util (1 usage found)
> TestAtomicFileOutputStream.java (1 usage found)
> 41 import com.google.common.base.Joiner;
> org.apache.hadoop.io.compress (1 usage found)
> CompressDecompressTester.java (1 usage found)
> 42 import com.google.common.base.Joiner;
> org.apache.hadoop.ipc (3 usages found)
> ProxyCombiner.java (1 usage found)
> 20 import com.google.common.base.Joiner;
> RefreshRegistry.java (1 usage found)
> 23 import com.google.common.base.Joiner;
> RPCCallBenchmark.java (1 usage found)
> 20 import com.google.common.base.Joiner;
> org.apache.hadoop.mapreduce.counters (1 usage found)
> FileSystemCounterGroup.java (1 usage found)
> 30 import com.google.common.base.Joiner;
> org.apache.hadoop.mapreduce.jobhistory (1 usage found)
> JobUnsuccessfulCompletionEvent.java (1 usage found)
> 32 import com.google.common.base.Joiner;
> org.apache.hadoop.mapreduce.v2.app.webapp (1 usage found)
> AppController.java (1 usage found)
> 44 import com.google.common.base.Joiner;
> org.apache.hadoop.mapreduce.v2.util (1 usage found)
> MRWebAppUtil.java (1 usage found)
> 20 import com.google.common.base.Joiner;
> org.apache.hadoop.metrics2.impl (1 usage found)
> MetricsConfig.java (1 usage found)
> 32 import com.google.common.base.Joiner;
> org.apache.hadoop.metrics2.lib (1 usage found)
> UniqueNames.java (1 usage found)
> 23 import com.google.common.base.Joiner;
> org.apache.hadoop.metrics2.util (1 usage found)
> SampleQuantiles.java (1 usage found)
> 30 import com.google.common.base.Joiner;
> org.apache.hadoop.security (1 usage found)
> ShellBasedUnixGroupsMapping.java (1 usage found)
> 27 import com.google.common.base.Joiner;
> org.apache.hadoop.test (1 usage found)
> GenericTestUtils.java (1 usage found)
> 63 import com.google.common.base.Joiner;
> org.apache.hadoop.tools.dynamometer (3 usages found)
> ApplicationMaster.java (1 usage found)
> 20 import com.google.common.base.Joiner;
> Client.java (1 usage found)
> 21 import com.google.common.base.Joiner;
> DynoInfraUtils.java (1 usage found)
> 20 import com.google.common.base.Joiner;
> org.apache.hadoop.util (1 usage found)
> JvmPauseMonitor.java (1 usage found)
> 31 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.applications.distributedshell (1 usage found)
> Client.java (1 usage found)
> 36 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.client (1 usage found)
> ClientRMProxy.java (1 usage found)
> 44 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.client.api.impl (2 usages found)
> AMRMClientImpl.java (1 usage found)
> 83 import com.google.common.base.Joiner;
> TimelineConnector.java (1 usage found)
> 56 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.client.cli (1 usage found)
> TestNodeAttributesCLI.java (1 usage found)
> 64 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.server.nodemanager.amrmproxy (1 usage found)
> DefaultRequestInterceptor.java (1 usage found)
> 25 import com.google.common.base.Joiner;
>
> org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.resources
> (1 usage found)
> CGroupsHandlerImpl.java (1 usage found)
> 24 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.server.nodemanager.health (2 usages found)
> NodeHealthCheckerService.java (1 usage found)
> 22 import com.google.common.base.Joiner;
> TestNodeHealthCheckerService.java (1 usage found)
> 31 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.server.resourcemanager.recovery (1 usage found)
> TestZKRMStateStore.java (1 usage found)
> 74 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.conf (1
> usage found)
> MutableCSConfigurationProvider.java (1 usage found)
> 22 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.policies (1
> usage found)
> TestDominantResourceFairnessPolicy.java (1 usage found)
> 32 import org.apache.curator.shaded.com.google.common.base.Joiner;
> org.apache.hadoop.yarn.server.resourcemanager.webapp (1 usage found)
> TestRMWebServicesNodes.java (1 usage found)
> 100 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.server.resourcemanager.webapp.dao (1 usage found)
> AppInfo.java (1 usage found)
> 54 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.server.webapp (3 usages found)
> LogServlet.java (1 usage found)
> 22 import com.google.common.base.Joiner;
> LogWebService.java (1 usage found)
> 22 import com.google.common.base.Joiner;
> LogWebServiceUtils.java (1 usage found)
> 21 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.service.webapp (1 usage found)
> ApiServer.java (1 usage found)
> 20 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.util (1 usage found)
> StringHelper.java (1 usage found)
> 21 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.webapp.hamlet (1 usage found)
> HamletImpl.java (1 usage found)
> 21 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.webapp.hamlet2 (1 usage found)
> HamletImpl.java (1 usage found)
> 21 import com.google.common.base.Joiner;
> org.apache.hadoop.yarn.webapp.view (1 usage found)
> DefaultPage.java (1 usage found)
> 21 import com.google.common.base.Joiner;
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]