Skip to content

Classes like "SentryEnvelope" and plenty of other things are marked as Internal, even though ITransport relies on them #4722

@Alexander-poolside

Description

@Alexander-poolside

Integration

sentry

Java Version

17

Version

8.21.1

Steps to Reproduce

  1. I can pass my own transport factory via options, in case I don't want to just send the Sentry events via http to DSN:
    public void setTransportFactory(@Nullable ITransportFactory transportFactory) {
    this.transportFactory =
    transportFactory != null ? transportFactory : NoOpTransportFactory.getInstance();
    }
  2. To do this, I have to implement the ITransport interface - https://github.com/getsentry/sentry-java/blob/main/sentry/src/main/java/io/sentry/transport/ITransport.java
  3. This interface defines a method send, and the first parameter is SentryEnvelope. Makes sense.
  4. https://github.com/getsentry/sentry-java/blob/main/sentry/src/main/java/io/sentry/SentryEnvelope.java#L14-L15 - it turns out SentryEnvelope is marked as Internal. Just as a lot of other things.

SentryEnvelopeHeader, SentryEnvelopeItem, SentryEvent is not, but SentryItemType is.

Expected Result

I can define my custom transport and override sending the events, as something supported by the API.

Actual Result

The relevant code is marked as Internal, making tools like intellij plugin compat verifier fail.

Here are some screenshots:

Image Image Image

Metadata

Metadata

Assignees

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions