Use the final version and our own configuration
diff --git a/pom.xml b/pom.xml
index af4495f..8c97697 100644
--- a/pom.xml
+++ b/pom.xml
@@ -351,9 +351,9 @@
         </executions>
       </plugin>
       <plugin>
-        <groupId>org.tomitribe.transformer</groupId>
-        <artifactId>org.eclipse.transformer.maven</artifactId>
-        <version>0.3.0-SNAPSHOT</version>
+        <groupId>org.eclipse.transformer</groupId>
+        <artifactId>org.eclipse.transformer</artifactId>
+        <version>0.2.0</version>
         <executions>
           <execution>
             <goals>
@@ -362,6 +362,9 @@
             <phase>package</phase>
           </execution>
         </executions>
+        <configuration>
+          <direct>${project.basedir}/src/main/resources/org/eclipse/transformer/jakarta/jakarta-direct.properties</direct>
+        </configuration>
       </plugin>
       <plugin>
         <groupId>org.apache.tomee.patch</groupId>
diff --git a/src/main/resources/org/eclipse/transformer/jakarta/jakarta-direct.properties b/src/main/resources/org/eclipse/transformer/jakarta/jakarta-direct.properties
new file mode 100644
index 0000000..4c13838
--- /dev/null
+++ b/src/main/resources/org/eclipse/transformer/jakarta/jakarta-direct.properties
@@ -0,0 +1,219 @@
+# Default jakarta configuration for exact java string constant updates.
+#
+# Last update: 20-May-2020
+#
+# Format:
+# currentStringValue=newStringValue
+#
+# These properties are used to perform exact string constant updates to .class files.
+#
+# Matching is on entire, exact, string constants.
+#
+# Note: Package renames also update string constants in .class files.
+
+# No exact string updates are currently specified.
+http\://java.sun.com/xml/ns/persistence=https://jakarta.ee/xml/ns/persistence
+http\://java.sun.com/xml/ns/javaee=https://jakarta.ee/xml/ns/jakartaee
+http\://java.sun.com/xml/ns/persistence/orm=https://jakarta.ee/xml/ns/persistence/orm
+http\://java.sun.com/xml/ns/jaxb=https://jakarta.ee/xml/ns/jaxb
+
+javax.activation.addreverse=jakarta.activation.addreverse
+javax.activation.debug=jakarta.activation.debug
+javax.ejb.embeddable.appName=jakarta.ejb.embeddable.appName
+javax.ejb.embeddable.modules=jakarta.ejb.embeddable.modules
+javax.ejb.embeddable.provider=jakarta.ejb.embeddable.provider
+javax.enterprise.context.conversation=jakarta.enterprise.context.conversation
+javax.enterprise.inject.allowProxying.classes=jakarta.enterprise.inject.allowProxying.classes
+javax.enterprise.resource.webcontainer.jsf.=jakarta.enterprise.resource.webcontainer.jsf.
+javax.faces.behavior.Ajax=jakarta.faces.behavior.Ajax
+javax.faces.behavior.event=jakarta.faces.behavior.event
+javax.faces.contract.xml=jakarta.faces.contract.xml
+javax.faces.converter.BigDecimalConverter.DECIMAL=jakarta.faces.converter.BigDecimalConverter.DECIMAL
+javax.faces.converter.BigIntegerConverter.BIGINTEGER=jakarta.faces.converter.BigIntegerConverter.BIGINTEGER
+javax.faces.converter.BooleanConverter.BOOLEAN=jakarta.faces.converter.BooleanConverter.BOOLEAN
+javax.faces.converter.ByteConverter.BYTE=jakarta.faces.converter.ByteConverter.BYTE
+javax.faces.converter.CharacterConverter.CHARACTER=jakarta.faces.converter.CharacterConverter.CHARACTER
+javax.faces.converter.DateTimeConverter.DATE=jakarta.faces.converter.DateTimeConverter.DATE
+javax.faces.converter.DateTimeConverter.DATETIME=jakarta.faces.converter.DateTimeConverter.DATETIME
+javax.faces.converter.DateTimeConverter.TIME=jakarta.faces.converter.DateTimeConverter.TIME
+javax.faces.converter.DoubleConverter.DOUBLE=jakarta.faces.converter.DoubleConverter.DOUBLE
+javax.faces.converter.EnumConverter.ENUM=jakarta.faces.converter.EnumConverter.ENUM
+javax.faces.converter.EnumConverter.ENUM_NO_CLASS=jakarta.faces.converter.EnumConverter.ENUM_NO_CLASS
+javax.faces.converter.FloatConverter.FLOAT=jakarta.faces.converter.FloatConverter.FLOAT
+javax.faces.converter.IntegerConverter.INTEGER=jakarta.faces.converter.IntegerConverter.INTEGER
+javax.faces.converter.LongConverter.LONG=jakarta.faces.converter.LongConverter.LONG
+javax.faces.converter.NumberConverter.CURRENCY=jakarta.faces.converter.NumberConverter.CURRENCY
+javax.faces.converter.NumberConverter.NUMBER=jakarta.faces.converter.NumberConverter.NUMBER
+javax.faces.converter.NumberConverter.PATTERN=jakarta.faces.converter.NumberConverter.PATTERN
+javax.faces.converter.NumberConverter.PERCENT=jakarta.faces.converter.NumberConverter.PERCENT
+javax.faces.converter.ShortConverter.SHORT=jakarta.faces.converter.ShortConverter.SHORT
+javax.faces.converter.STRING=jakarta.faces.converter.STRING
+javax.faces.encodedURL=jakarta.faces.encodedURL
+javax.faces.ensureOverriddenInvocation=jakarta.faces.ensureOverriddenInvocation
+javax.faces.error.xhtml=jakarta.faces.error.xhtml
+javax.faces.partial.event=jakarta.faces.partial.event
+javax.faces.partial.execute=jakarta.faces.partial.execute
+javax.faces.partial.render=jakarta.faces.partial.render
+javax.faces.partial.resetValues=jakarta.faces.partial.resetValues
+javax.faces.passthrough.Element=jakarta.faces.passthrough.Element
+javax.faces.private.BEANS_VALIDATION_AVAILABLE=jakarta.faces.private.BEANS_VALIDATION_AVAILABLE
+javax.faces.request.charset=jakarta.faces.request.charset
+javax.faces.resource.localePrefix=jakarta.faces.resource.localePrefix
+javax.faces.resource.Script=jakarta.faces.resource.Script
+javax.faces.resource.Stylesheet=jakarta.faces.resource.Stylesheet
+javax.faces.source=jakarta.faces.source
+javax.faces.validator.beanValidator.ValidatorFactory=jakarta.faces.validator.beanValidator.ValidatorFactory
+javax.faces.visit.SKIP_ITERATION=jakarta.faces.visit.SKIP_ITERATION
+javax.persistence.bean.manager=jakarta.persistence.bean.manager
+javax.persistence.cache.retrieveMode=jakarta.persistence.cache.retrieveMode
+javax.persistence.cacheRetrieveMode=jakarta.persistence.cacheRetrieveMode
+javax.persistence.cache.storeMode=jakarta.persistence.cache.storeMode
+javax.persistence.cacheStoreMode=jakarta.persistence.cacheStoreMode
+javax.persistence.database-major-version=jakarta.persistence.database-major-version
+javax.persistence.database-minor-version=jakarta.persistence.database-minor-version
+javax.persistence.database-product-name=jakarta.persistence.database-product-name
+javax.persistence.dataSource=jakarta.persistence.dataSource
+javax.persistence.Embeddable=jakarta.persistence.Embeddable
+javax.persistence.Entity=jakarta.persistence.Entity
+javax.persistence.fetchgraph=jakarta.persistence.fetchgraph
+javax.persistence.jdbc.driver=jakarta.persistence.jdbc.driver
+javax.persistence.jdbc.password=jakarta.persistence.jdbc.password
+javax.persistence.jdbc.url=jakarta.persistence.jdbc.url
+javax.persistence.jdbc.user=jakarta.persistence.jdbc.user
+javax.persistence.jtaDataSource=jakarta.persistence.jtaDataSource
+javax.persistence.loadgraph=jakarta.persistence.loadgraph
+javax.persistence.lock=jakarta.persistence.lock
+javax.persistence.lock.scope=jakarta.persistence.lock.scope
+javax.persistence.lock.timeout=jakarta.persistence.lock.timeout
+javax.persistence.MappedSuperclass=jakarta.persistence.MappedSuperclass
+javax.persistence.nonJtaDataSource=jakarta.persistence.nonJtaDataSource
+javax.persistence.provider=jakarta.persistence.provider
+javax.persistence.query=jakarta.persistence.query
+javax.persistence.query.timeout=jakarta.persistence.query.timeout
+javax.persistence.schema-generation.connection=jakarta.persistence.schema-generation.connection
+javax.persistence.schema-generation.create-database-schemas=jakarta.persistence.schema-generation.create-database-schemas
+javax.persistence.schema-generation.create-script-source=jakarta.persistence.schema-generation.create-script-source
+javax.persistence.schema-generation.create-source=jakarta.persistence.schema-generation.create-source
+javax.persistence.schema-generation.database.action=jakarta.persistence.schema-generation.database.action
+javax.persistence.schema-generation.drop-script-source=jakarta.persistence.schema-generation.drop-script-source
+javax.persistence.schema-generation.drop-source=jakarta.persistence.schema-generation.drop-source
+javax.persistence.schema-generation.scripts.action=jakarta.persistence.schema-generation.scripts.action
+javax.persistence.schema-generation.scripts.create-target=jakarta.persistence.schema-generation.scripts.create-target
+javax.persistence.schema-generation.scripts.drop-target=jakarta.persistence.schema-generation.scripts.drop-target
+javax.persistence.sharedCache.mode=jakarta.persistence.sharedCache.mode
+javax.persistence.sql-load-script-source=jakarta.persistence.sql-load-script-source
+javax.persistence.transactionType=jakarta.persistence.transactionType
+javax.persistence.validation.factory=jakarta.persistence.validation.factory
+javax.persistence.validation.group.pre-persist=jakarta.persistence.validation.group.pre-persist
+javax.persistence.validation.group.pre-remove=jakarta.persistence.validation.group.pre-remove
+javax.persistence.validation.group.pre-update=jakarta.persistence.validation.group.pre-update
+javax.persistence.validation.mode=jakarta.persistence.validation.mode
+javax.security.jacc.policy.provider=jakarta.security.jacc.policy.provider
+javax.servlet.async.context_path=jakarta.servlet.async.context_path
+javax.servlet.async.mapping=jakarta.servlet.async.mapping
+javax.servlet.async.path_info=jakarta.servlet.async.path_info
+javax.servlet.async.query_string=jakarta.servlet.async.query_string
+javax.servlet.async.request_uri=jakarta.servlet.async.request_uri
+javax.servlet.async.servlet_path=jakarta.servlet.async.servlet_path
+javax.servlet.context.orderedLibs=jakarta.servlet.context.orderedLibs
+javax.servlet.context.tempdir=jakarta.servlet.context.tempdir
+javax.servlet.error.exception=jakarta.servlet.error.exception
+javax.servlet.error.exception_type=jakarta.servlet.error.exception_type
+javax.servlet.error.message=jakarta.servlet.error.message
+javax.servlet.error.request_uri=jakarta.servlet.error.request_uri
+javax.servlet.error.servlet_name=jakarta.servlet.error.servlet_name
+javax.servlet.error.status_code=jakarta.servlet.error.status_code
+javax.servlet.forward.context_path=jakarta.servlet.forward.context_path
+javax.servlet.forward.mapping=jakarta.servlet.forward.mapping
+javax.servlet.forward.path_info=jakarta.servlet.forward.path_info
+javax.servlet.forward.query_string=jakarta.servlet.forward.query_string
+javax.servlet.forward.request_uri=jakarta.servlet.forward.request_uri
+javax.servlet.forward.servlet_path=jakarta.servlet.forward.servlet_path
+javax.servlet.http.registerSession=jakarta.servlet.http.registerSession
+javax.servlet.include.context_path=jakarta.servlet.include.context_path
+javax.servlet.include.mapping=jakarta.servlet.include.mapping
+javax.servlet.include.path_info=jakarta.servlet.include.path_info
+javax.servlet.include.query_string=jakarta.servlet.include.query_string
+javax.servlet.include.request_uri=jakarta.servlet.include.request_uri
+javax.servlet.include.servlet_path=jakarta.servlet.include.servlet_path
+javax.servlet.jsp.functions.allowed=jakarta.servlet.jsp.functions.allowed
+javax.servlet.jsp.jspApplication=jakarta.servlet.jsp.jspApplication
+javax.servlet.jsp.jspConfig=jakarta.servlet.jsp.jspConfig
+javax.servlet.jsp.jspException=jakarta.servlet.jsp.jspException
+javax.servlet.jsp.jspOut=jakarta.servlet.jsp.jspOut
+javax.servlet.jsp.jspPage=jakarta.servlet.jsp.jspPage
+javax.servlet.jsp.jspPageContext=jakarta.servlet.jsp.jspPageContext
+javax.servlet.jsp.jspRequest=jakarta.servlet.jsp.jspRequest
+javax.servlet.jsp.jspResponse=jakarta.servlet.jsp.jspResponse
+javax.servlet.jsp.jspSession=jakarta.servlet.jsp.jspSession
+javax.servlet.jsp.jstl.fmt.fallbackLocale=jakarta.servlet.jsp.jstl.fmt.fallbackLocale
+javax.servlet.jsp.jstl.fmt.locale=jakarta.servlet.jsp.jstl.fmt.locale
+javax.servlet.jsp.jstl.fmt.localizationContext=jakarta.servlet.jsp.jstl.fmt.localizationContext
+javax.servlet.jsp.jstl.fmt.request.charset=jakarta.servlet.jsp.jstl.fmt.request.charset
+javax.servlet.jsp.jstl.fmt.timeZone=jakarta.servlet.jsp.jstl.fmt.timeZone
+javax.servlet.jsp.jstl.sql.dataSource=jakarta.servlet.jsp.jstl.sql.dataSource
+javax.servlet.jsp.jstl.sql.maxRows=jakarta.servlet.jsp.jstl.sql.maxRows
+javax.servlet.request.cipher_suite=jakarta.servlet.request.cipher_suite
+javax.servlet.request.key_size=jakarta.servlet.request.key_size
+javax.servlet.request.ssl_session=jakarta.servlet.request.ssl_session
+javax.servlet.request.ssl_session_id=jakarta.servlet.request.ssl_session_id
+javax.servlet.request.ssl_session_mgr=jakarta.servlet.request.ssl_session_mgr
+javax.servlet.request.X509Certificate=jakarta.servlet.request.X509Certificate
+javax.validation.constraint.=jakarta.validation.constraint.
+javax.xml.bind.context.factory=jakarta.xml.bind.context.factory
+javax.xml.bind.context.factory\=org.eclipse.persistence.jaxb.JAXBContextFactory=jakarta.xml.bind.context.factory\=org.eclipse.persistence.jaxb.JAXBContextFactory
+javax.xml.rpc.encodingstyle.namespace.uri=jakarta.xml.rpc.encodingstyle.namespace.uri
+javax.xml.rpc.security.auth.password=jakarta.xml.rpc.security.auth.password
+javax.xml.rpc.security.auth.username=jakarta.xml.rpc.security.auth.username
+javax.xml.rpc.service.endpoint.address=jakarta.xml.rpc.service.endpoint.address
+javax.xml.rpc.session.maintain=jakarta.xml.rpc.session.maintain
+javax.xml.rpc.soap.http.soapaction.uri=jakarta.xml.rpc.soap.http.soapaction.uri
+javax.xml.rpc.soap.http.soapaction.use=jakarta.xml.rpc.soap.http.soapaction.use
+javax.xml.rpc.soap.operation.style=jakarta.xml.rpc.soap.operation.style
+javax.xml.soap.character-set-encoding=jakarta.xml.soap.character-set-encoding
+javax.xml.soap.write-xml-declaration=jakarta.xml.soap.write-xml-declaration
+javax.xml.ws.addressing.context=jakarta.xml.ws.addressing.context
+javax.xml.ws.addressing.context.inbound=jakarta.xml.ws.addressing.context.inbound
+javax.xml.ws.addressing.context.outbound=jakarta.xml.ws.addressing.context.outbound
+javax.xml.ws.binding.attachments.inbound=jakarta.xml.ws.binding.attachments.inbound
+javax.xml.ws.binding.attachments.outbound=jakarta.xml.ws.binding.attachments.outbound
+javax.xml.ws.client.connectionTimeout=jakarta.xml.ws.client.connectionTimeout
+javax.xml.ws.client.receiveTimeout=jakarta.xml.ws.client.receiveTimeout
+javax.xml.ws.handler.message.outbound=jakarta.xml.ws.handler.message.outbound
+javax.xml.ws.http.request.headers=jakarta.xml.ws.http.request.headers
+javax.xml.ws.http.request.method=jakarta.xml.ws.http.request.method
+javax.xml.ws.http.request.pathinfo=jakarta.xml.ws.http.request.pathinfo
+javax.xml.ws.http.request.querystring=jakarta.xml.ws.http.request.querystring
+javax.xml.ws.http.response.code=jakarta.xml.ws.http.response.code
+javax.xml.ws.http.response.headers=jakarta.xml.ws.http.response.headers
+javax.xml.ws.reference.parameters=jakarta.xml.ws.reference.parameters
+javax.xml.ws.RespectBindingFeature=jakarta.xml.ws.RespectBindingFeature
+javax.xml.ws.security.auth.password=jakarta.xml.ws.security.auth.password
+javax.xml.ws.security.auth.username=jakarta.xml.ws.security.auth.username
+javax.xml.ws.service.endpoint.address=jakarta.xml.ws.service.endpoint.address
+javax.xml.ws.servlet.context=jakarta.xml.ws.servlet.context
+javax.xml.ws.servlet.request=jakarta.xml.ws.servlet.request
+javax.xml.ws.servlet.response=jakarta.xml.ws.servlet.response
+javax.xml.ws.session.maintain=jakarta.xml.ws.session.maintain
+javax.xml.ws.soap.http.soapaction.uri=jakarta.xml.ws.soap.http.soapaction.uri
+javax.xml.ws.soap.http.soapaction.use=jakarta.xml.ws.soap.http.soapaction.use
+javax.xml.ws.spi.http.request.cert.X509Certificate=jakarta.xml.ws.spi.http.request.cert.X509Certificate
+javax.xml.ws.spi.http.request.cipher.suite=jakarta.xml.ws.spi.http.request.cipher.suite
+javax.xml.ws.spi.http.request.key.size=jakarta.xml.ws.spi.http.request.key.size
+javax.xml.ws.wsdl.description=jakarta.xml.ws.wsdl.description
+javax.xml.ws.wsdl.interface=jakarta.xml.ws.wsdl.interface
+javax.xml.ws.wsdl.operation=jakarta.xml.ws.wsdl.operation
+javax.xml.ws.wsdl.port=jakarta.xml.ws.wsdl.port
+javax.xml.ws.wsdl.service=jakarta.xml.ws.wsdl.service
+
+
+(javax.servlet.jsp.tagext.SimpleTag)\ this\ ));=(jakarta.servlet.jsp.tagext.SimpleTag) this ));
+(javax.servlet.jsp.tagext.JspFragment=(jakarta.servlet.jsp.tagext.JspFragment
+(javax.servlet.jsp.tagext.JspFragment\ =(jakarta.servlet.jsp.tagext.JspFragment
+Servlet\ request\ does\ not\ contain\ X.509\ certificates\ in\ attribute\ javax.servlet.request.X509Certificate=Servlet request does not contain X.509 certificates in attribute jakarta.servlet.request.X509Certificate
+(javax.servlet.jsp.tagext.Tag)\ =(jakarta.servlet.jsp.tagext.Tag)
+(javax.servlet.jsp.tagext.SimpleTag)\ =(jakarta.servlet.jsp.tagext.SimpleTag)
+(\ int\ discriminator,\ javax.servlet.jsp.JspContext\ jspContext,\ javax.servlet.jsp.tagext.JspTag\ _jspx_parent,\ int[]\ _jspx_push_body_count\ )\ {=( int discriminator, jakarta.servlet.jsp.JspContext jspContext, jakarta.servlet.jsp.tagext.JspTag _jspx_parent, int[] _jspx_push_body_count ) {
+(\ javax.servlet.jsp.JspWriter\ out\ )\ =( jakarta.servlet.jsp.JspWriter out )
+File\ ({0})\ referenced\ by\ javax.servlet.context.tempdir\ attribute\ is\ null,\ or\ was\ is\ not\ a\ directory.\ \ Compression\ for\ {1}\ will\ be\ unavailable.=File ({0}) referenced by jakarta.servlet.context.tempdir attribute is null, or was is not a directory.  Compression for {1} will be unavailable.
+(final\ javax.servlet.http.HttpServletRequest\ request,\ final\ javax.servlet.http.HttpServletResponse\ response)=(final jakarta.servlet.http.HttpServletRequest request, final jakarta.servlet.http.HttpServletResponse response)