Code Monkey home page Code Monkey logo

mybatipse's Introduction

MyBatipse : Eclipse plugin for MyBatis

MyBatis is a popular SQL Mapper framework.
And MyBatipse is an Eclipse plug-in which provids content assists and validations when editing MyBatis related files.

Features

XML Editor Enhancements

Auto-completion

  • Mapper namespace : Calculated from the path.
    autocomplete namespaceautocomplete namespace

  • Java class/Type alias : Propose Java classes and Type Aliases (translucent icons). Camelcase match is supported. [1] [2]
    autocomplete class autocomplete class

  • Java property : Propose properties of the parent java class. Nested properties are supported.
    autocomplete property autocomplete property

  • Statement ID : If corresponding mapper interface exists, propose the method name as a statement ID.
    autocomplete statement id

  • Reference to resultMap/select/sql : Propose ID of the referenced resultMap/select/sql. External reference is supported (blue icons).
    autocomplete reference

  • Parameter properties : #{} and ${} in select/insert/udpate/delte statements. Also works in some attributes.
    autocomplete properties autocomplete properties 2

  • javaType, jdbcType, typeHandler in #{}
    autocomplete jdbcType

  • Result elements in resultMap/collection/association : Generates elements for the parent java class properties.
    autocomplete results

  • setting name and value in XML config.
    autocomplete setting autocomplete setting

  • [1] For better performance, classes in the application libraries (loaded as JARs) are listed only when at least one package segment is specified.

  • [2] There is a limitation for the type alias support. Basically, if type aliases are registered using Java API, they are not automatically detected. As a workaround, you can register type aliases in MyBatipse's preference. See the Configuration section.

Hyperlinks

  • To referenced resultMap/select/sql element. External reference is supported.
    link to external reference
  • From Java mapper interface to XML mapper element.
    link to xml mapper
  • From Java mapper method to XML mapper element.
    link to xml statement
  • From XML statement id to Java mapper method.
    link to java method
  • Result map id or select statement id specified in Java annotation.

Validation

  • Missing TypeAlias, Java class/property.
  • Missing resultMap/select/sql ID.
  • etc.
    refid error problem view

Mapper Declaration View

Java Editor Enhancements

Auto-completion

  • Parameter properties : #{} and ${} in select/insert/udpate/delte annotations. autocomplete properties in java
  • Return type properties in @Result
    autocomplete return type properties in java
  • keyProperty in @Options and @SelectKey
    autocomplete return type properties in java
    autocomplete return type properties in java
  • javaType, jdbcType, typeHandler in #{} : See the XML example.
  • Reference to resultMap in @ResultMap and resultMap attribute of @Arg
    autocomplete resultmap annotation
  • select attribute of @Arg, @Many and @One
    autocomplete select

Quick Assist

Put the cursor on the statement method name and press cmd + 1 (or ctrl + 1) to trigger Quick Assist.

  • You can add @Param to method parameters.
    param-annotation1
    param-annotation2
  • You can copy annotation statement into the clipboard. param-annotation1
  • You can move annotation statement to XML mapper.
    move-statement
  • You can move @Results annotation to <resultMap /> in XML mapper.
    move-resultmap

Validation

  • @ResultMap : invalid resultMap ID.
  • select attribute of @One or @Many : invalid statement ID.

Rename Refactoring

  • Renaming resultMap/statement/sql ID updates its references in Java and XML mappers.
  • In XML mapper, right click -> Refactor -> Rename MyBatis element. param-annotation1
  • In Java mapper, right click -> MyBatis Refactor -> Rename MyBatis element. param-annotation1
  • Renaming a Java mapper method also updates its references.

Miscellaneous

  • Wizard to create a new XML mapper file.
    wizard-xml-mapper

  • Smart-copy menu in Console View to copy SQL statement in an executable form. For example, if you select and copy the following debug output ...
    smart-copy-console
    ... and the following statement is copied to the clipboard (be sure to include the first ==> and <== in the selection as the image above).

    insert into users values(2, 'User2')

Configuration

XML mapper location

  • MyBatipse searches XML mapper files under your project's Source Folder. To make a directory Source Folder, right click the directory in the package explorer and choose Build Path -> Use as Source Folder from the menu.

MyBatis Nature

  • By default, each file is validated when it's saved, but you would want to validate the XML mapper when the related Java classes are updated as well. For that purpose, MyBatipse provides a custom nature MyBatis Nature.
    To add the nature, right click the project in the package explorer and choose Configure -> Add MyBatis Nature from the menu.
    nature

Annotation Processing

  • To validate annotation value, you need to enable annotation processing. Open Project -> Properties and select Java Compiler -> Annotation Processing in the left column. Check both Enable annotation processing and Enable processing in editor.

