• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mybatis / migrations-maven-plugin / #705

17 Apr 2024 02:55PM CUT coverage: 22.137%. Remained the same
#705

Pull #315

github

web-flow
Update JamesIves/github-pages-deploy-action action to v4.6.0
Pull Request #315: Update JamesIves/github-pages-deploy-action action to v4.6.0

28 of 226 branches covered (12.39%)

116 of 524 relevant lines covered (22.14%)

0.22 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/java/org/mybatis/maven/mvnmigrate/CheckCommandMojo.java
1
/*
2
 *    Copyright 2010-2022 the original author or authors.
3
 *
4
 *    Licensed under the Apache License, Version 2.0 (the "License");
5
 *    you may not use this file except in compliance with the License.
6
 *    You may obtain a copy of the License at
7
 *
8
 *       https://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 *    Unless required by applicable law or agreed to in writing, software
11
 *    distributed under the License is distributed on an "AS IS" BASIS,
12
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 *    See the License for the specific language governing permissions and
14
 *    limitations under the License.
15
 */
16
package org.mybatis.maven.mvnmigrate;
17

18
import java.text.MessageFormat;
19
import java.util.List;
20

21
import org.apache.ibatis.migration.Change;
22
import org.apache.ibatis.migration.commands.StatusCommand;
23
import org.apache.ibatis.migration.operations.StatusOperation;
24
import org.apache.maven.plugin.MojoExecutionException;
25
import org.apache.maven.plugin.MojoFailureException;
26
import org.apache.maven.plugins.annotations.LifecyclePhase;
27
import org.apache.maven.plugins.annotations.Mojo;
28

29
/**
30
 * Goal which check the presence of pending migration.
31
 */
32
@Mojo(name = "check", defaultPhase = LifecyclePhase.TEST)
33
public final class CheckCommandMojo extends StatusCommandMojo {
×
34

35
  private static final String LINE_SEPARATOR = System.getProperty("line.separator", "\n");
×
36

37
  /**
38
   * {@inheritDoc}
39
   */
40
  @Override
41
  public void execute() throws MojoExecutionException, MojoFailureException {
42
    if (isSkip()) {
×
43
      return;
×
44
    }
45

46
    init();
×
47

48
    if (getCommand() instanceof StatusCommand) {
×
49
      StatusCommand command = (StatusCommand) getCommand();
×
50
      command.execute();
×
51
      StatusOperation operation = command.getOperation();
×
52
      List<Change> changes = operation.getCurrentStatus();
×
53
      int pendings = operation.getPendingCount();
×
54
      if (pendings > 0) {
×
55
        Integer[] args = { pendings };
×
56
        MessageFormat format = new MessageFormat(
×
57
            getBundle(this.getLocale()).getString("migration.plugin.execution.check.failed"));
×
58
        throw new MojoFailureException(this, LINE_SEPARATOR + format.format(args), createLongMessage(changes));
×
59
      }
60
    }
61
  }
×
62

63
  /**
64
   * Creates a user information message about all migration pending changes
65
   *
66
   * @param changes
67
   *          List of migration changes
68
   *
69
   * @return User information message about all migration pending changes.
70
   */
71
  private String createLongMessage(List<Change> changes) {
72
    StringBuilder builder = new StringBuilder();
×
73
    builder.append("ID             Applied At          Description");
×
74
    builder.append(LINE_SEPARATOR);
×
75
    for (Change change : changes) {
×
76
      builder.append(change);
×
77
      builder.append(LINE_SEPARATOR);
×
78
    }
×
79
    return builder.toString();
×
80
  }
81

82
  @Override
83
  public String toString() {
84
    return getBundle(this.getLocale()).getString("migration.plugin.name") + " " + this.getClass().getSimpleName();
×
85
  }
86

87
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc