Giter Site home page Giter Site logo

unloggedio / unlogged-sdk Goto Github PK

View Code? Open in Web Editor NEW
142.0 2.0 14.0 5.65 MB

Unlogged SDK for recording code execution

Home Page: https://unlogged.io

License: MIT License

Shell 0.07% Java 99.09% Python 0.71% HTML 0.13%
assertions automated-testing debugging-tool java junit junit5 mocking mockito regression-testing test-automation

unlogged-sdk's Introduction

Record. Replay. Test.

Documentation · Bug Bounty · Maven · IntelliJ Plugin


Unlogged Java SDK

Unlogged Java SDK enabled recording of code execution in a binary format.

Replay these records using the Unlogged IntelliJ Plugin and generate junit test cases.

The recording is highly detailed and can be used to reconstruct the code execution from scratch. The binary format descriptions are available in Kaitai format here

  • 🎬 Execute Java methods in your process right from your IDE
  • 🖥️ Replay one or all recorded executions and see the differences in response in real time
  • 🎯 Setup assertions on individual keys in response objects
  • 🎭 Mock downstream calls as easily as setting up a breakpoint
  • 🩺 Identify bottlenecks in your code with perf numbers right above the method declaration
  • 🦠 Create JUnit test cases from recorded executions

Additional Screenshots

🎬 Direct Invoke Direct Invoke Java methods
🖥️ Replay Replay history of code execution
🎭 Mocking Mock downstream calls
🎯 Assertions Assertions in regression tests
🦠 JUnit Test case Generate junit test cases

Usage

  1. Include dependency

Maven

<dependencies>
    <dependency>
        <groupId>video.bug</groupId>
        <artifactId>unlogged-java-sdk</artifactId>
        <version>0.2.16</version>
    </dependency>
</dependencies>

Gradle

dependencies
{
    implementation 'video.bug:unlogged-sdk:0.2.16'
    annotationProcessor 'video.bug:unlogged-sdk:0.2.16'
}
  1. Add @Unlogged annotation to your application entry point
public class Main {
    @Unlogged
    public static void main(String[] args) {
        // 
    }
}

Disabling unlogged-sdk

It is highly recommended that you disable the unlogged-sdk when deploying for usage. unlogged-sdk is only targetted for local usage only.

Adding the unlogged-sdk adds probes to your code which emits events in a binary format. Adding the @Unlogged enabled to actual execution of those probes.

To disable at compile time

mvn package -Dunlogged.disable

or

./gradlew build -Dunlogged.disable

To disable at runtime (if not disabled at compile time)

@Unlogged(enable = false)

You can find the latest release version here: https://mvnrepository.com/artifact/video.bug/unlogged-sdk

Contributing

We welcome all contributions! There's many ways to contribute to the project, including but not limited to:

unlogged-sdk's People

Contributors

artpar avatar banan314 avatar bharathkalyans avatar kartikeytewari-ul avatar shardullavekar avatar theamg 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

unlogged-sdk's Issues

java.lang.NullPointerException: Cannot invoke "com.intellij.psi.PsiClass.getQualifiedName()" because "this.currentClass" is null

Plugin 1.18.16-e1f0ea43

Every few seconds

java.lang.NullPointerException: Cannot invoke "com.intellij.psi.PsiClass.getQualifiedName()" because "this.currentClass" is null
	at com.insidious.plugin.inlay.InsidiousInlayHintsCollector.collect(InsidiousInlayHintsCollector.java:79)
	at com.intellij.codeInsight.hints.CollectorWithSettings.collectHints(InlayHintsUtils.kt:91)
	at com.intellij.codeInsight.hints.InlayHintsPass.doCollectInformation$lambda$1(InlayHintsPass.kt:60)
	at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:139)
	at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:152)
	at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:152)
	at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:152)
	at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:152)
	at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:152)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1075)
	at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:96)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:610)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:685)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:641)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:609)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:78)
	at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:108)
	at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:89)
	at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:754)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

