annotation before is missing value for the attribute value - java

I normally don't experience problem with JUnit annotation. But somehow today, with my new install of Netbeans 7.2, I am experiencing the following error when I use the #Before annotation:
annotation before is missing value for the attribute value
Does anyone know how to fix this?
UPDATE
I am writing a mavenized web-app.
For the TestCase, when I try to import org.junit.Before the program instead imports org.aspectj.lang.annotation.Before

Are you still getting the same error even after adding junit dependency in pom.xml?
Check to see that you are importing the right library i.e.
import org.junit.Before;
instead of
import org.aspectj.lang.annotation.Before;

Are you declarig a dependency to an up to date JUnit Version?
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
You should be able to import the right class: org.junit.Before.

This is a pretty old question but for anyone tripping over this error in 2023 after switching to the new JUnit Jupiter or using the latest spring-boot-dependencies bom file (which automatically configures you for Jupiter unless you override it):
Note that as of Jupiter, the org.junit.Before annotation was replaced with the org.junit.jupiter.api.BeforeAll annotation.
Some helpful URL references for the API changes:
Nice rundown of API changes from Junit4 to Jupiter
Javadoc for Junit Jupiter

Related

How to exclude packages in Maven that uses the same attribute?

So, I am working with webservices using SOAP and Maven. This error - I think - is a warning instead because it let me run the application and the service just fine for now. Whenever I call any other package inside this module class it turns red. If I don't add packages the error disappears but I need jasperreports (strange, as the involved package got nothing to do with this)
I've followed this: Module reads package from both
Using the solution "implementation and excludes" does nothing. Probably because it is Gradle but I had to try restricting the xml transform using the suggested message.
I also tried Package 'com.example' reads package 'javafx.beans' from both 'javafx.base' and 'javafx.base' this.
I followed this guide as well. https://maven.apache.org/guides/mini/guide-multiple-modules.html
<dependency>
<groupId>sample.ProjectA</groupId>
<artifactId>Project-A</artifactId>
<version>1.0</version>
<scope>compile</scope>
<optional>true</optional> <!-- value will be true or false only -->
</dependency>
Making those package use optional does not help either.
Important note, using a different package I want to use the ERROR WILL CHANGE. I removed and added some so you can withness it. Check these:
In short, a Web Service dependency using some of the declared in the client as well. As mentioned, I went one by one until I found it.
Also, updating javax.xml version of the dependency was a necessary step in order to solve the problem.

Can not import #ApiParam or #ApiModelProperty annotation eventough Swagger is added as a Maven dependency

I am working on a project where we document our backend's API with Swagger. I would like to use annotation based configuration for Swagger. For my controller classes using #Tag, #Operation and #ApiResponses works just fine and they can be imported with the following statements:
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
However if I try to add either #ApiParam or #ApiModel to my code, I am unable to import them in any way.
In my POM.xml I added Swagger as the following dependency:
<!-- https://mvnrepository.com/artifact/io.swagger.core.v3/swagger-annotations -->
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId>
<version>2.1.11</version>
</dependency>
What is it that I am missing here? I tried following this Baeldung article and example code, however I could not get it to work. Thanks for the help!
The "problem" was that Springdoc is used and originally I made the assumption that Springfox or a plain Swagger 2 dependency is used, as it was not removed from the codebase.
To fix the issue, we just simply need to add the right dependency and use the new annotations, which are mapped to the old ones like explained here.

Swagger generated file uses mysterious import

I just generated code using Swagger.io with the OpenApi 3.0 spec. The code it produces doesn't compile. Once class has this seemingly crucial import:
import springfox.documentation.oas.annotations.EnableOpenApi;
But I get this error: package springfox.documentation.oas.annotations does not exist
I can't figure out what I need to add to my pom.xml file to make the import work. The maven repo at https://mvnrepository.com/ doesn't let me search for a specific class, which makes no sense.
I hope you have missed swagger oas dependency so you are getting package not exist error. Swagger oas available in the below maven repository.
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-oas</artifactId>
<version>3.0.0</version>
</dependency>

JUnit5: Trouble Finding AssertEquals

