[ 
https://issues.apache.org/jira/browse/FLINK-20936?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Flink Jira Bot updated FLINK-20936:
-----------------------------------
      Labels: auto-deprioritized-major auto-deprioritized-minor  (was: 
auto-deprioritized-major stale-minor)
    Priority: Not a Priority  (was: Minor)

This issue was labeled "stale-minor" 7 days ago and has not received any 
updates so it is being deprioritized. If this ticket is actually Minor, please 
raise the priority and ask a committer to assign you the issue or revive the 
public discussion.


>  Improvements in custom partition extractor
> -------------------------------------------
>
>                 Key: FLINK-20936
>                 URL: https://issues.apache.org/jira/browse/FLINK-20936
>             Project: Flink
>          Issue Type: Improvement
>          Components: Connectors / Hive
>    Affects Versions: 1.12.0
>         Environment: flink 1.12.0
> jdk 1.8
>            Reporter: zhoukui
>            Priority: Not a Priority
>              Labels: auto-deprioritized-major, auto-deprioritized-minor
>
> In flink1.12.0, I saw PartitionTimeExtractor is a constructor without 
> parameters, why not take the parameter “extractorPattern". See the source 
> code below:
> {code:java}
> @Experimental
>  public interface PartitionTimeExtractor extends Serializable {
> String DEFAULT = "default";
>  String CUSTOM = "custom";
> /**
>  * Extract time from partition keys and values.
>  */
>  LocalDateTime extract(List<String> partitionKeys, List<String> 
> partitionValues);
> static PartitionTimeExtractor create(
>  ClassLoader userClassLoader,
>  String extractorKind,
>  String extractorClass,
>  String extractorPattern) {
>  switch (extractorKind) {
>  case DEFAULT:
>  return new DefaultPartTimeExtractor(extractorPattern);
>  case CUSTOM:
>  try
> { Class<?> aClass = userClassLoader.loadClass(extractorClass); return 
> (PartitionTimeExtractor) aClass.newInstance(); }
> catch (ClassNotFoundException | IllegalAccessException | 
> InstantiationException e)
> { throw new RuntimeException( "Can not new instance for custom class from " + 
> extractorClass, e); }
> default:
>  throw new UnsupportedOperationException(
>  "Unsupported extractor kind: " + extractorKind);
>  }
>  }
>  }
> {code}
>   Would it be more reasonable to bring a parameter construction method? as 
> follows:
> try
> { Class<?> aClass = userClassLoader.loadClass(extractorClass); Constructor<?> 
> declaredConstructor = aClass.getDeclaredConstructor(String.class);
> return (PartitionTimeExtractor) 
> declaredConstructor.newInstance(extractorPattern); }
> catch (ClassNotFoundException | IllegalAccessException | 
> InstantiationException | NoSuchMethodException | InvocationTargetException e)
> { throw new RuntimeException( "Can not new instance for custom class from " + 
> extractorClass, e); }



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to