refactor: Refactoring of the code base

  • Codebase contains a lot of warnings and redundant code.
    Eg.The below code can have a private constructor, so an object can't be created.
public class Constants {
    public static final String AGENT_VERSION = "1.0.1";
}

I am unable to observe the "Failing Case Gutter Icon" after implementing the recent code changes

Describe the bug

After introducing modifications to the code, when the output differs from the previous version, the plugin is expected to seek confirmation before proceeding. However, the issue lies in the fact that only the passing case gutter is appearing, whereas the failing case gutter is not being displayed as anticipated.

Please refer the below attachment for issue screenshots.

[issues.pdf] (https://github.com/unloggedio/unlogged-sdk/files/13860855/issues.pdf)

Reproduction steps

1.Install Unlogged plugin in Intellij IDEA and add unlogged dependency based on your Java version.
2.Add Unlogged annotation above your main method of your project.
3.Run "mvn clean" command and start your application.
4.Click on blue icon gutter to execute the method.
5.The gutter will now turn pink, indicating that methods are now able to record.
6.Make required changes to the method, and the gutter will now display a bolt icon.
7.To verify the differences, click the bolt icon gutter; the gutter should now display the failed case symbol gutter. But this gutter is hidden from us; without the developer's confirmation, it rapidly transforms into a passing case gutter.
...

Expected behavior

After introducing modifications to the code, when the output differs from the previous version, the plugin is expected to seek confirmation before proceeding.

Additional context

When the result differs from the previous version after making changes to the code, the plugin is intended to seek confirmation from the developer by displaying failed case gutter before proceeding to passing case gutter.

Functional Issue of "Save Replay" button

Describe the bug

The "save replay" button in the service class of certain spring boot projects is malfunctioning, preventing the visibility of assertion and mock data operations.

Kindly refer the below attached pdf.

issues screenshots.pdf

Reproduction steps

  1. Install Unlogged plugin in Intellij IDEA and add unlogged dependency based on your Java version.
    2.Add Unlogged annotation above your main method of your project.
    3.Run "mvn clean" command and start your application.
    4.Click 'Save Replay' button of unlogged tab from your service class of spring boot project
  2. I am unable to locate the assertion and mock data tab, indicating that the button was unable to carry out its intended function.

Expected behavior

When invoking the "save replay" button within the service class of specific Spring Boot projects, it is imperative that the functionality operates seamlessly without any malfunctions. This ensures the smooth execution of tasks and prevents any disruptions that might hinder the visibility of assertion and mock data operations. The proper functioning of this button is crucial to maintain the integrity of the application, allowing for the accurate recording and storage of replay data while facilitating a clear and unobstructed view of assertion and mock data manipulations.

Additional context

No response

Build Issues from Spring Boot JDK 19

I tried Unlogged SDK from a Basic Spring Boot Project. I got below issue

Steps:

Expected Result:

Build should run successfully

Actual Result

I get Build Error

Supported source version 'RELEASE_6' from annotation processor 'io.unlogged.launch.AnnotationProcessor' less than -source '19

While Creating JUnit Boilerplate facing SQLiteException

Describe the bug

I was trying to generate Unit test cases by clicking Create JUnit Boilerplate

org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (no such table: method_call)
	at org.sqlite.core.DB.newSQLException(DB.java:1135)
	at org.sqlite.core.DB.newSQLException(DB.java:1146)
	at org.sqlite.core.DB.throwex(DB.java:1106)
	at org.sqlite.core.NativeDB.prepare_utf8(Native Method)
	at org.sqlite.core.NativeDB.prepare(NativeDB.java:122)
	at org.sqlite.core.DB.prepare(DB.java:264)
	at org.sqlite.core.CorePreparedStatement.<init>(CorePreparedStatement.java:46)
	at org.sqlite.jdbc3.JDBC3PreparedStatement.<init>(JDBC3PreparedStatement.java:31)
	at org.sqlite.jdbc4.JDBC4PreparedStatement.<init>(JDBC4PreparedStatement.java:25)
	at org.sqlite.jdbc4.JDBC4Connection.prepareStatement(JDBC4Connection.java:34)
	at org.sqlite.jdbc3.JDBC3Connection.prepareStatement(JDBC3Connection.java:226)
	at com.j256.ormlite.jdbc.JdbcDatabaseConnection.compileStatement(JdbcDatabaseConnection.java:143)
	at com.j256.ormlite.stmt.mapped.MappedPreparedStmt.compile(MappedPreparedStmt.java:57)
	at com.j256.ormlite.stmt.StatementExecutor.buildIterator(StatementExecutor.java:252)
	at com.j256.ormlite.stmt.StatementExecutor.query(StatementExecutor.java:202)
	at com.j256.ormlite.dao.BaseDaoImpl.query(BaseDaoImpl.java:286)
	at com.j256.ormlite.stmt.QueryBuilder.query(QueryBuilder.java:384)
	at com.j256.ormlite.stmt.Where.query(Where.java:519)
	at com.insidious.plugin.client.DaoService.getConstructorCandidate(DaoService.java:1196)
	at com.insidious.plugin.client.SessionInstance.getConstructorCandidate(SessionInstance.java:3812)
	at com.insidious.plugin.factory.testcase.TestCaseService.buildTestCaseUnit(TestCaseService.java:187)
	at com.insidious.plugin.factory.InsidiousService.getTestCandidateCode(InsidiousService.java:379)
	at com.insidious.plugin.ui.testdesigner.TestCaseDesignerLite.generateAndPreviewTestCase(TestCaseDesignerLite.java:426)
	at com.insidious.plugin.ui.testdesigner.TestCaseDesignerLite.<init>(TestCaseDesignerLite.java:279)
	at com.insidious.plugin.factory.InsidiousService.showDesignerLiteForm(InsidiousService.java:1378)
	at com.insidious.plugin.ui.methodscope.MethodDirectInvokeComponent.lambda$new$3(MethodDirectInvokeComponent.java:121)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6657)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3385)
	at java.desktop/java.awt.Component.processEvent(Component.java:6422)
	at java.desktop/java.awt.Container.processEvent(Container.java:2266)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5027)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4855)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4954)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4581)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4522)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2808)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4855)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:794)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:733)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:766)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:764)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:763)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:690)
	at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.kt:638)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:592)
	at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:67)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:369)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:368)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:368)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:363)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:997)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:997)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:363)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:861)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:405)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

