diff options
author | Igor Murashkin <iam@google.com> | 2016-03-16 13:49:37 -0700 |
---|---|---|
committer | Igor Murashkin <iam@google.com> | 2016-03-21 14:54:38 -0700 |
commit | 5321f6ff3251784760f79982b1a720e3607c5003 (patch) | |
tree | f1aa3cbaef213c6d2693df6d0ae4d449cc3e6815 | |
parent | 62ca94818e9ed1bbd1fbac77eaa7376b054abe8c (diff) | |
download | platform_external_jcommander-5321f6ff3251784760f79982b1a720e3607c5003.tar.gz platform_external_jcommander-5321f6ff3251784760f79982b1a720e3607c5003.tar.bz2 platform_external_jcommander-5321f6ff3251784760f79982b1a720e3607c5003.zip |
build: Add support for building jcommander within the AOSP (host only).
Bug: 27552463
Change-Id: I71b4f3b26b9307b36444cecc75d67de03be9cb23
-rw-r--r-- | Android.mk | 42 | ||||
-rw-r--r-- | src/main/java/com/beust/jcommander/internal/DefaultConverterFactory.java | 10 |
2 files changed, 49 insertions, 3 deletions
diff --git a/Android.mk b/Android.mk new file mode 100644 index 0000000..76f2f8b --- /dev/null +++ b/Android.mk @@ -0,0 +1,42 @@ +# Copyright (C) 2016 The Android Open Source Project +# +# Licensed 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. +# + +# +# Build support for jcommander within the Android Open Source Project +# See https://source.android.com/source/building.html for more information +# + +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +# Host JAR builds have every single file because all the standard APIs are available. +jcommander_all_src_files := $(call all-java-files-under, src/main) +# Filter out PathConverter since android is missing java.nio.file APIs. +jcommander_android_src_files := $(filter-out %/PathConverter.java,$(jcommander_all_src_files)) + +include $(CLEAR_VARS) +LOCAL_SRC_FILES := $(jcommander_all_src_files) +LOCAL_MODULE := jcommander-host +LOCAL_MODULE_TAGS := optional +include $(BUILD_HOST_JAVA_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_SRC_FILES := $(jcommander_android_src_files) +LOCAL_MODULE := jcommander-hostdex +LOCAL_MODULE_TAGS := optional +include $(BUILD_HOST_DALVIK_JAVA_LIBRARY) + +# TODO: also add the tests once we have testng working. diff --git a/src/main/java/com/beust/jcommander/internal/DefaultConverterFactory.java b/src/main/java/com/beust/jcommander/internal/DefaultConverterFactory.java index 2b8a10c..7eb5ae5 100644 --- a/src/main/java/com/beust/jcommander/internal/DefaultConverterFactory.java +++ b/src/main/java/com/beust/jcommander/internal/DefaultConverterFactory.java @@ -29,7 +29,6 @@ import com.beust.jcommander.converters.ISO8601DateConverter; import com.beust.jcommander.converters.IntegerConverter; import com.beust.jcommander.converters.LongConverter; import com.beust.jcommander.converters.StringConverter; -import com.beust.jcommander.converters.PathConverter; import com.beust.jcommander.converters.URIConverter; import com.beust.jcommander.converters.URLConverter; @@ -38,7 +37,6 @@ import java.math.BigDecimal; import java.util.Date; import java.net.URI; import java.net.URL; -import java.nio.file.Path; import java.util.Map; public class DefaultConverterFactory implements IStringConverterFactory { @@ -63,7 +61,13 @@ public class DefaultConverterFactory implements IStringConverterFactory { m_classConverters.put(File.class, FileConverter.class); m_classConverters.put(BigDecimal.class, BigDecimalConverter.class); m_classConverters.put(Date.class, ISO8601DateConverter.class); - m_classConverters.put(Path.class, PathConverter.class); + try { + Class<?> pathClass = Class.forName("java.nio.file.Path"); + Class<?> pathConverterClass = Class.forName("com.beust.jcommander.converters.PathConverter"); + m_classConverters.put(pathClass, (Class<? extends IStringConverter<?>>)pathConverterClass); + } catch (ClassNotFoundException e) { + // Do nothing: Android does not have java.nio.file.Path + } m_classConverters.put(URI.class, URIConverter.class); m_classConverters.put(URL.class, URLConverter.class); } |