Closed elharo closed 5 years ago
Memo:
Running com.google.cloud.tools.opensource.classpath.ClasspathChecker
with
-a com.google.appengine:appengine-api-1.0-sdk:1.9.64
produces
appengine-api-1.0-sdk-1.9.64.jar (680 errors):
ClassSymbolReference{sourceClassName=com.google.appengine.api.appidentity.AppIdentityServicePb$SigningService$1, targetClassName=com.google.net.rpc3.client.RpcStubDescriptor, subclass=true}, reason: CLASS_NOT_FOUND, target class location not found, isReachable: true
ClassSymbolReference{sourceClassName=com.google.appengine.api.appidentity.AppIdentityServicePb$SigningService$BaseBlockingServerImpl, targetClassName=com.google.net.rpc3.RpcException, subclass=false}, reason: CLASS_NOT_FOUND, target class location not found, isReachable: true
ClassSymbolReference{sourceClassName=com.google.appengine.api.appidentity.AppIdentityServicePb$SigningService$BaseBlockingServerImpl, targetClassName=com.google.net.rpc3.impl.RpcUtil, subclass=false}, reason: CLASS_NOT_FOUND, target class location not found, isReachable: true
ClassSymbolReference{sourceClassName=com.google.appengine.api.appidentity.AppIdentityServicePb$SigningService$BaseServerImpl, targetClassName=com.google.net.rpc3.impl.RpcUtil, subclass=false}, reason: CLASS_NOT_FOUND, target class location not found, isReachable: true
ClassSymbolReference{sourceClassName=com.google.appengine.api.appidentity.AppIdentityServicePb$SigningService$BlockingServerInterface, targetClassName=com.google.net.rpc3.RpcException, subclass=false}, reason: CLASS_NOT_FOUND, target class location not found, isReachable: true
ClassSymbolReference{sourceClassName=com.google.appengine.api.appidentity.AppIdentityServicePb$SigningService$ClientInterface, targetClassName=com.google.net.rpc3.RpcException, subclass=false}, reason: CLASS_NOT_FOUND, target class location not found, isReachable: true
...
Before making change, entry point classes are all classes included in the jar file.
Excluded class example:
com.google.apphosting.api.ApiBasePb$BoolProto$1
com.google.apphosting.api.ApiProxy$EnvironmentFactory
com.google.cloud.sql.jdbc.CallableStatement
Here is list of package names in classes in appengine-api-1.0-sdk.jar
com.google.appengine.repackaged.com.google.api.client.json.jackson2
javax.mail.internet
com.google.appengine.repackaged.org.apache.commons.codec.digest
com.google.appengine.repackaged.com.google.protos.gdata.proto2api
com.google.appengine.api.backends
com.google.appengine.repackaged.com.google.common.collect
com.google.appengine.repackaged.com.google.protobuf.contrib.descriptor.pool
com.google.appengine.repackaged.com.google.protobuf.nano
com.google.appengine.repackaged.com.google.rpc
org.apache.geronimo.mail.handlers
com.google.appengine.repackaged.org.codehaus.jackson.format
com.google.appengine.repackaged.org.codehaus.jackson.io
com.google.appengine.repackaged.com.fasterxml.jackson.core.sym
com.google.appengine.repackaged.com.google.gson.annotations
com.google.appengine.api.users
com.google.appengine.repackaged.com.google.api.client.json.webtoken
com.google.appengine.repackaged.com.google.common.hash
com.google.appengine.api.socket.proto2api
com.google.appengine.repackaged.org.antlr.runtime.debug
com.google.apphosting.client.serviceapp
com.google.appengine.repackaged.com.google.protobuf.bridge
com.google.appengine.repackaged.com.google.common.flogger.backend.google
com.google.appengine.repackaged.com.google.api
com.google.appengine.repackaged.com.google.common.flags
com.google.appengine.repackaged.org.joda.time.format
com.google.appengine.api.blobstore.proto2api
com.google.appengine.repackaged.com.google.datastore.v1.client
com.google.appengine.api.prospectivesearch.proto2api
com.google.appengine.repackaged.com.google.common.flags.ext
com.google.appengine.repackaged.com.google.datastore.v1
com.google.appengine.api.capabilities
com.google.cloud.sql.jdbc.internal
com.google.appengine.repackaged.com.google.api.client.util.store
com.google.appengine.repackaged.com.google.common.flogger.parser
com.google.appengine.repackaged.com.google.storage.onestore.v3.proto2api
com.google.appengine.api.files
com.google.appengine.repackaged.com.google.protobuf.nano.proto1api
com.google.appengine.repackaged.com.google.common.math
com.google.appengine.repackaged.com.google.api.client.util
com.google.apphosting.base
com.google.appengine.repackaged.com.google.api.client.auth.openidconnect
com.google.appengine.repackaged.com.google.protobuf.downgraded
com.google.appengine.repackaged.com.google.common.flogger.parameter
com.google.appengine.api.mail
com.google.appengine.repackaged.org.apache.commons.codec.language.bm
com.google.appengine.repackaged.com.google.common.cache
com.google.appengine.repackaged.com.google.common.io
javax.cache
com.google.appengine.repackaged.org.joda.time.convert
javax.mail.event
com.google.appengine.repackaged.com.google.common.base.internal
com.google.appengine.repackaged.com.google.rpc.context
com.google.appengine.repackaged.com.google.common.net
com.google.appengine.tools.compilation
com.google.storage.onestore.v3
com.google.appengine.api.oauth
com.google.appengine.api.taskqueue
com.google.appengine.repackaged.com.google.gson
com.google.appengine.repackaged.org.apache.commons.codec.binary
com.google.appengine.repackaged.org.codehaus.jackson.annotate
com.google.appengine.api.mail.stdimpl
com.google.appengine.api.xmpp.proto2api
com.google.appengine.repackaged.com.google.io.protocol
com.google.apphosting.client.datastoreservice.app
com.google.appengine.api.prospectivesearch
com.google.appengine.repackaged.com.google.net.util.error
com.google.appengine.repackaged.org.joda.time
com.google.appengine.repackaged.com.google.api.client.protobuf
com.google.appengine.repackaged.com.fasterxml.jackson.core.format
com.google.appengine.api.search
javax.mail.util
com.google.appengine.repackaged.com.google.gaia.mint.proto2api
com.google.apphosting.api.source
com.google.appengine.repackaged.com.google.common.graph
com.google.appengine.api.log
com.google.apphosting.api.search
com.google.appengine.repackaged.org.apache.commons.codec.net
com.google.appengine.repackaged.com.google.common.base
com.google.appengine.spi
com.google.appengine.repackaged.com.fasterxml.jackson.core.base
com.google.appengine.repackaged
org.apache.geronimo.mail.util
com.google.appengine.api.internal
com.google.appengine.repackaged.com.google.api.client.googleapis
com.google.apphosting.api.logservice
com.google.appengine.api.xmpp
com.google.appengine.repackaged.com.google.common.flogger.backend
com.google.appengine.repackaged.com.fasterxml.jackson.core.util
com.google.appengine.repackaged.com.google.common.escape
com.google.appengine.api.mail.proto2api
com.google.appengine.repackaged.com.google.common.html
com.google.appengine.repackaged.com.google.api.client.json.jackson
com.google.appengine.repackaged.org.joda.time.tz
com.google.appengine.api.utils
com.google.appengine.repackaged.com.google.protobuf.contrib
com.google.appengine.repackaged.org.codehaus.jackson.sym
com.google.apphosting.utils.remoteapi
com.google.appengine.repackaged.com.google.api.client.http.protobuf
com.google.cloud.sql.jdbc
com.google.appengine.repackaged.com.google.api.client.googleapis.auth.oauth2
com.google.appengine.repackaged.com.google.common.flogger
com.google.appengine.api.quota
com.google.appengine.api.memcache
com.google.appengine.repackaged.com.google.type
com.google.appengine.repackaged.com.fasterxml.jackson.core.json
com.google.appengine.api.images
com.google.appengine.repackaged.com.google.api.client.googleapis.util
com.google.appengine.repackaged.com.google.protobuf
com.google.apphosting.api
com.google.appengine.repackaged.com.google.gson.stream
com.google.appengine.repackaged.org.codehaus.jackson.type
com.google.apphosting.datastore
com.google.apphosting.utils.servlet
com.google.appengine.repackaged.com.google.api.client.auth.oauth2
com.google.appengine.api.blobstore
com.google.appengine.repackaged.com.google.io.protocol.proto2
com.google.appengine.repackaged.com.google.gson.internal.bind
com.google.appengine.api.socket
com.google.appengine.repackaged.org.antlr.runtime.tree
com.google.appengine.repackaged.com.google.protobuf.contrib.htmlform
com.google.appengine.repackaged.com.fasterxml.jackson.core
com.google.appengine.repackaged.org.joda.time.field
com.google.appengine.repackaged.org.codehaus.jackson
com.google.storage.onestore
com.google.appengine.repackaged.com.google.io.protocol.proto.proto2api
com.google.appengine.repackaged.com.google.gson.internal
com.google.appengine.repackaged.com.google.type.proto1api
com.google.appengine.api.memcache.stdimpl
com.google.appengine.repackaged.com.google.api.client.http
com.google.appengine.repackaged.com.google.api.client.http.javanet
com.google.appengine.repackaged.com.google.api.client.http.json
com.google.appengine.repackaged.com.google.api.client.util.escape
com.google.appengine.repackaged.org.apache.commons.codec.language
com.google.appengine.repackaged.com.google.common.flogger.util
com.google.appengine.repackaged.com.google.common.xml
com.google.appengine.api.search.checkers
com.google.appengine.repackaged.org.joda.time.chrono
com.google.appengine.repackaged.com.google.io.protocol.proto
com.google.appengine.repackaged.com.google.common.flogger.backend.system
com.google.appengine.repackaged.com.fasterxml.jackson.core.type
com.google.protos.cloud.sql
com.google.appengine.repackaged.com.google.net.base
com.google.appengine.api.channel
com.google.appengine.repackaged.com.google.io.base.shell
com.google.appengine.api.appidentity
com.google.appengine.api.modules
com.google.appengine.repackaged.com.fasterxml.jackson.core.io
com.google.appengine.api.datastore
com.google.appengine.api.search.query
com.google.appengine.repackaged.com.google.api.client.extensions.appengine.http
javax.mail
com.google.appengine.repackaged.com.google.io.base
com.google.appengine.repackaged.org.codehaus.jackson.impl
com.google.appengine.repackaged.com.google.api.client.googleapis.compute
javax.mail.search
com.google.appengine.repackaged.com.google.api.client.json
com.google.apphosting.api.logservice.proto2api
com.google.appengine.repackaged.org.antlr.runtime
com.google.appengine.repackaged.org.apache.commons.codec
com.google.appengine.repackaged.com.google.common.primitives
com.google.appengine.api.rdbms
com.google.appengine.repackaged.org.joda.time.base
com.google.appengine.api
com.google.appengine.repackaged.com.google.gson.internal.bind.util
com.google.appengine.repackaged.com.google.api.client.googleapis.javanet
com.google.appengine.repackaged.com.google.protobuf.util
com.google.appengine.repackaged.com.google.protos.proto2.bridge
com.google.appengine.repackaged.com.google.protobuf.proto1api
com.google.apphosting.client.datastoreservice.proto
com.google.appengine.api.urlfetch
com.google.appengine.repackaged.com.google.appengine.api.search
com.google.appengine.repackaged.org.antlr.runtime.misc
com.google.appengine.repackaged.com.google.gson.reflect
com.google.appengine.repackaged.com.google.common.util.concurrent
com.google.appengine.repackaged.org.codehaus.jackson.util
com.google.appengine.tools.appstats
Investigation done
@suztomo Can we run a linkage check on appngine-api-1.0-sdk using everything in com.google.appengine as the entry points? That is, use a package as an entry point instead of a jar? I'd like to see what's reachable from there.
We might want to enhance the reachability to consider methods too. Let's talk later.