Reproduction steps

  1. I am using Spring Boot and Java 17
  2. Install plugin and added required dependencies and plugin (v 0.1.48)
  3. Select method and move to Direct Invoke section
  4. Click on Create Junit Boilerplate
    ...

Expected behavior

It should preview for Unit test cases and then I will be able to save it.

Additional context

No response

Unlogged recording on a remote server

Describe the bug

Following an error in the logs and inspecting source code, I discovered an upload feature in NetworkClient.
Apparently you can configure a server url where logs of your sessions will be uploaded.
The bug is in the documentation for not explaining how to use that.

Here is the error I saw:

[unlogged] failed to upload file: /home/myuser/.unlogged/sessions/selogger-output-20240124-155327969/index-00072-1706108307400.zip (No such file or directory)

Reproduction steps

n/a

Expected behavior

Documentation for the feature is present

Additional context

No response

Emacs plugin

Great app!
Is that possible to advertise it on IRC librechat server and channel #emacs
asking any lisper to write a package for emacs?
Also, telegram has a official channel for emacs...

java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because the return value of "com.insidious.plugin.pojo.Parameter.getType()" is null

Stack trace

java.lang.NullPointerException: Cannot invoke "String.startsWith(String)" because the return value of "com.insidious.plugin.pojo.Parameter.getType()" is null
	at com.insidious.plugin.factory.testcase.TestCaseService.createFieldMocks(TestCaseService.java:319)
	at com.insidious.plugin.factory.testcase.TestCaseService.buildTestCaseUnit(TestCaseService.java:197)
	at com.insidious.plugin.factory.InsidiousService.getTestCandidateCode(InsidiousService.java:256)
	at com.insidious.plugin.ui.testdesigner.TestCaseDesigner.generateAndPreviewTestCase(TestCaseDesigner.java:428)
	at com.insidious.plugin.factory.InsidiousService.previewTestCase(InsidiousService.java:287)
	at com.insidious.plugin.ui.methodscope.MethodExecutorComponent.onGenerateJunitTestCaseRequest(MethodExecutorComponent.java:803)
	at com.insidious.plugin.ui.methodscope.TestCandidateListedItemComponent$2.mouseClicked(TestCandidateListedItemComponent.java:98)
	at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:278)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6659)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3385)
	at java.desktop/java.awt.Component.processEvent(Component.java:6421)
	at java.desktop/java.awt.Container.processEvent(Container.java:2266)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5026)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4584)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2804)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:790)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:731)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:763)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:761)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:760)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:666)
	at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.kt:614)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:569)
	at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:68)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:349)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:348)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:348)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:343)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:994)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:994)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$4(IdeEventQueue.kt:343)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:385)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