Type Alias

  • Type alias are automatically detected if they are registered using XML config file (both mybatis and mybatis-spring config is supported).
    If you register type aliases in Java code, MyBatipse cannot detect them. As a workaround, you can register custom type aliases in the project setting (Open Project -> Properties menu and select MyBatipse from the left column).
    type aliases
    For example, with the above settings:
    • The first entry registers all the classes in com.example.domain package as type aliases. You can use wildcard to specify multiple packages (e.g. com.example.*.domain).
    • The second entry registers the single class domain.Person.
    • The third entry registers the single class domain.SomeLongNamedBean under the alias SomeBean.
    • Note that, in any case, MyBatipse respects @Alias annotation if it exists.

Java 8 -parameters compiler option support

  • If 'Store information about method parameters' option is enabled in the Java Compiler -> Classfile Generation setting, MyBatipse proposes the declared method parameter names.
    xml proposal order

Tips

  • To move MyBatis proposals to the top of the XML proposal list, quit Eclipse and open the following file in the workspace: .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.xml.ui.prefs Find the line started with xml_content_assist_default_page_sort_order= and insert net.harawata.mybatis.proposalCategory.xml\u0000 right after the equal sign.
    xml proposal order

Installation

There are several ways to install MyBatipse.

  • Drag this button drag-to-install button from browser to your Eclipse workbench (i.e. window).
  • Choose Eclipse Marketplace... in Help menu of your Eclipse and search MyBatipse.
  • Choose Install New Software... in Help menu and enter the following URL.
    https://harawata.github.io/eclipse-site/
  • For offline installation, see here.

Bugs, questions, suggestions, etc.

Please use the issue tracker.

License

MyBatipse is licensed under Eclipse Public License 1.0.

mybatipse's People

Contributors

harawata avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mybatipse's Issues

Resolving methods from parent interface

MyBatipse doesn't resolve methods declared in parent interface.
For example I have interface AbstractRepository with method find();
And a mapper interface EntityDao extends AbstractRepository,
If I define

<select id="find"> 
...
</select>

MyBatis understands that it is defined in parent AbstractRepository, mybatipse doesn't. It says: "Method 'find' not defined in mapper interface ..."

XML Editor does not enhance

Mybatis Natrue have benn add to a project, but the XML Editor does not enhance.

Such as โ€œAuto-completionโ€ and "Auto-completion".

Thanks!

Error: Namespace='com.SampleMapper2' not found.

Validation error is added to Problems view when I reference one mapper from another mapper.

For example, when i have SampleMapper1 and SampleMapper2, and SampleMapper1 contains smth like:

<resultMap id="mapper1ResultMap" type="com.SomeClass">
    <association property="someField" resultMap="com.SampleMapper2.mapper2ResultMap" />
</resultMap>

or

<sql id="mapper1Sql">
    <include refid="com.SampleMapper2.mapper2fragment" />
</sql>

Currently my problems view is polluted by this type of false alarm errors - would be nice to see it fixed :)

Which eclipse formatter settings to use when contributing code?

Hello,
I'd like to contribute code to this project, but it looks like non of the eclipse built-in java code formatters is used in this project.

Could You export eclipse java code formatter that should be used for this project and maybe include it in the project source code or upload it somewhere?

Best Regards,
Ats

Hyperlink to XML mapper/statement should work in any Java source

Currently, hyperlink to XML mapper/statement element works only in a mapper interface file.
So, for example, if I am editing a service layer class or a presentation layer class and want to see the XML mapper declaration of a mapper method, it requires two steps (link to the mapper interface -> link to the XML element).

With this issue fixed, it will be just one step:
hl-xml-statement2

False positive: selectAuthor not found (mybatis-3)

When used with the mybatis-3 codebase, MyBatipse 1.0.4.201405250001 incorrectly reports that BoundAuthorMapper.selectAuthor is not found.

Description Resource Path Location Type
select with id='org.apache.ibatis.binding.BoundAuthorMapper.selectAuthor' not found. BoundBlogMapper.xml /mybatis-3/src/test/java/org/apache/ibatis/binding line 46 MyBatis XML Problem

Java + VCS comparison editor conflicting with MyBatipse

As long as you keep CTRL Key pressed and moving your mouse above the source code of a Java file into the comparison editor of SVN or Git (for instance), cause the following exception :

