# Project using a source framework with restricted access

### Layout on file system

- The Java source files for a product requires a source framework.
- "Product" and "Framework" are in separate directories which have their own source and output folders.

### Steps for defining corresponding projects

1. Open a Java perspective, select the menu item File > New > Project.... to open the New Project wizard.

2. Select Java project in the list of wizards and click Next.

3. On the next page, type "Framework" in the Project name field.

4. In Contents group, change selection to Create project from existing source.

   Click Browse... and choose the `D:\Framework` directory.

   Click Next.

5. On the next page, verify that directory `JavaSourceFiles` has been automatically added as source folder.

   Expand it to preview your project source folder contents:

6. Click Finish.

7. In Java perspective, type Ctrl+N to open New wizards dialog.

   Select Java project in the list of wizards and click Next.

8. On the next page, type "Product" in the Project name field.

9. In Contents group, change selection to Create project from existing source.

   Click Browse... and choose the `D:\Product` directory.

   Click Next.

10. Let's add a dependency to source framework project...

11. On the next page, verify that directory `JavaSourceFiles` has been automatically added as source folder.

    Select Projects tab.

    Click Add....

12. In Required Project Selection, check "Framework".

    Click OK.

13. Now, let's put access rules on source framework content to authorize, discourage or forbid access to "Framework" source folders, package and classes...

14. In Projects tab, select "Access rules" of "Framework" depending project.

    Click Edit....

15. In Type Access Rules, click Add....

16. In Edit Access Rule, select "Forbidden" for Resolution.

    Type "**/forbidden/**" in Rule Pattern field.

    Click OK.

17. Add another access rule:

    Resolution: "Discouraged" and Rule Pattern: "**/internal/**".

18. Your access rules now look as follows:

    Click OK.

19. Dependent project has now 2 access rules set.

    Click Finish.

20. You now have a Java project which contains the source of "Product" and which is using the source of "Framework".

    Some packages of the project "Framework" are restricted and if you try to import them, compiler displays either warnings or errors depending on your restriction level:

Java projects
Java views

Working with build paths
Creating a new Java project
Creating a Java project with source folders
Creating a new source folder
Using the Package Explorer

New Java Project Wizard
Package Explorer View