public static InlineExpressionParser newInstance(final String inlineExpression) {
        Properties props = new Properties();
        if (null == inlineExpression) {
            return TypedSPILoader.getService(InlineExpressionParser.class, DEFAULT_TYPE_NAME, props);
        }
        if (!inlineExpression.startsWith(TYPE_NAME_BEGIN_SYMBOL)) {
            props.setProperty(InlineExpressionParser.INLINE_EXPRESSION_KEY, inlineExpression);
            return TypedSPILoader.getService(InlineExpressionParser.class, DEFAULT_TYPE_NAME, props);
        }
        Integer typeBeginIndex = inlineExpression.indexOf(TYPE_NAME_BEGIN_SYMBOL);
        Integer typeEndIndex = inlineExpression.indexOf(TYPE_NAME_END_SYMBOL);
        props.setProperty(InlineExpressionParser.INLINE_EXPRESSION_KEY, getExprWithoutTypeName(inlineExpression, typeBeginIndex, typeEndIndex));
        return TypedSPILoader.getService(InlineExpressionParser.class, getTypeName(inlineExpression, typeBeginIndex, typeEndIndex), props);
    }
@Test
    void assertFixtureInstance() {
        assertThat(InlineExpressionParserFactory.newInstance("<CUSTOM.FIXTURE>spring").handlePlaceHolder(), is("spring"));
        assertThat(InlineExpressionParserFactory.newInstance("<CUSTOM.FIXTURE>spring").splitAndEvaluate(),
                is(Arrays.asList("t_order_2023_03", "t_order_2023_04", "t_order_2023_05")));
        assertThat(InlineExpressionParserFactory.newInstance("<CUSTOM.FIXTURE>summer").splitAndEvaluate(),
                is(Arrays.asList("t_order_2023_06", "t_order_2023_07", "t_order_2023_08")));
        assertThat(InlineExpressionParserFactory.newInstance("<CUSTOM.FIXTURE>autumn").splitAndEvaluate(),
                is(Arrays.asList("t_order_2023_09", "t_order_2023_10", "t_order_2023_11")));
        assertThat(InlineExpressionParserFactory.newInstance("<CUSTOM.FIXTURE>winter").splitAndEvaluate(),
                is(Arrays.asList("t_order_2023_12", "t_order_2024_01", "t_order_2024_02")));
        assertThat(InlineExpressionParserFactory.newInstance("<CUSTOM.FIXTURE>").splitAndEvaluate(),
                is(Arrays.asList("t_order_2023_03", "t_order_2023_04", "t_order_2023_05",
                        "t_order_2023_06", "t_order_2023_07", "t_order_2023_08",
                        "t_order_2023_09", "t_order_2023_10", "t_order_2023_11",
                        "t_order_2023_12", "t_order_2024_01", "t_order_2024_02")));
    }