java.lang.NullPointerException
at net.harawata.mybatipse.mybatis.JavaHyperlinkDetector.detectHyperlinks(JavaHyperlinkDetector.java:49)
at org.eclipse.ui.texteditor.HyperlinkDetectorRegistry$HyperlinkDetectorDelegate.detectHyperlinks(HyperlinkDetectorRegistry.java:80)
at org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:289)
at org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:261)
at org.eclipse.jface.text.hyperlink.HyperlinkManager.mouseMove(HyperlinkManager.java:469)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:212)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:826)
at org.eclipse.jface.window.Window.open(Window.java:802)
at org.eclipse.jface.dialogs.MessageDialog.open(MessageDialog.java:334)
at org.eclipse.team.svn.ui.dialog.DefaultDialog.open(DefaultDialog.java:131)
at org.eclipse.team.svn.ui.operation.CompareResourcesInternalOperation$4$1.run(CompareResourcesInternalOperation.java:173)
at org.eclipse.ui.internal.UILockListener.doPendingWork(UILockListener.java:164)
at org.eclipse.ui.internal.UISynchronizer$3.run(UISynchronizer.java:158)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4145)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3762)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:826)
at org.eclipse.jface.window.Window.open(Window.java:802)
at org.eclipse.jface.dialogs.MessageDialog.open(MessageDialog.java:334)
at org.eclipse.team.svn.ui.dialog.DefaultDialog.open(DefaultDialog.java:131)
at org.eclipse.team.svn.ui.extension.impl.DefaultCommitActionFactory$1.open(DefaultCommitActionFactory.java:42)
at org.eclipse.team.svn.ui.action.local.CommitAction.runImpl(CommitAction.java:54)
at org.eclipse.team.svn.ui.action.AbstractSVNTeamAction$2.runImpl(AbstractSVNTeamAction.java:89)
at org.eclipse.team.svn.core.operation.AbstractActionOperation.run(AbstractActionOperation.java:82)
at org.eclipse.team.svn.core.operation.LoggedOperation.run(LoggedOperation.java:40)
at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTask(ProgressMonitorUtility.java:104)
at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTaskExternal(ProgressMonitorUtility.java:90)
at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTaskExternal(ProgressMonitorUtility.java:81)
at org.eclipse.team.svn.ui.action.AbstractSVNTeamAction.execute(AbstractSVNTeamAction.java:82)
at org.eclipse.team.internal.ui.actions.TeamAction.run(TeamAction.java:515)
at org.eclipse.team.internal.ui.actions.TeamAction.runWithEvent(TeamAction.java:549)
at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:241)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)

That error is repeated continuously (check the Error Log view), preventing the normal hovering functions as displaying informations and authorizing redirection to element declarations...

My environment :
eclipse.buildId=4.3.2.M20140221-1700
java.version=1.7.0_51
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=fr_FR
Framework arguments: -product org.eclipse.epp.package.jee.product
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product

MyBatipse v1.0.3

Class/TypeAlias 'Order' not found ,multi-typeAliasesPackage problem on multi-datasource?

<bean id="sqlSessionFactory1" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="DataSource1" />
    <property name="configLocation" value="classpath:mybatis-config.xml" />
    <property name="typeAliasesPackage" value="com.abc.entity.a" />
    <property name="mapperLocations" value="classpath:mapper/a/*.xml" />
</bean>

<bean id="sqlSessionFactory2" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="DataSource2" />
    <property name="configLocation" value="classpath:mybatis-config.xml" />
    <property name="typeAliasesPackage" value="com.abc.entity.b" />
    <property name="mapperLocations" value="classpath:mapper/b/*.xml" />
</bean>

every mapper xml file in mapper/a/.xml is ok
but every mapper xml file in mapper/b/
.xml have error:

<select id="selectOrder" parameterType="String" resultType="Order">
    select sql...
</select>

Class/TypeAlias 'Order' not found.

Content assist for #{} in statements.

Content assist should work in a parameter placeholder #{} of select, insert, update, delete statements in XML and Java.

  • Properties (works in ${} as well)
  • JDBC types
  • Java types
  • Type handlers

ac-stmt-prop-java
ac-stmt-th

Class/TypeAlias 'byte[]' not found.

When i configure 'javaType="byte[]"' for result element , The plugin mention me that's error message [Class/TypeAlias 'byte[]' not found] But the mybatis.jar has provide the typeAlias of "byte[]".

image

False positive in resultMap : properties of parameterized class

Reported by Mukarram
https://groups.google.com/d/msg/mybatis-user/Re2J3t0oioo/1Uns4NvuzQoJ

public class Animal {
  private String diet;
  public String getDiet() { return diet;}
  public void setDiet(String diet) { this.diet = diet;}
}
public class Person extends Animal { 
  private Integer id; 
  private String name; 
} 
<resultMap type="private_result.Person" id="PersonResult"> 
  <id property="id" column="id" /> 
  <result property="name" column="name" /> 
  <result property="diet" column="diet" />  <!-- Error here in Mybatipse -->
