How to checkout from SVN with Oomph? - eclipse

I try to write a Setup Project Model which installs Eclipse and also checks out the source code from SVN with Oomph 1.6.0.
I read Automating Project-specific Eclipse Setups with Oomph:
One big issue in the process of software development (especially, but not only for bigger teams) is the setup of a common IDE. There are many settings and Plugins that must be common to all project members:
File encodings
Target Platforms
SCM-Linking to Git/SVN/CVS/…
so it seems possible. But I couldn't find any documentation for it.
I found under Additional Tasks and Git Clone... an extension for Git, but there is no extension for SVN.
I found Importing project set from SVN fails:
I'd like to implement a setup task which creates a set of projects defined with a team project set:
<setupTask xsi:type="projectset:ProjectSetImportTask" uRL="https://subversion.assembla.com/svn/MYPROJECT/user.psf">
<description>User projects</description>
</setupTask>
I set the property url, but the task is not executed. With the help of the referenced link:
With Help -> Perform Setup Tasks... you can manually trigger the setup tasks again
I could excute the task manually, but I got an exception:
Performing Project Set Import svn://svn.mycompany.com/repo/test
org.eclipse.oomph.util.IOExceptionWithCause: unknown protocol: svn: svn://svn.mycompany.com/repo/test
at org.eclipse.oomph.setup.internal.core.util.ECFURIHandlerImpl.createIOException(ECFURIHandlerImpl.java:527)
at org.eclipse.oomph.setup.internal.core.util.ECFURIHandlerImpl.access$14(ECFURIHandlerImpl.java:514)
at org.eclipse.oomph.setup.internal.core.util.ECFURIHandlerImpl$ConnectionHandler.process(ECFURIHandlerImpl.java:1536)
at org.eclipse.oomph.setup.internal.core.util.ECFURIHandlerImpl.createInputStream(ECFURIHandlerImpl.java:302)
at org.eclipse.emf.ecore.resource.impl.ExtensibleURIConverterImpl.createInputStream(ExtensibleURIConverterImpl.java:360)
at org.eclipse.oomph.setup.projectset.impl.ProjectSetImportTaskImpl$Helper.getXMLContent(ProjectSetImportTaskImpl.java:296)
at org.eclipse.oomph.setup.projectset.impl.ProjectSetImportTaskImpl$Helper.isNeeded(ProjectSetImportTaskImpl.java:247)
at org.eclipse.oomph.setup.projectset.impl.ProjectSetImportTaskImpl.isNeeded(ProjectSetImportTaskImpl.java:219)
at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.initNeededSetupTasks(SetupTaskPerformer.java:1809)
at org.eclipse.oomph.setup.ui.SetupUIPlugin.performStartup(SetupUIPlugin.java:675)
at org.eclipse.oomph.setup.ui.SetupUIPlugin.access$5(SetupUIPlugin.java:414)
at org.eclipse.oomph.setup.ui.SetupUIPlugin$1$1.run(SetupUIPlugin.java:253)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: java.net.MalformedURLException: unknown protocol: svn
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URI.toURL(Unknown Source)
at org.eclipse.ecf.provider.filetransfer.identity.FileTransferID.getURL(FileTransferID.java:78)
at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer.sendRetrieveRequest(AbstractRetrieveFileTransfer.java:877)
at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer.sendRetrieveRequest(AbstractRetrieveFileTransfer.java:576)
at org.eclipse.ecf.provider.filetransfer.retrieve.MultiProtocolRetrieveAdapter.sendRetrieveRequest(MultiProtocolRetrieveAdapter.java:106)
at org.eclipse.oomph.setup.internal.core.util.ECFURIHandlerImpl$InputStreamConnectionHandler.sendConnectionRequest(ECFURIHandlerImpl.java:1640)
at org.eclipse.oomph.setup.internal.core.util.ECFURIHandlerImpl$ConnectionHandler.process(ECFURIHandlerImpl.java:1391)
at org.eclipse.oomph.setup.internal.core.util.ECFURIHandlerImpl.createInputStream(ECFURIHandlerImpl.java:302)
at org.eclipse.emf.ecore.resource.impl.ExtensibleURIConverterImpl.createInputStream(ExtensibleURIConverterImpl.java:360)
at org.eclipse.oomph.setup.projectset.impl.ProjectSetImportTaskImpl$Helper.getXMLContent(ProjectSetImportTaskImpl.java:296)
at org.eclipse.oomph.setup.projectset.impl.ProjectSetImportTaskImpl$Helper.isNeeded(ProjectSetImportTaskImpl.java:247)
at org.eclipse.oomph.setup.projectset.impl.ProjectSetImportTaskImpl.isNeeded(ProjectSetImportTaskImpl.java:219)
at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.initNeededSetupTasks(SetupTaskPerformer.java:1809)
at org.eclipse.oomph.setup.ui.SetupUIPlugin.performStartup(SetupUIPlugin.java:675)
at org.eclipse.oomph.setup.ui.SetupUIPlugin.access$5(SetupUIPlugin.java:414)
at org.eclipse.oomph.setup.ui.SetupUIPlugin$1$1.run(SetupUIPlugin.java:253)
... 1 more
How can I check out my source code automatically with Oomph 1.6.0?