io.unlogged or video.bug in maven dependency?

Using the dependency from the README in pom.xml I get an error

   <dependency>
        <groupId>io.unlogged</groupId>
        <artifactId>unlogged-java-sdk</artifactId>
        <version>0.1.9</version>
    </dependency>
[WARNING] Failed to download unlogged-sdk-0.1.9.pom [https://mvnrepository.com/artifact/]
[WARNING] Failed to download unlogged-sdk-0.1.9.pom [https://repo.spring.io/milestone/]
Cannot resolve io.unlogged:unlogged-sdk:0.1.9

According to Maven Cetnral it should be video.bug group ID and then I don't have a problem
https://mvnrepository.com/artifact/video.bug/unlogged-sdk/0.1.9.

JVM agent / Eclipse Plugin

I know time and resources are limited and open source means "you fix it", so first I wanted to say thank you anyway for this excellent piece of software. Took it for a small test drive, but I'm not a day-to-day IntelliJ user.

Someday hoping an Eclipse plugin is created :)

What would be super duper cool though is to have this run as a generic JVM Agent somehow, and connect to the JVM using a browser for instrumentation selection and recording. OR have this be trigger-able via JMX.

Thank you!

Unlogged doesn't support multiple projects at a time.

Describe the bug

Unlogged's capabilities is limited to processing a single project concurrently, it does not support several projects concurrently. This limitation implies that when using Unlogged, users must focus on only one project at a time.

please refer the below link for the attached pdf.

issue screenshot.pdf

Reproduction steps

  1. Install Unlogged plugin in Intellij IDEA and add unlogged dependency based on your Java version.
  2. Add Unlogged annotation above your main method of your project.
  3. Run "mvn clean" command and start your application.
  4. Create or have multiple projects ready for processing.
  5. Attempt to Work on Multiple Projects Concurrently.
  6. Note that Unlogged does not allow concurrent processing of multiple projects.

Expected behavior

It should be able to handle multiple projects at the same time. so that when utilizing Unlogged, this flexibility allows users to work on numerous projects concurrently, removing the need to focus on only one project at a time.

Additional context

No response

Min JDK Upgrade from JDK 8 to 17

We have dependencies with deprecated packages com.sun.tools. This is due to our intent to support JDK 8.

Considering that our actual target is Spring Boot. And Spring Boot Min version is JDK 17, Most of the enterprises started to upgrade now.

If This SDK is updated we can gain natural performance from JDK 17 also cleanup the deprecated code

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.