</resultMap> 

Add MyBatis DTDs to XML Catalog

I've completely switched from using Eclipse Lab's mybatiseditor plugin to mybatipse, and I love it. The overall user experience is much better. One feature that I miss is the way that mybatiseditor adds the following to the Eclipse XML Catalog as Plugin Specified Entries:

-//ibatis.apache.org//DTD SQL Map 2.0//EN
-//ibatis.apache.org//DTD SQL Map Config 2.0//EN
-//mybatis.org//DTD Config 3.0//EN and
-//mybatis.org//DTD Mapper 3.0//EN.

Adding entries pointing to the appropriate jar:file URI's would have dual benefits, not only speeding up Eclipse, but lessing the load on the project's websites.

See also: mybatis/generator#5

Problem on "resultMap" validator

daomap
daomap_xml
Hi,
I get a problem, you can see the picture above.
This method can run after built, but mybatipse tip it error.
Please checked, tks!

Mapped class resolution for autocompletion

Actually, does Mybatipse resolve mapped classes only from the config xml file?

I am integrating MyBatis in an OSGi project and I add my mapped classes dynamically by code. Mybatipse does not autocomplete class names. I tried to add a package in MyBatipse type aliases from the project properties, still no autocompletion.

Is there something I can do to get class autocompletion?
I did not try autocompletion on other fields (resul map id, for example), does my mappers have to be in a config.xml file?

If I can make a suggestion, it would be nice if there would be an option inside MyBatipse to tell the plugin to autocomplete any class listed in the current Eclipse target platform (including workspaces classes) and another option to tell MyBatipse to reference any xml mapper file available in any of the jars listed in the current Eclipse target platform (including workspace projects). I don't know what are the implications of these features, but it would help using MyBatis and MyBatipse while gaining a productivity boost.

I would like to know what I can do to get class name and xml autocompletion

Missing mybatislogo.png file

Every once in a while I see this error:

java.io.IOException: Unable to resolve plug-in "platform:/plugin/org.eclipselabs.mybatiseditor.ui/icons/mybatislogo.png".
at org.eclipse.core.internal.runtime.PlatformURLPluginConnection.parse(PlatformURLPluginConnection.java:64)
at org.eclipse.core.internal.runtime.PlatformURLPluginConnection.resolve(PlatformURLPluginConnection.java:75)
at org.eclipse.core.internal.boot.PlatformURLHandler.openConnection(PlatformURLHandler.java:67)
at org.eclipse.osgi.internal.url.URLStreamHandlerProxy.openConnection(URLStreamHandlerProxy.java:114)
at java.net.URL.openConnection(URL.java:971)
at org.eclipse.core.internal.runtime.PlatformURLConverter.toFileURL(PlatformURLConverter.java:33)
at org.eclipse.core.runtime.FileLocator.toFileURL(FileLocator.java:206)
at org.eclipse.jface.resource.URLImageDescriptor.getFilePath(URLImageDescriptor.java:141)
at org.eclipse.jface.resource.URLImageDescriptor.createImage(URLImageDescriptor.java:162)
at org.eclipse.jface.resource.ImageDescriptor.createImage(ImageDescriptor.java:230)
at org.eclipse.jface.resource.ImageDescriptor.createImage(ImageDescriptor.java:208)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.getImageFromURI(SWTPartRenderer.java:221)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.getImage(SWTPartRenderer.java:233)
at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.createTab(StackRenderer.java:828)
at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.processContents(LazyStackRenderer.java:136)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68)
at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68)
at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68)
at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68)
at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68)
at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveRenderer.processContents(PerspectiveRenderer.java:49)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.showTab(PerspectiveStackRenderer.java:103)
at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:100)
at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.postProcess(PerspectiveStackRenderer.java:77)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:678)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68)
at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68)
at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:664)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1078)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)

eclipse.buildId=4.4.1.M20140910-2310
java.version=1.7.0_51
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US

MyBatipse=1.0.6.201409081719

George

XmlValidator adds markers but not add it to ValidationResult

Hi Iwao!

Just realized, that when I validate my mappers, it won't report any error, however, markers will be set. It is commented out, but don't know the reason:

https://github.com/harawata/mybatipse/blob/master/mybatipse/src/net/harawata/mybatipse/mybatis/XmlValidator.java#L433

It is necessary to do so? If I uncomment it, it will add the same marker (as I can see), and the error will be counted in the XML ValidationResult also.

Best regards,

-- Vazul

Endless XML mapper validation in 1.0.7

With 1.0.7, if your spring config contains multiple SqlSessionFactoryBean with typeAliasPackage or typeAliasSuperType, mapper validation runs into an infinite loop.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.