I've set up JUnit in IntelliJ IDEA and have a bunch of tests with nothing in them. When I run them, they all pass as expected. However, when I type "assertEquals", it shows up in red. When I hover over it, it says "Cannot resolve method."
I've googled around and it looks like I need to do:
import static org.junit.Assert.*;
However, when I start typing import static org.junit., the next options are "*", "jupiter", or "platform"...
For reference, here's what a sample test looks like in my IDE:
#org.junit.jupiter.api.Test
void isButton() {
assertEquals()
}
Any idea how to fix this?
Thanks!
The full path to Assertions class is:
org.junit.jupiter.api.Assertions.assertEquals
Ensure you have added Jupiter API to your dependencies:
Gradle:
dependencies {
testCompile("org.junit.jupiter:junit-jupiter-api:5.9.0")
}
Maven:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.9.0</version>
<scope>test</scope>
</dependency>
There is a nice guide for Intellij IDEA and JUnit 5.
Take a look at it: Using JUnit 5 in IntelliJ IDEA
Maven
Verify your dependency specified in your POM file. You should have following nested within your dependencies element.
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.4.0-RC1</version>
<scope>test</scope>
</dependency>
If calling the assertions outside of your test classes, in your regular app classes, drop the <scope>test</scope> element.
Example class
Here is an example trivial test.
package work.basil.example;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* Unit test for simple App.
*/
public class AppTest
{
/**
* Rigorous Test :-)
*/
#Test
public void shouldAnswerWithTrue()
{
assertTrue( true );
}
}
New junit-jupiter artifact
Note that as of 5.4.0 of JUnit, we can specify the new and very convenient single Maven artifact of junit-jupiter which in turn will supply 8 libraries to your project.

NoSuchMethodFound error: dependency error in GWTP. ResourceDelegate usage

I'm working in a GWTP + GAE project based on the CarStore example delviered by ArcBees. Maven dependencies are taken from that project too. My current version of GWTP is 1.5-SNAPSHOT.
The project compiles perfectly well. But when I run it, I'm stucked in this error:
[ERROR] Error injecting com.gwtplatform.dispatch.rest.delegates.client.ResourceDelegate<com.rmideas.sportbinder.shared.api.SessionResource>:
Unable to create or inherit binding: No #Inject or default constructor found for com.gwtplatform.dispatch.rest.delegates.client.ResourceDelegate<com.rmideas.sportbinder.shared.api.SessionResource>
The error refers to the ResourceDelegate declared in LoginPresenter. But i can´t find anything wrong in my code.
I analyzed the stacktrace and found this cause:
[INFO] Caused by: java.lang.NoSuchMethodError: com.gwtplatform.dispatch.rest.rebind.events.RegisterGinBindingEvent.postSingleton(Lcom/google/common/eventbus/EventBus;Lcom/gwtplatform/dispatch/rest/rebind/utils/ClassDefinition;Lcom/gwtplatform/dispatch/rest/rebind/utils/ClassDefinition;)
[INFO] at com.gwtplatform.dispatch.rest.delegates.rebind.DelegateGenerator.maybeRegisterGinBinding(DelegateGenerator.java:162)
This refers to a call between two Class objects. DelegateGenerator is the caller and is obtained from this dependency:
<dependency>
<groupId>com.gwtplatform.extensions</groupId>
<artifactId>dispatch-rest-delegates</artifactId>
<version>${gwtp.version}</version>
<scope>provided</scope>
</dependency>
And RegisterGinBindingEvent is the receiver. It belongs to here:
<dependency>
<groupId>com.gwtplatform</groupId>
<artifactId>gwtp-dispatch-rest</artifactId>
<version>${gwtp.version}</version>
<scope>provided</scope>
</dependency>
Now, this happens in line 162 of DelegateGenerator:
RegisterGinBindingEvent.postSingleton(eventBus, definition, getClassDefinition());
This shouldn't be a problem, but the key the eventBus sends as the first parameter is of a different type in both classes.
DelegateGenerator has this import statement:
import com.google.common.eventbus.EventBus;
And RegisterGinBindingEvent has this EventBus class:
import com.gwtplatform.dispatch.rest.rebind.utils.EventBus;
I guess that this is causing the problem. Both dependencies are using the same version (1.5-SNAPSHOT). If I downgrade the version to 1.4, this won´t happen. But it still has issues running ResourceDelegate with this code.
Does anyone know what am I be doing wrong? Or if this is a bug?
Thanks for using the snapshots.
For some reason the CI didn't deploy a snapshot for the last commits. This should now be fixed. Can you try another build? Add -U to your maven command line to make sure you grab the latest snapshot.

Categories