Related

Bamboo plugin for fetching NuGet packages from Artifactory is throwing a "String index out of bounds" error and causing build to fail

I have a visual studio project which uses several libraries I fetched from NuGet.
I recently created a remote repository in Artifactory that fetches and caches the NuGet packages.
The goal is to remove the "packages" directory from my project's source control and restore the libraries through the artifactory repository every time the project is built.
I am successfully able to do this and build the project in bamboo using a script task and the following command: nuget restore solutionName.sln -Source http://artifactoryRepoAddress
Despite the script working, I would like to use the plugin for bamboo from Artifactory (docs here) since this will collect build information and push it to Artifactory automatically. I am unable to get this to work. The build fails every time with the following error:
java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at org.jfrog.build.extractor.nuget.extractor.NugetRun.execute(NugetRun.java:185)
at org.jfrog.bamboo.task.ArtifactoryDotNetTaskBase.executeRestore(ArtifactoryDotNetTaskBase.java:113)
at org.jfrog.bamboo.task.ArtifactoryDotNetTaskBase.runTask(ArtifactoryDotNetTaskBase.java:74)
at org.jfrog.bamboo.task.ArtifactoryTaskType.execute(ArtifactoryTaskType.java:46)
at com.atlassian.bamboo.task.TaskExecutorImpl.lambda$executeTasks$2(TaskExecutorImpl.java:321)
at com.atlassian.bamboo.task.TaskExecutorImpl.executeTaskWithPrePostActions(TaskExecutorImpl.java:258)
at com.atlassian.bamboo.task.TaskExecutorImpl.executeTasks(TaskExecutorImpl.java:321)
at com.atlassian.bamboo.task.TaskExecutorImpl.execute(TaskExecutorImpl.java:118)
at com.atlassian.bamboo.build.pipeline.tasks.ExecuteBuildTask.call(ExecuteBuildTask.java:73)
at com.atlassian.bamboo.v2.build.agent.DefaultBuildAgent.executeBuildPhase(DefaultBuildAgent.java:205)
at com.atlassian.bamboo.v2.build.agent.DefaultBuildAgent.build(DefaultBuildAgent.java:177)
at com.atlassian.bamboo.v2.build.agent.BuildAgentControllerImpl.lambda$waitAndPerformBuild$0(BuildAgentControllerImpl.java:169)
at com.atlassian.bamboo.variable.CustomVariableContextImpl.withVariableSubstitutor(CustomVariableContextImpl.java:118)
at com.atlassian.bamboo.v2.build.agent.BuildAgentControllerImpl.waitAndPerformBuild(BuildAgentControllerImpl.java:162)
at com.atlassian.bamboo.v2.build.agent.DefaultBuildAgent.lambda$start$0(DefaultBuildAgent.java:122)
at com.atlassian.bamboo.utils.BambooRunnables$1.run(BambooRunnables.java:48)
at com.atlassian.bamboo.security.ImpersonationHelper.runWith(ImpersonationHelper.java:26)
at com.atlassian.bamboo.security.ImpersonationHelper.runWithSystemAuthority(ImpersonationHelper.java:17)
at com.atlassian.bamboo.security.ImpersonationHelper$1.run(ImpersonationHelper.java:41)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.base/java.lang.String.substring(Unknown Source)
at org.jfrog.build.extractor.nuget.extractor.NugetRun.addSourceToConfigFile(NugetRun.java:222)
at org.jfrog.build.extractor.nuget.extractor.NugetRun.prepareConfig(NugetRun.java:211)
at org.jfrog.build.extractor.nuget.extractor.NugetRun.prepareAndRunCmd(NugetRun.java:193)
at org.jfrog.build.extractor.nuget.extractor.NugetRun.execute(NugetRun.java:175)
... 19 more
I am wondering if anyone has seen this before or knows how I might fix it. I am thinking that the most likely issue has something to do with the "arguments" section. Here is an image of the input fields. For this example, I am just using placeholder text for the project name and source address: image
There is so little documentation on this plugin that is has been difficult to even get this far.

