001package ball.spring.mysqld;
002/*-
003 * ##########################################################################
004 * Reusable Spring Components
005 * $Id: EntityManagerFactoryComponent.html 5431 2020-02-12 19:03:17Z ball $
006 * $HeadURL: svn+ssh://localhost/Users/ball/.repository/hcf-dev/blog/2019-10-19-spring-embedded-mysqld/src/main/resources/javadoc/src-html/ball/spring/mysqld/EntityManagerFactoryComponent.html $
007 * %%
008 * Copyright (C) 2018 - 2020 Allen D. Ball
009 * %%
010 * Licensed under the Apache License, Version 2.0 (the "License");
011 * you may not use this file except in compliance with the License.
012 * You may obtain a copy of the License at
013 *
014 *      http://www.apache.org/licenses/LICENSE-2.0
015 *
016 * Unless required by applicable law or agreed to in writing, software
017 * distributed under the License is distributed on an "AS IS" BASIS,
018 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
019 * See the License for the specific language governing permissions and
020 * limitations under the License.
021 * ##########################################################################
022 */
023import lombok.ToString;
024import lombok.extern.log4j.Log4j2;
025import org.springframework.beans.factory.annotation.Autowired;
026import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
027import org.springframework.boot.autoconfigure.data.jpa.EntityManagerFactoryDependsOnPostProcessor;
028import org.springframework.stereotype.Component;
029
030import static org.apache.commons.lang3.StringUtils.EMPTY;
031
032/**
033 * {@link EntityManagerFactoryDependsOnPostProcessor} {@link Component}
034 * implementation.  See
035 * {@link.uri https://docs.spring.io/spring-boot/docs/current/reference/html/howto-data-access.html#howto-configure-a-component-that-is-used-by-JPA target=newtab Configure a Component that is Used by JPA}.
036 *
037 * {@injected.fields}
038 *
039 * @author {@link.uri mailto:ball@hcf.dev Allen D. Ball}
040 * @version $Revision: 5431 $
041 */
042@Component
043@ConditionalOnProperty(name = "mysqld.home", havingValue = EMPTY)
044@ToString @Log4j2
045public class EntityManagerFactoryComponent
046             extends EntityManagerFactoryDependsOnPostProcessor {
047    @Autowired private Process mysqld;
048
049    /**
050     * Sole constructor.
051     */
052    public EntityManagerFactoryComponent() { super("mysqld"); }
053}