Merge pull request #45692 from caesarxuchao/limit-client-go-package-import-2

Automatic merge from submit-queue (batch tested with PRs 44748, 45692)

Limiting client go packages visibility, round 3

Continue the work in the merged PR https://github.com/kubernetes/kubernetes/pull/45258

These packages in client-go will be gone after #44065 is fixed:
pkg/api/helper, pkg/api/util, internal version of api groups, API install packages. 

This PR removes the dependency on these packages and add bazel visibility rules to prevent relapse.
This commit is contained in:
Kubernetes Submit Queue 2017-05-12 16:04:37 -07:00 committed by GitHub
commit abaffb243e
48 changed files with 73 additions and 52 deletions

View File

@ -29,6 +29,7 @@ go_library(
"//pkg/proxy/iptables:go_default_library",
"//pkg/proxy/userspace:go_default_library",
"//pkg/proxy/winuserspace:go_default_library",
"//pkg/util:go_default_library",
"//pkg/util/configz:go_default_library",
"//pkg/util/dbus:go_default_library",
"//pkg/util/exec:go_default_library",
@ -52,7 +53,6 @@ go_library(
"//vendor/k8s.io/client-go/kubernetes:go_default_library",
"//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library",
"//vendor/k8s.io/client-go/pkg/api/v1:go_default_library",
"//vendor/k8s.io/client-go/pkg/util:go_default_library",
"//vendor/k8s.io/client-go/tools/clientcmd:go_default_library",
"//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library",
"//vendor/k8s.io/client-go/tools/record:go_default_library",

View File

@ -38,7 +38,6 @@ import (
clientgoclientset "k8s.io/client-go/kubernetes"
v1core "k8s.io/client-go/kubernetes/typed/core/v1"
clientv1 "k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/pkg/util"
"k8s.io/client-go/tools/clientcmd"
clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
"k8s.io/client-go/tools/record"
@ -55,6 +54,7 @@ import (
"k8s.io/kubernetes/pkg/proxy/iptables"
"k8s.io/kubernetes/pkg/proxy/userspace"
"k8s.io/kubernetes/pkg/proxy/winuserspace"
"k8s.io/kubernetes/pkg/util"
"k8s.io/kubernetes/pkg/util/configz"
utildbus "k8s.io/kubernetes/pkg/util/dbus"
"k8s.io/kubernetes/pkg/util/exec"

View File

@ -37,7 +37,6 @@ go_test(
"//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/remotecommand:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/watch:go_default_library",
"//vendor/k8s.io/client-go/pkg/api/install:go_default_library",
"//vendor/k8s.io/client-go/rest:go_default_library",
"//vendor/k8s.io/client-go/tools/cache:go_default_library",
"//vendor/k8s.io/client-go/tools/portforward:go_default_library",

View File

@ -23,7 +23,6 @@ import (
"k8s.io/kubernetes/pkg/api"
clientsetfake "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake"
_ "k8s.io/client-go/pkg/api/install"
_ "k8s.io/kubernetes/pkg/api/install"
)

View File

@ -82,7 +82,7 @@ go_test(
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library",
"//vendor/k8s.io/client-go/pkg/apis/extensions:go_default_library",
"//vendor/k8s.io/client-go/pkg/apis/extensions/v1beta1:go_default_library",
"//vendor/k8s.io/client-go/rest:go_default_library",
"//vendor/k8s.io/client-go/tools/cache:go_default_library",
"//vendor/k8s.io/client-go/tools/record:go_default_library",

View File

@ -21,13 +21,13 @@ go_test(
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/api/helper:go_default_library",
"//pkg/bootstrap/api:go_default_library",
"//vendor/github.com/davecgh/go-spew/spew:go_default_library",
"//vendor/github.com/stretchr/testify/assert:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//vendor/k8s.io/client-go/kubernetes/fake:go_default_library",
"//vendor/k8s.io/client-go/pkg/api/helper:go_default_library",
"//vendor/k8s.io/client-go/pkg/api/v1:go_default_library",
"//vendor/k8s.io/client-go/testing:go_default_library",
],

View File

@ -22,9 +22,9 @@ import (
"github.com/davecgh/go-spew/spew"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/pkg/api/helper"
"k8s.io/client-go/pkg/api/v1"
core "k8s.io/client-go/testing"
"k8s.io/kubernetes/pkg/api/helper"
bootstrapapi "k8s.io/kubernetes/pkg/bootstrap/api"
)

View File

@ -24,7 +24,7 @@ import (
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/pkg/apis/extensions"
"k8s.io/client-go/pkg/apis/extensions/v1beta1"
"k8s.io/kubernetes/pkg/api/v1"
)
@ -37,7 +37,7 @@ var (
)
func newControllerRef(controller metav1.Object) *metav1.OwnerReference {
var controllerKind = extensions.SchemeGroupVersion.WithKind("Fake")
var controllerKind = v1beta1.SchemeGroupVersion.WithKind("Fake")
blockOwnerDeletion := true
isController := true
return &metav1.OwnerReference{

View File

@ -55,9 +55,7 @@ go_test(
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//vendor/k8s.io/client-go/pkg/api/install:go_default_library",
"//vendor/k8s.io/client-go/pkg/api/v1:go_default_library",
"//vendor/k8s.io/client-go/pkg/apis/extensions/install:go_default_library",
"//vendor/k8s.io/client-go/rest:go_default_library",
"//vendor/k8s.io/client-go/testing:go_default_library",
"//vendor/k8s.io/heapster/metrics/api/v1/types:go_default_library",

View File

@ -38,10 +38,6 @@ import (
metricsapi "k8s.io/metrics/pkg/apis/metrics/v1alpha1"
"github.com/stretchr/testify/assert"
// we need the API types for rest mapping lookup
_ "k8s.io/client-go/pkg/api/install"
_ "k8s.io/client-go/pkg/apis/extensions/install"
)
type restClientTestCase struct {

View File

@ -26,8 +26,8 @@ go_test(
"//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library",
"//vendor/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters:go_default_library",
"//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library",
"//vendor/k8s.io/client-go/pkg/apis/authentication:go_default_library",
"//vendor/k8s.io/client-go/pkg/apis/batch:go_default_library",
"//vendor/k8s.io/client-go/pkg/apis/authentication/v1:go_default_library",
"//vendor/k8s.io/client-go/pkg/apis/batch/v1:go_default_library",
],
)
@ -55,7 +55,6 @@ go_library(
"//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library",
"//vendor/k8s.io/apiserver/pkg/server/httplog:go_default_library",
"//vendor/k8s.io/client-go/pkg/api/v1:go_default_library",
"//vendor/k8s.io/client-go/pkg/apis/authentication:go_default_library",
"//vendor/k8s.io/client-go/pkg/apis/authentication/v1:go_default_library",
],
)

View File

@ -32,7 +32,7 @@ import (
utilnet "k8s.io/apimachinery/pkg/util/net"
"k8s.io/apiserver/pkg/endpoints/handlers/responsewriters"
"k8s.io/apiserver/pkg/endpoints/request"
authenticationapi "k8s.io/client-go/pkg/apis/authentication"
authenticationapi "k8s.io/client-go/pkg/apis/authentication/v1"
)
var _ http.ResponseWriter = &auditResponseWriter{}

View File

@ -26,7 +26,7 @@ import (
"k8s.io/apiserver/pkg/authorization/authorizer"
"k8s.io/apiserver/pkg/endpoints/handlers/responsewriters"
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/client-go/pkg/apis/batch"
batch "k8s.io/client-go/pkg/apis/batch/v1"
)
func TestGetAuthorizerAttributes(t *testing.T) {

View File

@ -27,7 +27,7 @@ import (
"k8s.io/apiserver/pkg/authentication/user"
"k8s.io/apiserver/pkg/authorization/authorizer"
"k8s.io/apiserver/pkg/endpoints/request"
authenticationapi "k8s.io/client-go/pkg/apis/authentication"
authenticationapi "k8s.io/client-go/pkg/apis/authentication/v1"
)
type impersonateAuthorizer struct{}

View File

@ -28,7 +28,6 @@ go_test(
"//vendor/k8s.io/apiserver/pkg/apis/example/v1:go_default_library",
"//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library",
"//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library",
"//vendor/k8s.io/client-go/pkg/api/install:go_default_library",
],
)

View File

@ -39,9 +39,6 @@ import (
examplev1 "k8s.io/apiserver/pkg/apis/example/v1"
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/apiserver/pkg/registry/rest"
// need to register pods
_ "k8s.io/client-go/pkg/api/install"
)
var (

View File

@ -34,7 +34,6 @@ go_test(
"//vendor/k8s.io/apiserver/pkg/storage/etcd/etcdtest:go_default_library",
"//vendor/k8s.io/apiserver/pkg/storage/etcd/testing:go_default_library",
"//vendor/k8s.io/apiserver/pkg/storage/etcd3:go_default_library",
"//vendor/k8s.io/client-go/pkg/api/install:go_default_library",
],
)
@ -42,8 +41,5 @@ go_library(
name = "go_default_library",
srcs = ["utils.go"],
tags = ["automanaged"],
deps = [
"//vendor/k8s.io/apiserver/pkg/apis/example:go_default_library",
"//vendor/k8s.io/client-go/pkg/api/install:go_default_library",
],
deps = ["//vendor/k8s.io/apiserver/pkg/apis/example:go_default_library"],
)

View File

@ -46,7 +46,6 @@ import (
"golang.org/x/net/context"
"k8s.io/apimachinery/pkg/runtime/serializer"
_ "k8s.io/client-go/pkg/api/install"
)
var (

View File

@ -18,8 +18,6 @@ package tests
import (
"k8s.io/apiserver/pkg/apis/example"
_ "k8s.io/client-go/pkg/api/install"
)
func DeepEqualSafePodSpec() example.PodSpec {

View File

@ -39,7 +39,6 @@ go_library(
"//vendor/k8s.io/apiserver/pkg/util/webhook:go_default_library",
"//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library",
"//vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1:go_default_library",
"//vendor/k8s.io/client-go/pkg/apis/authorization/install:go_default_library",
"//vendor/k8s.io/client-go/pkg/apis/authorization/v1beta1:go_default_library",
],
)

View File

@ -32,8 +32,6 @@ import (
"k8s.io/client-go/kubernetes/scheme"
authorizationclient "k8s.io/client-go/kubernetes/typed/authorization/v1beta1"
authorization "k8s.io/client-go/pkg/apis/authorization/v1beta1"
_ "k8s.io/client-go/pkg/apis/authorization/install"
)
var (

View File

@ -12,9 +12,7 @@ go_library(
name = "go_default_library",
srcs = ["helpers.go"],
tags = ["automanaged"],
visibility = [
"//pkg/controller/bootstrap:__subpackages__",
],
visibility = ["//visibility:private"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",

View File

@ -11,13 +11,7 @@ go_library(
name = "go_default_library",
srcs = ["install.go"],
tags = ["automanaged"],
visibility = [
"//pkg/client/tests:__subpackages__",
"//pkg/controller/podautoscaler/metrics:__subpackages__",
"//vendor/k8s.io/apiserver/pkg/endpoints/handlers:__subpackages__",
"//vendor/k8s.io/apiserver/pkg/storage/tests:__subpackages__",
"//vendor/k8s.io/client-go/kubernetes/fake:__subpackages__",
],
visibility = ["//visibility:private"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",

View File

@ -16,6 +16,10 @@ go_library(
"zz_generated.deepcopy.go",
],
tags = ["automanaged"],
visibility = [
"//vendor/k8s.io/client-go/pkg/api/v1:__pkg__",
"//vendor/k8s.io/client-go/pkg/apis:__subpackages__",
],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library",

View File

@ -11,6 +11,7 @@ go_library(
name = "go_default_library",
srcs = ["install.go"],
tags = ["automanaged"],
visibility = ["//visibility:private"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",

View File

@ -16,6 +16,10 @@ go_library(
"zz_generated.deepcopy.go",
],
tags = ["automanaged"],
visibility = [
"//vendor/k8s.io/client-go/pkg/api/v1:__pkg__",
"//vendor/k8s.io/client-go/pkg/apis:__subpackages__",
],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library",

View File

@ -11,6 +11,7 @@ go_library(
name = "go_default_library",
srcs = ["install.go"],
tags = ["automanaged"],
visibility = ["//visibility:private"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",

View File

@ -16,6 +16,10 @@ go_library(
"zz_generated.deepcopy.go",
],
tags = ["automanaged"],
visibility = [
"//vendor/k8s.io/client-go/pkg/api/v1:__pkg__",
"//vendor/k8s.io/client-go/pkg/apis:__subpackages__",
],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library",

View File

@ -11,6 +11,7 @@ go_library(
name = "go_default_library",
srcs = ["install.go"],
tags = ["automanaged"],
visibility = ["//visibility:private"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",

View File

@ -17,6 +17,10 @@ go_library(
"zz_generated.deepcopy.go",
],
tags = ["automanaged"],
visibility = [
"//vendor/k8s.io/client-go/pkg/api/v1:__pkg__",
"//vendor/k8s.io/client-go/pkg/apis:__subpackages__",
],
deps = [
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",

View File

@ -11,6 +11,7 @@ go_library(
name = "go_default_library",
srcs = ["install.go"],
tags = ["automanaged"],
visibility = ["//visibility:private"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",

View File

@ -16,6 +16,10 @@ go_library(
"zz_generated.deepcopy.go",
],
tags = ["automanaged"],
visibility = [
"//vendor/k8s.io/client-go/pkg/api/v1:__pkg__",
"//vendor/k8s.io/client-go/pkg/apis:__subpackages__",
],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library",

View File

@ -11,6 +11,7 @@ go_library(
name = "go_default_library",
srcs = ["install.go"],
tags = ["automanaged"],
visibility = ["//visibility:private"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",

View File

@ -17,6 +17,10 @@ go_library(
"zz_generated.deepcopy.go",
],
tags = ["automanaged"],
visibility = [
"//vendor/k8s.io/client-go/pkg/api/v1:__pkg__",
"//vendor/k8s.io/client-go/pkg/apis:__subpackages__",
],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library",

View File

@ -11,6 +11,7 @@ go_library(
name = "go_default_library",
srcs = ["install.go"],
tags = ["automanaged"],
visibility = ["//visibility:private"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",

View File

@ -17,6 +17,10 @@ go_library(
"zz_generated.deepcopy.go",
],
tags = ["automanaged"],
visibility = [
"//vendor/k8s.io/client-go/pkg/api/v1:__pkg__",
"//vendor/k8s.io/client-go/pkg/apis:__subpackages__",
],
deps = [
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",

View File

@ -11,6 +11,7 @@ go_library(
name = "go_default_library",
srcs = ["install.go"],
tags = ["automanaged"],
visibility = ["//visibility:private"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",

View File

@ -16,6 +16,10 @@ go_library(
"zz_generated.deepcopy.go",
],
tags = ["automanaged"],
visibility = [
"//vendor/k8s.io/client-go/pkg/api/v1:__pkg__",
"//vendor/k8s.io/client-go/pkg/apis:__subpackages__",
],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library",

View File

@ -11,6 +11,7 @@ go_library(
name = "go_default_library",
srcs = ["install.go"],
tags = ["automanaged"],
visibility = ["//visibility:private"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",

View File

@ -17,6 +17,10 @@ go_library(
"zz_generated.deepcopy.go",
],
tags = ["automanaged"],
visibility = [
"//vendor/k8s.io/client-go/pkg/api/v1:__pkg__",
"//vendor/k8s.io/client-go/pkg/apis:__subpackages__",
],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library",

View File

@ -11,6 +11,7 @@ go_library(
name = "go_default_library",
srcs = ["install.go"],
tags = ["automanaged"],
visibility = ["//visibility:private"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",

View File

@ -16,6 +16,10 @@ go_library(
"zz_generated.deepcopy.go",
],
tags = ["automanaged"],
visibility = [
"//vendor/k8s.io/client-go/pkg/api/v1:__pkg__",
"//vendor/k8s.io/client-go/pkg/apis:__subpackages__",
],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library",

View File

@ -11,6 +11,7 @@ go_library(
name = "go_default_library",
srcs = ["install.go"],
tags = ["automanaged"],
visibility = ["//visibility:private"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",

View File

@ -16,6 +16,10 @@ go_library(
"zz_generated.deepcopy.go",
],
tags = ["automanaged"],
visibility = [
"//vendor/k8s.io/client-go/pkg/api/v1:__pkg__",
"//vendor/k8s.io/client-go/pkg/apis:__subpackages__",
],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library",

View File

@ -11,6 +11,7 @@ go_library(
name = "go_default_library",
srcs = ["install.go"],
tags = ["automanaged"],
visibility = ["//visibility:private"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",

View File

@ -16,4 +16,7 @@ go_library(
"util.go",
],
tags = ["automanaged"],
visibility = [
"//vendor/k8s.io/client-go/pkg/api/v1:__pkg__",
],
)

View File

@ -29,7 +29,6 @@ go_library(
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//vendor/k8s.io/client-go/pkg/api:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1:go_default_library",
],

View File

@ -21,15 +21,10 @@ import (
"k8s.io/apimachinery/pkg/apimachinery/registered"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/client-go/pkg/api"
"k8s.io/kube-apiextensions-server/pkg/apis/apiextensions"
"k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1"
)
func init() {
Install(api.GroupFactoryRegistry, api.Registry, api.Scheme)
}
// Install registers the API group and adds types to a scheme
func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) {
if err := announced.NewGroupMetaFactory(