Java Illegal Argument Exception thrown when opening NetLogo model in Jython

I am trying to control NetLogo's API using Jython 2.7.0 (on Java 1.8.0_131) running on OS X El Capitan (10.11.6) to run experiments. In trying to run the following code:
import site
site.addsitedir("/Users/nqe/NetLogo/NetLogo 6.0.1/Java/")
import org.nlogo.headless.HeadlessWorkspace as hw
workspace = hw.newInstance()
workspace.open("models/Sample Models/Earth Science/Fire.nlogo")
workspace.command("set density 62")
workspace.command("random-seed 0")
workspace.command("setup")
workspace.command("repeat 50 [ go ]")
print (workspace.report("burned-trees"))
workspace.dispose()
I get the following error:
at scala.Predef$.require(Predef.scala:264)
at org.nlogo.generate.PrimitiveCache$.read$1(PrimitiveCache.scala:22)
at org.nlogo.generate.PrimitiveCache$.$anonfun$getClassReader$1(PrimitiveCache.scala:26)
at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:80)
at org.nlogo.generate.PrimitiveCache$.getClassReader(PrimitiveCache.scala:26)
at org.nlogo.generate.PeepholeSafeChecker.processClass(PeepholeSafeChecker.scala:49)
at org.nlogo.generate.PeepholeSafeChecker.isSafe(PeepholeSafeChecker.scala:42)
at org.nlogo.generate.Generator$InstructionGenerator.generateInstruction(Generator.scala:190)
at org.nlogo.generate.Generator$InstructionGenerator.generateBodyMethod(Generator.scala:124)
at org.nlogo.generate.Generator$InstructionGenerator.generate(Generator.scala:99)
at org.nlogo.generate.Generator.org$nlogo$generate$Generator$$recurse(Generator.scala:29)
at org.nlogo.generate.Generator.$anonfun$recurse$1(Generator.scala:31)
at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:193)
at scala.collection.TraversableLike.map$(TraversableLike.scala:234)
at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:193)
at org.nlogo.generate.Generator.org$nlogo$generate$Generator$$recurse(Generator.scala:31)
at org.nlogo.generate.Generator.$anonfun$generate$1(Generator.scala:25)
at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:193)
at scala.collection.TraversableLike.map$(TraversableLike.scala:234)
at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:193)
at org.nlogo.generate.Generator.generate(Generator.scala:25)
at org.nlogo.compile.CompilerMain$.assembleProcedure(CompilerMain.scala:79)
at org.nlogo.compile.CompilerMain$.$anonfun$compile$2(CompilerMain.scala:55)
at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
at scala.collection.immutable.List.foreach(List.scala:378)
at scala.collection.TraversableLike.map$(TraversableLike.scala:234)
at scala.collection.immutable.List.map(List.scala:284)
at org.nlogo.compile.CompilerMain$.compile(CompilerMain.scala:55)
at org.nlogo.compile.Compiler.compileProgram(Compiler.scala:52)
at org.nlogo.headless.HeadlessModelOpener.openFromModel(HeadlessModelOpener.scala:54)
at org.nlogo.headless.HeadlessWorkspace.openModel(HeadlessWorkspace.scala:532)
at org.nlogo.headless.HeadlessWorkspace.open(HeadlessWorkspace.scala:499)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: requirement failed
In case the "import site" part is not clear, I did the following:
Create a jython script to write all .jar files in "/Users/nqe/NetLogo/NetLogo 6.0.1/Java/" to a .pth file.
I then placed this .pith file into said the .../Java/ directory with the .jar files.
This allows me to access all the .jar dependencies from sys.path when needing to the import various API features of NetLogo.
I can't figure out exactly what causes this error, for in running on python interactive mode, I was able to successfully create a new instance of NetLogo JVM using the hw.newInstance() command (I could see a Java icon pop up when running this code), and the open command threw the appropriate errors if I fail to specify a url, for example.
Because of this, I thought it might have something to do with my JVM not being configured properly, so I tried a few things.
First, I checked that I was able to actually run the java example of controlling NetLogo API in headless mode found here: https://github.com/NetLogo/NetLogo/wiki/Controlling-API. I was able to run the code given here using these commands:
javadir=/Users/nqe/NetLogo/ControlAPI/
netjardir=/Users/nqe/NetLogo/NetLogo\ 6.0.1/Java/netlogo-mac-app.jar
javaname=Example1
javac -cp "${javadir}":"${netjardir}" $javaname.java
java -cp "${javadir}":"${netjardir}" $javaname
without changing any JVM settings manually. Nevertheless, I went ahead and tried changing things in my JVM settings when running the jython code such as the path to docs and extensions, but in particular, to the ./lib directory. Unfortunately, specifying the following JVM setting:
-Djava.library.path=~/JRE/Contents/Home/jre/lib/
does nothing to help the cause. Note that the ~ here is short for being in the NetLogo 6.0.1 directory and that this was the only lib directory I could find.
Finally, I discord this: when I try to run the above jython script when only specifying the path to netlogo-mac-app.jar, I AM NOT ABLE TO IMPORT the headless class stuff. Hence, the compilation/ running of the java while specifying only this one .jar classpath could possibly be somehow accessing some useful meta-data necessary for NetLogo to work (I don't know if this is possible with my level of Java background).
Upon thinking this, I found a NetLogo.cfg file in ~/NetLogo 6.0.1.app/Contents/Java/ that contains the following info:
[Application]
app.name=NetLogo
app.mainjar=netlogo-mac-app.jar
app.version=6.0.1
app.preferences.id=org/nlogo/app
app.mainclass=org/nlogo/app/MacApplication
app.classpath=$APPDIR/../../Java/args4j-2.0.12.jar:$APPDIR/../../Java/asm-5.0.3.jar:$APPDIR/../../Java/asm-5.0.3.jar:$APPDIR/../../Java/asm-all-5.0.4.jar:$APPDIR/../../Java/asm-all-5.0.4.jar:$APPDIR/../../Java/asm-analysis-5.0.3.jar:$APPDIR/../../Java/asm-analysis-5.0.3.jar:$APPDIR/../../Java/asm-tree-5.0.3.jar:$APPDIR/../../Java/asm-tree-5.0.3.jar:$APPDIR/../../Java/asm-util-5.0.3.jar:$APPDIR/../../Java/asm-util-5.0.3.jar:$APPDIR/../../Java/behaviorsearch.jar:$APPDIR/../../Java/commons-codec-1.10.jar:$APPDIR/../../Java/commons-codec-1.10.jar:$APPDIR/../../Java/commons-logging-1.1.1.jar:$APPDIR/../../Java/commons-logging-1.1.1.jar:$APPDIR/../../Java/gluegen-rt-2.3.2.jar:$APPDIR/../../Java/gluegen-rt-2.3.2.jar:$APPDIR/../../Java/httpclient-4.2.jar:$APPDIR/../../Java/httpclient-4.2.jar:$APPDIR/../../Java/httpcore-4.2.jar:$APPDIR/../../Java/httpcore-4.2.jar:$APPDIR/../../Java/httpmime-4.2.jar:$APPDIR/../../Java/httpmime-4.2.jar:$APPDIR/../../Java/java-objc-bridge-1.0.0.jar:$APPDIR/../../Java/jcommon-1.0.16.jar:$APPDIR/../../Java/jfreechart-1.0.13.jar:$APPDIR/../../Java/jhotdraw-6.0b1.jar:$APPDIR/../../Java/jhotdraw-6.0b1.jar:$APPDIR/../../Java/jmf-2.1.1e.jar:$APPDIR/../../Java/jmf-2.1.1e.jar:$APPDIR/../../Java/jna-4.2.2.jar:$APPDIR/../../Java/jogl-all-2.3.2.jar:$APPDIR/../../Java/jogl-all-2.3.2.jar:$APPDIR/../../Java/json-simple-1.1.1.jar:$APPDIR/../../Java/json-simple-1.1.1.jar:$APPDIR/../../Java/log4j-1.2.16.jar:$APPDIR/../../Java/log4j-1.2.16.jar:$APPDIR/../../Java/macro-compat_2.12-1.1.1.jar:$APPDIR/../../Java/macro-compat_2.12-1.1.1.jar:$APPDIR/../../Java/netlogo-6.0.1.jar:$APPDIR/../../Java/netlogo-6.0.1.jar:$APPDIR/../../Java/netlogo-mac-app.jar:$APPDIR/../../Java/parboiled-core-1.1.7.jar:$APPDIR/../../Java/parboiled-core-1.1.7.jar:$APPDIR/../../Java/parboiled-java-1.1.7.jar:$APPDIR/../../Java/parboiled-java-1.1.7.jar:$APPDIR/../../Java/parboiled_2.12-2.1.3.jar:$APPDIR/../../Java/parboiled_2.12-2.1.3.jar:$APPDIR/../../Java/pegdown-1.6.0.jar:$APPDIR/../../Java/pegdown-1.6.0.jar:$APPDIR/../../Java/picocontainer-2.13.6.jar:$APPDIR/../../Java/picocontainer-2.13.6.jar:$APPDIR/../../Java/rsyntaxtextarea-2.6.0.jar:$APPDIR/../../Java/rsyntaxtextarea-2.6.0.jar:$APPDIR/../../Java/scala-library-2.12.0.jar:$APPDIR/../../Java/scala-library-2.12.1.jar:$APPDIR/../../Java/scala-library-2.12.1.jar:$APPDIR/../../Java/scala-parser-combinators_2.12-1.0.5.jar:$APPDIR/../../Java/scala-parser-combinators_2.12-1.0.5.jar:$APPDIR/../../Java/shapeless_2.12-2.3.2.jar:$APPDIR/../../Java/shapeless_2.12-2.3.2.jar
app.runtime=$APPDIR/../../JRE
app.identifier=org.nlogo.app
[JVMOptions]
-Dnetlogo.extensions.dir=$APPDIR/../../extensions
-Dnetlogo.models.dir=$APPDIR/../../models
-Dnetlogo.docs.dir=$APPDIR/../../docs
-Xdock:name=NetLogo
-Dorg.nlogo.mac.appClassName=org.nlogo.app.App$
-Xmx1024m
-Dfile.encoding=UTF-8
-Dapple.awt.graphics.UseQuartz=true
[JVMUserOptions]
[ArgOptions]
This seemed promising, but literally deleting this file had no affect on my ability to run NetLogo by opening the application/ using the Control API with Java method. As such, I am stumped, so any help would be greatly appreciated.

SonarQube Eclipse plugin doesn't follow Eclipse links, and "sonar.sources" must be relative path

Eclipse: "Luna" Release 2 (4.4.2) [20150219-0600]
Sonar: 5.1 (under Java 1.7.0_76)
Sonar Eclipse plugin: 3.5.0.20150804-1512-RELEASE
We have a large Enterprise system with many projects, and for various non-negotiable reasons we create our Eclipse projects in a local workspace directory but use Eclipse links to point to the sources in another directory.
For example, assume that my Foo project is based in "C:/EclipseWorkspace/Foo" and has an "src" link at the top level like this:
C:/EclipseWorkspace/Foo/src -> C:/CodeRepository/Foo/src
I wanted to have the following very simple setup for the plugin:
sonar.sources = C:/CodeRepository/Foo/src
The problem is, the Sonar Eclipse plugin does not appear to support using an absolute path. When I run an analysis I get the following error on the console:
Retrieve remote issues of project Foo...
Start SonarQube analysis on Foo...
INFO: SonarQube Server 5.1
17:16:18.565 INFO - Incremental mode
17:16:18.609 INFO - Load global repositories
17:16:18.862 INFO - Load global repositories (done) | time=253ms
17:16:18.863 INFO - Server id: 20150910100331
17:16:18.865 INFO - User cache: C:\Users\eryq\.sonar\cache
17:16:18.870 INFO - Install plugins
17:16:18.894 INFO - Include plugins:
17:16:18.894 INFO - Exclude plugins: devcockpit, buildstability, pdfreport, report, buildbreaker, views, jira
17:16:19.375 ERROR - Invalid value of sonar.sources for Foo
Exception in thread "main" org.sonar.runner.impl.RunnerException: Unable to execute Sonar
...
Caused by: java.lang.IllegalStateException: The folder 'C:/CodeRepository/Foo/src' does not exist for 'Foo' (base directory = C:\EclipseWorkspace\Foo)
at org.sonar.batch.scan.ProjectReactorBuilder.checkExistenceOfPaths(ProjectReactorBuilder.java:427)
at ...
Notice that last line:
The folder 'C:/CodeRepository/Foo/src' does not exist for 'Foo' (base
directory = C:\EclipseWorkspace\Foo)
Since the Eclipse plugin does not allow me to override the projectBaseDir, how do I make it understand that the sonar.sources are actually in another directory outside that tree? This seems like a plugin bug: if I need to point to a list of sources directories, the plugin should let me specify absolute paths if needed.
Thanks in advance,
Eryq
This is not specific to SonarQube Eclipse and not related to absolute path: any SonarQube analysis requires to have source folders located under the project baseDir.
Allowing you to override sonar.projectBaseDir is an easy fix. But I'm not sure this would not lead to other issues later when issues are mapped to Eclipse resources... Feel free to test and submit a pull request.

How to add DLLs while building a JAR - Eclipse

I have made an OCR Application that would convert image files to Doc Files, using Tesseract as its OCR Engine. I used the Tess4j JNA Wrappers for this. While making the application i put the dll files and the language data(tessdata) in the bin folder of the project, and the application worked fine.
Now when i build the project the dll files and tessdata are not included in the JAR, and thus the program isn't working.
I have tried two ways of export
**1. Package Required Libraries into Generated JAR **
I added the DLL files & the Tessdata in the same directory as the JAR file. But it didnt run.
http://i.imgur.com/cGwiVFC.png
It gave me the following Error
F:\New folder>java -jar w.jar scan.jpg
Error opening data file bin//tessdata/eng.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to the parent d
irectory of your "tessdata" directory.
Failed loading language 'eng'
Tesseract couldn't load any languages!
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:58)
Caused by: java.util.ServiceConfigurationError: javax.imageio.spi.ImageInputStre
amSpi: Provider com.sun.media.imageioimpl.stream.ChannelImageInputStreamSpi coul
d not be instantiated: java.lang.IllegalArgumentException: vendorName == null!
at java.util.ServiceLoader.fail(ServiceLoader.java:224)
at java.util.ServiceLoader.access$100(ServiceLoader.java:181)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:377)
at java.util.ServiceLoader$1.next(ServiceLoader.java:445)
at javax.imageio.spi.IIORegistry.registerApplicationClasspathSpis(IIOReg
istry.java:210)
at javax.imageio.spi.IIORegistry.<init>(IIORegistry.java:138)
at javax.imageio.spi.IIORegistry.getDefaultInstance(IIORegistry.java:159
)
at javax.imageio.ImageIO.<clinit>(ImageIO.java:65)
at net.sourceforge.vietocr.ImageIOHelper.getImageByteBuffer(Unknown Sour
ce)
at net.sourceforge.tess4j.Tesseract.setImage(Unknown Source)
at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
at com.shaurya.back.OCR.TesseractEngine.getResult(TesseractEngine.java:2
0)
at com.shaurya.back.ImageToDocument.identify(ImageToDocument.java:117)
at com.shaurya.back.ImageToDocument.transform(ImageToDocument.java:53)
at com.shaurya.front.runnow.main(runnow.java:27)
... 5 more
Caused by: java.lang.IllegalArgumentException: vendorName == null!
at javax.imageio.spi.IIOServiceProvider.<init>(IIOServiceProvider.java:7
6)
at javax.imageio.spi.ImageInputStreamSpi.<init>(ImageInputStreamSpi.java
:90)
at com.sun.media.imageioimpl.stream.ChannelImageInputStreamSpi.<init>(Ch
annelImageInputStreamSpi.java:63)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
orAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
onstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:374)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:373)
... 19 more
F:\New folder>
**2. Copy Required Libraries in Sub-Folder next to the generated JAR **
Here too i copied the dll files and the tessdata folder in the same directory as the JAR Files.(If i copy it inside the subfolder containing libraries, it couldn't even find the DLL files.)
http://i.imgur.com/7ShF3Ev.png
The error given is:
F:\New folder\kol>java -jar runn.jar scan.jpg
Error opening data file bin//tessdata/eng.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to the parent d
irectory of your "tessdata" directory.
Failed loading language 'eng'
Tesseract couldn't load any languages!
Exception in thread "main" java.lang.Error: Invalid memory access
at com.sun.jna.Native.invokePointer(Native Method)
at com.sun.jna.Function.invokePointer(Function.java:470)
at com.sun.jna.Function.invoke(Function.java:404)
at com.sun.jna.Function.invoke(Function.java:315)
at com.sun.jna.Library$Handler.invoke(Library.java:212)
at com.sun.proxy.$Proxy0.TessBaseAPIGetUTF8Text(Unknown Source)
at net.sourceforge.tess4j.Tesseract.getOCRText(Unknown Source)
at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
at com.shaurya.back.OCR.TesseractEngine.getResult(TesseractEngine.java:2
0)
at com.shaurya.back.ImageToDocument.identify(ImageToDocument.java:117)
at com.shaurya.back.ImageToDocument.transform(ImageToDocument.java:53)
at com.shaurya.front.runnow.main(runnow.java:27)
F:\New folder\kol>
So the Main problem it seems is that it isnt abke to find the Tessdata folder, though the dll are found. Another thing i was curious about is why is there a bit of change in Exception Stack in both cases(This seems unusual since both have the same code and are facing the same problem, just that the packaging is done a bit different.)
EDIT 1:
It Doesn't work even if i remove the dlls and tessdata from the bin to another folder and add it as an external class folder in the Java Build Path -> Libraries. If i do that then i get the same error that tessdata isnt found(In the application itself).
EDIT 2:
instance.setDatapath("bin//tessdata");
This is what is set as my datapath. Maybe changing this in someway might fix the error?
And Sorry if there has been some formatting problems in the post. The StackOverflow Ask a question isnt showing any preview or doesnt have the formatting buttons right now. Will Edit it if there are problems later when it does show :)
-Shaurya
It looks that it could not locate the tessdata folder under bin. Do you have it under there? The double forward slashes also look suspect; try to change it to "bin/".

Flash Builder Export Release Build Fails

I'm having an issue when trying to export the release build of my AIR application in Flash Builder 4.5. After choosing the key to sign the package and clicking finish to complete the export, it errors saying that "Error occurred while saving the project settings: "default" build target cannot be found for the selected project." I've included the error message output to the log in the .metadata folder. Any help would be great as this is baffling to me.
!ENTRY com.adobe.flexbuilder.project 4 43 2011-05-10 15:56:11.432
!MESSAGE Failed to get build target settings: default
!STACK 0
java.lang.Exception
at com.adobe.flexbuilder.project.internal.FlexProjectCore.createErrorSta tus(FlexProjectCore.java:1009)
at com.adobe.flexbuilder.util.logging.GlobalLogImpl.log(GlobalLogImpl.ja va:66)
at com.adobe.flexbuilder.util.logging.GlobalLog.log(GlobalLog.java:52)
at com.adobe.flexbuilder.project.ui.utils.ProjectBuildPackagingUI.doAppl ySettings(ProjectBuildPackagingUI.java:754)
at com.adobe.flexbuilder.project.ui.utils.ProjectBuildPackagingUI.applyS ettings(ProjectBuildPackagingUI.java:781)
at com.adobe.flexbuilder.exportimport.releaseversion.ui.ExportReleaseVer sionBuildPackagingPageContent.saveSettings(ExportReleaseVersionBuildPa ckagingPageContent.java:131)
at com.adobe.flexbuilder.exportimport.releaseversion.ui.ExportReleaseVer sionBuildPackagingPage.saveSettings(ExportReleaseVersionBuildPackaging Page.java:84)
at com.adobe.flexbuilder.exportimport.releaseversion.ui.ExportReleaseVer sionWizard.performFinish(ExportReleaseVersionWizard.java:144)
at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java :811)
at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java :430)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java: 234)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at com.adobe.flexbuilder.exportimport.releaseversion.ExportReleaseVersio nAction$1.run(ExportReleaseVersionAction.java:97)
at com.adobe.flexbuilder.exportimport.releaseversion.ExportReleaseVersio nAction.run(ExportReleaseVersionAction.java:103)
at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:2 51)
at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginActio n.java:229)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection (ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContri butionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionC ontributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.ja va:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.jav a:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at com.adobe.flexbuilder.standalone.FlashBuilderApplication.start(FlashB uilderApplication.java:108)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandl e.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runAppli cation(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Ec lipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja va:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja va:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
Update:
I have tried what J_A_X has recommended. Unfortunately none of those work. It seems to be a problem somewhere within the project settings. We have also tried running the export release build for this project on different machines with fresh installs of flash builder, but the same error message is produced every time. We've looked through so many settings it may come down to having to create a new project and copy all the code into the new application.
Although quite an old post I have just run into the same problem using Flash Builder 4.6. I am fairly new to Air/Flex/Flash etc so apologies in advance for any terminology errors! Still whilst trying to export my new project I did come across exactly the same error as you, and after a lot of searching on Google and starting to lose the will to live, tried Bing and found this link http://forums.adobe.com/thread/850398?start=0&tstart=0
When your Flash Builder project is closed edit the .actionScriptProperties file in Notepad and have a look for a buildTargets section - in my file this was simply <buildTargets/>. I replaced it with the snippet Sandeep had posted in the forum
<buildTargets>
<buildTarget buildTargetName="default">
<airSettings airCertificatePath="" airTimestamp="true" anePathSet="false" version="1">
<airExcludes/>
<anePaths/>
</airSettings>
<actionScriptSettings version="1"/>
</buildTarget>
</buildTargets>
To my delight it was then possible to export my application as a release build.
By the sounds of things from other forums, for your settings file to be in this state in the first place may be due to older versions of FB or in my case I'm pretty sure it is because I used AIRLaunchPad to create my project - which did seem like a good idea at the time. Anyway I hope this may help anyone in the same predicament!
I had a similar issue and solved it..
In Flash Builder, you have to right-click your project -> properties
Click "ActionScript Applications" in the left column
Click Add, and select your main document class, which would be specified in Flash
Professional
Look like an eclipse error. Try to restart eclipse and see if that helps. Might be that Flash Builder was mis-installed (which normally means you see other error) or that your memory settings are too low, you should check your eclipse.ini to increase memory.